(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c-c++-common/
error-1.c
       1  /* { dg-shouldfail "error directive" } */
       2  
       3  #ifdef __cplusplus
       4  extern "C"
       5  #endif
       6  void abort ();
       7  
       8  int
       9  foo (int i, int x)
      10  {
      11    if (x)
      12      #pragma omp error severity(warning)	/* { dg-warning "'pragma omp error' encountered" } */
      13      i++;
      14    if (!x)
      15      ;
      16    else
      17      #pragma omp error severity(warning)	/* { dg-warning "'pragma omp error' encountered" } */
      18      i += 2;
      19    switch (0)
      20      #pragma omp error severity(warning)	/* { dg-warning "'pragma omp error' encountered" } */
      21      {
      22      default:
      23        break;
      24      }
      25    while (0)
      26      #pragma omp error message("42 - 1")	severity (warning) /* { dg-warning "'pragma omp error' encountered: 42 - 1" } */
      27      i += 4;
      28    lab:
      29    #pragma omp error severity(warning) message("bar") at(compilation)	/* { dg-warning "'pragma omp error' encountered: bar" } */
      30      i += 8;
      31    return i;
      32  }
      33  
      34  int
      35  main ()
      36  {
      37    /* Initialize offloading early, so that any output this may produce doesn't
      38       disturb the 'dg-output' scanning below.  */
      39    #pragma omp target
      40    ;
      41  
      42    if (foo (5, 0) != 13 || foo (6, 1) != 17)
      43      abort ();
      44    #pragma omp error at (execution) severity (warning)
      45    const char *msg = "my message" + 2;
      46    #pragma omp error at (execution) severity (warning) message (msg + 1)
      47    #pragma omp target
      48    {
      49      #pragma omp error at (execution) severity (warning) message ("hello from a distance")
      50    }
      51    #pragma omp error at (execution) severity (fatal) message (msg - 2)
      52    #pragma omp error at (execution) severity (warning) message ("foobar")
      53    return 0;
      54  }
      55  
      56  /* { dg-output "libgomp: error directive encountered(\n|\r|\r\n)(\n|\r|\r\n)" } */
      57  /* { dg-output "libgomp: error directive encountered: message(\n|\r|\r\n)(\n|\r|\r\n)" } */
      58  /* { dg-output "libgomp: error directive encountered: hello from a distance(\n|\r|\r\n)(\n|\r|\r\n)" } */
      59  /* { dg-output "libgomp: fatal error: error directive encountered: my message" } */