/* PR tree-optimization/80612 */ /* { dg-do compile } */ struct obstack *a; struct obstack { union { void *plain; void (*extra)(); } chunkfun; } fn1(void p4()) { a->chunkfun.plain = p4; a->chunkfun.extra(a); } void fn2(int) __attribute__((__alloc_size__(1))); void fn3() { fn1(fn2); }
extern void qsort(void *__base , size_t __nmemb , size_t __size , int (*__compar)(void const * , void const * ) ) __attribute__((__nonnull__(1,4))) ; extern char const *Version ; extern __attribute__((__nothrow__)) unsigned short const **__ctype_b_loc(void) __attribute__((__leaf__, __const__)) ; __inline static unsigned char to_uchar(char ch ) { { return ((unsigned char )ch); } } extern __attribute__((__nothrow__)) char *setlocale(int __category , char const *__locale ) __attribute__((__leaf__)) ; extern __attribute__((__nothrow__)) char *gettext(char const *__msgid ) __attribute__((__leaf__, __format_arg__(1))) ; extern __attribute__((__nothrow__)) char *textdomain(char const *__domainname ) __attribute__((__leaf__)) ; extern __attribute__((__nothrow__)) char *bindtextdomain(char const *__domainname , char const *__dirname ) __attribute__((__leaf__)) ; extern __attribute__((__noreturn__)) void xalloc_die(void) ; extern void *xzalloc(size_t s ) __attribute__((__malloc__, __alloc_size__(1))) ; extern char *xstrdup(char const *str ) __attribute__((__malloc__)) ; extern void *x2nrealloc(void *p , size_t *pn , size_t s ) ; extern char *last_component(char const *file ) ; extern void close_stdout(void) ; extern void version_etc(FILE *stream , char const *command_name , char const *package , char const *version , ...) __attribute__((__sentinel__)) ; extern char const *program_name ; extern void set_program_name(char const *argv0 ) ; __inline static void emit_ancillary_info(void) { char *tmp ; char *tmp___0 ; char *tmp___1 ; char *tmp___2 ; char const *lc_messages ; char *tmp___3 ; char *tmp___4 ;