From 58548b9d689fb9bba67bdc5b59c8d2fa47f4f8ec Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Tue, 18 Oct 2022 17:00:07 +0200 Subject: Use PTR_MANGLE and PTR_DEMANGLE unconditionally in C sources In the future, this will result in a compilation failure if the macros are unexpectedly undefined (due to header inclusion ordering or header inclusion missing altogether). Assembler sources are more difficult to convert. In many cases, they are hand-optimized for the mangling and no-mangling variants, which is why they are not converted. sysdeps/s390/s390-32/__longjmp.c and sysdeps/s390/s390-64/__longjmp.c are special: These are C sources, but most of the implementation is in assembler, so the PTR_DEMANGLE macro has to be undefined in some cases, to match the assembler style. Reviewed-by: Adhemerval Zanella --- stdlib/cxa_atexit.c | 2 -- stdlib/cxa_finalize.c | 3 +-- stdlib/cxa_thread_atexit_impl.c | 4 ---- stdlib/exit.c | 9 +++------ stdlib/on_exit.c | 2 -- 5 files changed, 4 insertions(+), 16 deletions(-) (limited to 'stdlib') diff --git a/stdlib/cxa_atexit.c b/stdlib/cxa_atexit.c index adf89e9..fad2d2b 100644 --- a/stdlib/cxa_atexit.c +++ b/stdlib/cxa_atexit.c @@ -49,9 +49,7 @@ __internal_atexit (void (*func) (void *), void *arg, void *d, return -1; } -#ifdef PTR_MANGLE PTR_MANGLE (func); -#endif new->func.cxa.fn = (void (*) (void *, int)) func; new->func.cxa.arg = arg; new->func.cxa.dso_handle = d; diff --git a/stdlib/cxa_finalize.c b/stdlib/cxa_finalize.c index f247956..1958c28 100644 --- a/stdlib/cxa_finalize.c +++ b/stdlib/cxa_finalize.c @@ -75,9 +75,8 @@ __cxa_finalize (void *d) parallel. */ f->flavor = ef_free; -#ifdef PTR_DEMANGLE PTR_DEMANGLE (cxafn); -#endif + /* Unlock the list while we call a foreign function. */ __libc_lock_unlock (__exit_funcs_lock); cxafn (cxaarg, 0); diff --git a/stdlib/cxa_thread_atexit_impl.c b/stdlib/cxa_thread_atexit_impl.c index faacab3..b5ecfee 100644 --- a/stdlib/cxa_thread_atexit_impl.c +++ b/stdlib/cxa_thread_atexit_impl.c @@ -100,9 +100,7 @@ static __thread struct link_map *lm_cache; int __cxa_thread_atexit_impl (dtor_func func, void *obj, void *dso_symbol) { -#ifdef PTR_MANGLE PTR_MANGLE (func); -#endif /* Prepend. */ struct dtor_list *new = calloc (1, sizeof (struct dtor_list)); @@ -152,9 +150,7 @@ __call_tls_dtors (void) { struct dtor_list *cur = tls_dtor_list; dtor_func func = cur->func; -#ifdef PTR_DEMANGLE PTR_DEMANGLE (func); -#endif tls_dtor_list = tls_dtor_list->next; func (cur->obj); diff --git a/stdlib/exit.c b/stdlib/exit.c index e59156b..10c44e1 100644 --- a/stdlib/exit.c +++ b/stdlib/exit.c @@ -81,9 +81,8 @@ __run_exit_handlers (int status, struct exit_function_list **listp, case ef_on: onfct = f->func.on.fn; arg = f->func.on.arg; -#ifdef PTR_DEMANGLE PTR_DEMANGLE (onfct); -#endif + /* Unlock the list while we call a foreign function. */ __libc_lock_unlock (__exit_funcs_lock); onfct (status, arg); @@ -91,9 +90,8 @@ __run_exit_handlers (int status, struct exit_function_list **listp, break; case ef_at: atfct = f->func.at; -#ifdef PTR_DEMANGLE PTR_DEMANGLE (atfct); -#endif + /* Unlock the list while we call a foreign function. */ __libc_lock_unlock (__exit_funcs_lock); atfct (); @@ -105,9 +103,8 @@ __run_exit_handlers (int status, struct exit_function_list **listp, f->flavor = ef_free; cxafct = f->func.cxa.fn; arg = f->func.cxa.arg; -#ifdef PTR_DEMANGLE PTR_DEMANGLE (cxafct); -#endif + /* Unlock the list while we call a foreign function. */ __libc_lock_unlock (__exit_funcs_lock); cxafct (arg, status); diff --git a/stdlib/on_exit.c b/stdlib/on_exit.c index fb59db2..2ac70e1 100644 --- a/stdlib/on_exit.c +++ b/stdlib/on_exit.c @@ -39,9 +39,7 @@ __on_exit (void (*func) (int status, void *arg), void *arg) return -1; } -#ifdef PTR_MANGLE PTR_MANGLE (func); -#endif new->func.on.fn = func; new->func.on.arg = arg; new->flavor = ef_on; -- cgit v1.1