#define weak_extern(symbol) _weak_extern (weak symbol) #define _weak_extern(expr) _Pragma (#expr) extern void foo (void); weak_extern (foo)
void bar (void) { if (foo) foo (); } gives: ./xgcc -B ./ -O2 a.c -S a.c:4: warning: malformed #pragma weak, ignored a.c: In function ar': a.c:8: warning: the address of oo', will always evaluate as -- Summary: _Pragma parsing problem on the gomp branch Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25240