1 /* 2 { dg-options "-Wuninitialized -ftrack-macro-expansion=2" } 3 { dg-do compile } 4 */ 5 6 void f (unsigned); 7 8 #define CODE_WITH_WARNING \ 9 int a; /* { dg-message "was declared here" } */ \ 10 f (a) /* { dg-warning "used uninitialized" } */ 11 12 #pragma GCC diagnostic ignored "-Wuninitialized" 13 14 void g(void)15g (void) 16 { 17 CODE_WITH_WARNING; 18 } 19 20 #pragma GCC diagnostic push 21 22 #pragma GCC diagnostic error "-Wuninitialized" 23 24 void h(void)25h (void) 26 { 27 CODE_WITH_WARNING; /* { dg-message "in expansion of macro 'CODE_WITH_WARNING'" } */ 28 } 29