| /* { dg-options "-Wuninitialized" } */ |
| |
| /* Verify disabling a warning, where the _Pragma is in regular code, |
| but the affected code is within a macro. */ |
| |
| /* TODO: XFAIL: both C and C++ erroneously fail to suppress the warning |
| The warning is reported at the macro definition location, rather than |
| the macro expansion location. */ |
| |
| #define WARNABLE_CODE *++yyvsp = yylval; /* { dg-bogus "used uninitialized" "" { xfail *-*-* } } */ |
| |
| void test (char yylval) |
| { |
| char *yyvsp; /* { dg-bogus "declared here" "" { xfail *-*-* } } */ |
| _Pragma ("GCC diagnostic push") |
| _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") |
| _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") |
| WARNABLE_CODE |
| _Pragma ("GCC diagnostic pop") |
| } |