diff options
Diffstat (limited to 'libitm')
-rw-r--r-- | libitm/ChangeLog | 9 | ||||
-rw-r--r-- | libitm/eh_cpp.cc | 6 | ||||
-rw-r--r-- | libitm/libitm.h | 2 | ||||
-rw-r--r-- | libitm/libitm.texi | 2 |
4 files changed, 14 insertions, 5 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index bda0985..5ca36bb 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,12 @@ +2018-12-16 Jakub Jelinek <jakub@redhat.com> + + PR c++/88482 + * eh_cpp.cc (__cxa_throw): Change DEST argument type from + void * to void (*) (void *). + (_ITM_cxa_throw): Likewise. + * libitm.h (_ITM_cxa_throw): Likewise. + * libitm.texi (_ITM_cxa_throw): Likewise. + 2018-12-13 Peter Bergner <bergner@linux.ibm.com> * config/powerpc/target.h (htm_available): Add support for diff --git a/libitm/eh_cpp.cc b/libitm/eh_cpp.cc index 7a6c376..55b0c4e 100644 --- a/libitm/eh_cpp.cc +++ b/libitm/eh_cpp.cc @@ -89,7 +89,7 @@ struct __cxa_eh_globals extern void *__cxa_allocate_exception (size_t) WEAK; extern void __cxa_free_exception (void *) WEAK; -extern void __cxa_throw (void *, void *, void *) WEAK; +extern void __cxa_throw (void *, void *, void (*) (void *)) WEAK; extern void *__cxa_begin_catch (void *) WEAK; extern void __cxa_end_catch (void) WEAK; extern void __cxa_tm_cleanup (void *, void *, unsigned int) WEAK; @@ -98,7 +98,7 @@ extern __cxa_eh_globals *__cxa_get_globals (void) WEAK; #if !defined (HAVE_ELF_STYLE_WEAKREF) void *__cxa_allocate_exception (size_t) { return NULL; } void __cxa_free_exception (void *) { return; } -void __cxa_throw (void *, void *, void *) { return; } +void __cxa_throw (void *, void *, void (*) (void *)) { return; } void *__cxa_begin_catch (void *) { return NULL; } void __cxa_end_catch (void) { return; } void __cxa_tm_cleanup (void *, void *, unsigned int) { return; } @@ -136,7 +136,7 @@ _ITM_cxa_free_exception (void *exc_ptr) } void -_ITM_cxa_throw (void *obj, void *tinfo, void *dest) +_ITM_cxa_throw (void *obj, void *tinfo, void (*dest) (void *)) { // This used to be instrumented, but does not need to be anymore. __cxa_throw (obj, tinfo, dest); diff --git a/libitm/libitm.h b/libitm/libitm.h index daf342e..dd9b5de 100644 --- a/libitm/libitm.h +++ b/libitm/libitm.h @@ -284,7 +284,7 @@ extern void _ITM_deregisterTMCloneTable (void *); extern void *_ITM_cxa_allocate_exception (size_t); extern void _ITM_cxa_free_exception (void *exc_ptr); -extern void _ITM_cxa_throw (void *obj, void *tinfo, void *dest); +extern void _ITM_cxa_throw (void *obj, void *tinfo, void (*dest) (void *)); extern void *_ITM_cxa_begin_catch (void *exc_ptr); extern void _ITM_cxa_end_catch (void); extern void _ITM_commitTransactionEH(void *exc_ptr) ITM_REGPARM; diff --git a/libitm/libitm.texi b/libitm/libitm.texi index 7a91348..d0b7b07 100644 --- a/libitm/libitm.texi +++ b/libitm/libitm.texi @@ -269,7 +269,7 @@ transactions. void _ITM_commitTransactionEH(void *exc_ptr) ITM_REGPARM; void *_ITM_cxa_allocate_exception (size_t); void _ITM_cxa_free_exception (void *exc_ptr); -void _ITM_cxa_throw (void *obj, void *tinfo, void *dest); +void _ITM_cxa_throw (void *obj, void *tinfo, void (*dest) (void *)); void *_ITM_cxa_begin_catch (void *exc_ptr); void _ITM_cxa_end_catch (void); @end example |