From 03df72bf736599aa4c2c8343b33bed3d2954afa8 Mon Sep 17 00:00:00 2001 From: Greg McGary Date: Mon, 17 Jul 2000 22:33:06 +0000 Subject: [PATCH] * include/libc-symbols.h (symbol_set_declare): Revert 2000-06-26 mods. * include/set-hooks.h (RUN_HOOK): Revert 2000-06-26 mods. Qualify ptr as __unbouned. * include/libc-symbols.h (symbol_set_declare): Revert 2000-06-26 mods. * include/set-hooks.h (RUN_HOOK): Revert 2000-06-26 mods. Qualify ptr as __unbouned. --- ChangeLog | 4 ++++ include/libc-symbols.h | 6 +++--- include/set-hooks.h | 12 ++++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2fd62afb90..9b5e90da9b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,10 @@ _IO_file_attach. * libio/iovdprintf.c (_IO_vdprintf): Likewise. + * include/libc-symbols.h (symbol_set_declare): Revert 2000-06-26 mods. + * include/set-hooks.h (RUN_HOOK): Revert 2000-06-26 mods. Qualify + ptr as __unbouned. + 2000-07-17 Bruno Haible * iconv/gconv_open.c (__gconv_open): Initialize the __data diff --git a/include/libc-symbols.h b/include/libc-symbols.h index 30a27c803b..147dca3542 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -242,8 +242,8 @@ /* Declare SET for use in this module, if defined in another module. */ # define symbol_set_declare(set) \ - extern void (*const __start_##set) (void) __attribute__ ((__weak__)); \ - extern void (*const __stop_##set) (void) __attribute__ ((__weak__)); \ + extern void *const __start_##set __attribute__ ((__weak__)); \ + extern void *const __stop_##set __attribute__ ((__weak__)); \ weak_extern (__start_##set) weak_extern (__stop_##set) /* Return a pointer (void *const *) to the first element of SET. */ @@ -261,7 +261,7 @@ asm(".stabs \"" __SYMBOL_PREFIX #set "\",25,0,0," __SYMBOL_PREFIX #symbol) # define bss_set_element(set, symbol) ?error Must use initialized data. # define symbol_set_define(set) void *const (set)[1]; -# define symbol_set_declare(set) extern void (*const (set)[1]) (void); +# define symbol_set_declare(set) extern void *const (set)[1]; # define symbol_set_first_element(set) &(set)[1] # define symbol_set_end_p(set, ptr) (*(ptr) == 0) diff --git a/include/set-hooks.h b/include/set-hooks.h index f4d7246567..709f4c0a61 100644 --- a/include/set-hooks.h +++ b/include/set-hooks.h @@ -40,12 +40,12 @@ /* Run all the functions hooked on the set called NAME. Each function is called like this: `function ARGS'. */ -# define RUN_HOOK(NAME, ARGS) \ -do { \ - void (*const *ptr) (void); \ - for (ptr = symbol_set_first_element (NAME); \ - ! symbol_set_end_p (NAME, ptr); ++ptr) \ - (*(__##NAME##_hook_function_t *) *ptr) ARGS; \ +# define RUN_HOOK(NAME, ARGS) \ +do { \ + void *const *__unbounded ptr; \ + for (ptr = symbol_set_first_element (NAME); \ + ! symbol_set_end_p (NAME, ptr); ++ptr) \ + (*(__##NAME##_hook_function_t *) *ptr) ARGS; \ } while (0) /* Define a hook variable with NAME and PROTO, and a function called RUNNER -- 2.43.5