(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pragma-message.c
       1  /* Test that #pragma message "..." writes compiler messages. */
       2  
       3  #pragma message                  /* { dg-warning "expected a string" } */
       4  #pragma message 0                /* { dg-warning "expected a string" } */
       5  #pragma message id               /* { dg-warning "expected a string" } */
       6  #pragma message (                /* { dg-warning "expected a string" } */
       7  #pragma message (0               /* { dg-warning "expected a string" } */
       8  #pragma message (id              /* { dg-warning "expected a string" } */
       9  #pragma message ()               /* { dg-warning "expected a string" } */
      10  #pragma message (0)              /* { dg-warning "expected a string" } */
      11  #pragma message (id)             /* { dg-warning "expected a string" } */
      12  
      13  /* gcc prefixes '#pragma message ...' output with filename and line number,
      14     then 'note: #pragma message: ', allowing dg-message to check output.
      15     If unexpected pragma messages are printed (anything not caught by a
      16     matching dg-message), dejagnu will report these as excess errors.  */
      17  
      18  #pragma message "
      19  /* { dg-error "17:missing terminating" "" { target *-*-* } .-1 } */
      20  /* { dg-warning "expected a string" "" { target *-*-* } .-2 } */
      21  #pragma message "Bad 1
      22  /* { dg-error "17:missing terminating" "" { target *-*-* } .-1 } */
      23  /* { dg-warning "expected a string" "" { target *-*-* } .-2 } */
      24  #pragma message ("Bad 2
      25  /* { dg-error "18:missing terminating" "" { target *-*-* } .-1 } */
      26  /* { dg-warning "expected a string" "" { target *-*-* } .-2 } */
      27  #pragma message ("Bad 3"
      28  /* { dg-warning "malformed '#pragma message" "" { target *-*-* } .-1 } */
      29  
      30  #pragma message "" junk
      31  /* { dg-warning "junk at end of '#pragma message'" "" { target *-*-* } .-1 } */
      32  
      33  #pragma message ("") junk
      34  /* { dg-warning "junk at end of '#pragma message'" "" { target *-*-* } .-1 } */
      35  
      36  #pragma message ""               /* No output expected for empty messages.  */
      37  #pragma message ("")
      38  
      39  #pragma message "Okay 1"         /* { dg-message "Okay 1" } */
      40  #pragma message ("Okay 2")       /* { dg-message "Okay 2" } */
      41  #define THREE "3"
      42  #pragma message ("Okay " THREE)  /* { dg-message "Okay 3" } */
      43  
      44  /* Create a TODO() that prints a message on compilation.  */
      45  #define DO_PRAGMA(x) _Pragma (#x) /* { dg-line pragma_loc1 } */
      46  #define TODO(x) DO_PRAGMA(message ("TODO - " #x)) /* { dg-line pragma_loc2 } */
      47  TODO(Okay 4) /* { dg-message "in expansion of macro 'TODO'" } */
      48  /* { dg-message "TODO - Okay 4" "test4.1" { target *-*-* } pragma_loc1 } */
      49  /* { dg-message "in expansion of macro 'DO_PRAGMA'" "test4.2" { target *-*-* } pragma_loc2 } */
      50  
      51  #if 0
      52  #pragma message ("Not printed")
      53  #endif
      54  
      55  int unused;  /* Silence `ISO C forbids an empty translation unit' warning.  */