]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Enhance '_Pragma' diagnostics verification in OMP C/C++ test cases
authorThomas Schwinge <thomas@codesourcery.com>
Mon, 11 Jul 2022 07:33:19 +0000 (09:33 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Mon, 11 Jul 2022 09:23:33 +0000 (11:23 +0200)
Follow-up to recent commit 0587cef3d7962a8b0f44779589ba2920dd3d71e5
"c: Fix location for _Pragma tokens [PR97498]".

gcc/testsuite/
* c-c++-common/gomp/pragma-3.c: Enhance '_Pragma' diagnostics
verification.
* c-c++-common/gomp/pragma-5.c: Likewise.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Enhance
'_Pragma' diagnostics verification.

gcc/testsuite/c-c++-common/gomp/pragma-3.c
gcc/testsuite/c-c++-common/gomp/pragma-5.c
libgomp/testsuite/libgomp.oacc-c-c++-common/reduction-5.c

index ae18e9b888613adde69fbb583f64f13abe29f7b6..3e1b2111c3d0675ad3c889d37fe6309f06ab6113 100644 (file)
@@ -2,13 +2,15 @@
 /* PR preprocessor/103165  */
 
 #define inner(...) #__VA_ARGS__ ; _Pragma("omp error severity(warning) message (\"Test\") at(compilation)") /* { dg-line inner_location } */
-#define outer(...) inner(__VA_ARGS__)
+#define outer(...) inner(__VA_ARGS__) /* { dg-line outer_location } */
 
 void
 f (void)
 {
-  const char *str = outer(inner(1,2));
-  /* { dg-warning "'pragma omp error' encountered: Test" "inner expansion" { target *-*-* } inner_location } */
+  const char *str = outer(inner(1,2)); /* { dg-line str_location } */
+  /* { dg-warning "35:'pragma omp error' encountered: Test" "" { target *-*-* } inner_location }
+     { dg-note "20:in expansion of macro 'inner'" "" { target *-*-* } outer_location }
+     { dg-note "21:in expansion of macro 'outer'" "" { target *-*-* } str_location } */
 }
 
 #if 0
index 8124f701502365d1416a02ed4e262ef428336d16..173c25e803af649ec7d3c6c70c6a5f1982aa5e44 100644 (file)
@@ -2,13 +2,15 @@
 /* PR preprocessor/103165  */
 
 #define inner(...) #__VA_ARGS__ ; _Pragma   (  "   omp         error severity   (warning)      message (\"Test\") at(compilation)" ) /* { dg-line inner_location } */
-#define outer(...) inner(__VA_ARGS__)
+#define outer(...) inner(__VA_ARGS__) /* { dg-line outer_location } */
 
 void
 f (void)
 {
-  const char *str = outer(inner(1,2));
-  /* { dg-warning "'pragma omp error' encountered: Test" "inner expansion" { target *-*-* } inner_location } */
+  const char *str = outer(inner(1,2)); /* { dg-line str_location } */
+  /* { dg-warning "35:'pragma omp error' encountered: Test" "" { target *-*-* } inner_location }
+     { dg-note "20:in expansion of macro 'inner'" "" { target *-*-* } outer_location }
+     { dg-note "21:in expansion of macro 'outer'" "" { target *-*-* } str_location } */
 }
 
 #if 0
index 16aa0dd4ac12fde9cde414cd6009bc47dd50c574..72094609f0fa181fd6e5f959df7d8405768073ee 100644 (file)
@@ -17,7 +17,7 @@ const int n = 100;
 #define check_reduction(gwv_par, gwv_loop)             \
   {                                                    \
   s1 = 2; s2 = 5;                                      \
-DO_PRAGMA (acc parallel gwv_par copy (s1, s2))         \
+DO_PRAGMA (acc parallel gwv_par copy (s1, s2)) /* { dg-line DO_PRAGMA_loc } */ \
 DO_PRAGMA (acc loop gwv_loop reduction (+:s1, s2))     \
     for (i = 0; i < n; i++)                            \
       {                                                        \
@@ -45,8 +45,10 @@ main (void)
 
   /* Nvptx targets require a vector_length or 32 in to allow spinlocks with
      gangs.  */
-  check_reduction (num_workers (nw) vector_length (vl), worker);
-  /* { dg-warning "region is vector partitioned but does not contain vector partitioned code" "test1" { target *-*-* } pragma_loc } */
+  check_reduction (num_workers (nw) vector_length (vl), worker); /* { dg-line check_reduction_loc }
+  /* { dg-warning "22:region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } pragma_loc }
+     { dg-note "1:in expansion of macro 'DO_PRAGMA'" "" { target *-*-* } DO_PRAGMA_loc }
+     { dg-note "3:in expansion of macro 'check_reduction'" "" { target *-*-* } check_reduction_loc } */
   check_reduction (vector_length (vl), vector);
   check_reduction (num_gangs (ng) num_workers (nw) vector_length (vl), gang
                   worker vector);