diff gcc/testsuite/c-c++-common/pr69543-3.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/c-c++-common/pr69543-3.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,20 @@
+/* { 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")
+}