/* { dg-options "-Wuninitialized -ftrack-macro-expansion=2" } { dg-do compile } */ void f (unsigned); #define CODE_WITH_WARNING \ int a; /* { dg-message "was declared here" } */ \ f (a) /* { dg-error "used uninitialized" } */ #pragma GCC diagnostic ignored "-Wuninitialized" void g (void) { /* No warning expected here since the #pragma is in effect. */ CODE_WITH_WARNING; } #pragma GCC diagnostic error "-Wuninitialized" void h (void) { CODE_WITH_WARNING; /* { dg-message "in expansion of macro 'CODE_WITH_WARNING'" } */ } /* { dg-regexp {.*some warnings being treated as errors} } */