gcc/libitm
Nathan Sidwell f0de5d83ee Fix throw specifiers on interface.
I discovered that libitm:
(a) declares __cxa_allocate_exception and friends directly,
(b) doesn't mark them as 'throw()'
(c) doesn't mark the replacment fns _ITM_$foo as nothrow either

We happen to get away with it because of code in the compiler that,
although it checks the parameter types, doesn't check the exception
specification.  (One reason being they used to not be part of the
language's type system, but now they are.)  I suspect this can lead us
to generate pessimal code later, if we've seen one of these decls
earlier.  Anyway, with modules it becomes trickier[*], so I'm trying
to clean it up and not be a problem.  I see Jakub fixed part of the
problem
(https://gcc.gnu.org/pipermail/gcc-patches/2018-December/513302.html)
AFAICT, he did fix libitm's decls, but left the lax parm-type checking
in the compiler.

libitm.h is not very informative about specification:
  in version 1 of http://www.intel.com/some/path/here.pdf.  */

Anyway, it was too fiddly to have libitm pick up the declarations from
libsupc++.  Besides it makes them weak declarations, and then provides
definitions for non-elf systems.  So this patch adds the expected
'throw()'

	* libitm/libitm.h (_ITM_NOTHROW): Define.
	(_ITM_cxa_allocate_exception, _ITM_cxa_free_exception)
	(_ITM_cxa_begin_catch): Use it.
	* eh_cpp.cc: Add throw() to __cxa_allocate_exception,
	__cxa_free_exception, __cxa_begin_catch, __cxa_tm_cleanup,
	__cxa_get_globals.
	(_ITM_cxa_allocate_exception, _ITM_cxa_free_exception)
	(_ITM_cxa_begin_catch): Likewise.
2020-05-12 10:54:53 -07:00
..
config Update copyright years. 2020-01-01 12:51:42 +01:00
testsuite libitm: Disable diagnostic coloring in tests 2020-05-05 12:50:54 -07:00
ChangeLog Fix throw specifiers on interface. 2020-05-12 10:54:53 -07:00
Makefile.am
Makefile.in Add `--with-toolexeclibdir=' configuration option 2020-01-24 11:24:25 +00:00
aatree.cc Update copyright years. 2020-01-01 12:51:42 +01:00
aatree.h Update copyright years. 2020-01-01 12:51:42 +01:00
acinclude.m4 re PR other/79543 (Inappropriate "ld --version" checking) 2019-09-03 14:10:26 +00:00
aclocal.m4 Add `--with-toolexeclibdir=' configuration option 2020-01-24 11:24:25 +00:00
alloc.cc Update copyright years. 2020-01-01 12:51:42 +01:00
alloc_c.cc Update copyright years. 2020-01-01 12:51:42 +01:00
alloc_cpp.cc Update copyright years. 2020-01-01 12:51:42 +01:00
barrier.cc Update copyright years. 2020-01-01 12:51:42 +01:00
beginend.cc Update copyright years. 2020-01-01 12:51:42 +01:00
clone.cc Update copyright years. 2020-01-01 12:51:42 +01:00
common.h Update copyright years. 2020-01-01 12:51:42 +01:00
config.h.in
configure Use a non-empty test program to test ability to link. 2020-02-12 13:22:07 -08:00
configure.ac Add `--with-toolexeclibdir=' configuration option 2020-01-24 11:24:25 +00:00
configure.tgt Update copyright years. 2020-01-01 12:51:42 +01:00
containers.h Update copyright years. 2020-01-01 12:51:42 +01:00
dispatch.h Update copyright years. 2020-01-01 12:51:42 +01:00
eh_cpp.cc Fix throw specifiers on interface. 2020-05-12 10:54:53 -07:00
libitm.h Fix throw specifiers on interface. 2020-05-12 10:54:53 -07:00
libitm.map
libitm.spec.in
libitm.texi gcc.c (process_command): Update copyright notice dates. 2020-01-01 12:14:37 +01:00
libitm_i.h Update copyright years. 2020-01-01 12:51:42 +01:00
local.cc Update copyright years. 2020-01-01 12:51:42 +01:00
local_atomic Update copyright years. 2020-01-01 12:51:42 +01:00
method-gl.cc Update copyright years. 2020-01-01 12:51:42 +01:00
method-ml.cc Update copyright years. 2020-01-01 12:51:42 +01:00
method-serial.cc Update copyright years. 2020-01-01 12:51:42 +01:00
query.cc Update copyright years. 2020-01-01 12:51:42 +01:00
retry.cc Update copyright years. 2020-01-01 12:51:42 +01:00
useraction.cc Update copyright years. 2020-01-01 12:51:42 +01:00
util.cc Update copyright years. 2020-01-01 12:51:42 +01:00