(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
plugin/
diagnostic-test-string-literals-4.c
       1  /* Similar to diagnostic-test-string-literals-1.c, but with
       2     -ftrack-macro-expansion=1.  */
       3  
       4  /* { dg-do compile } */
       5  /* { dg-options "-O -ftrack-macro-expansion=1" } */
       6  
       7  extern void __emit_string_literal_range (const void *literal, int caret_idx,
       8  					 int start_idx, int end_idx);
       9  
      10  void
      11  test_simple_string_literal (void)
      12  {
      13    __emit_string_literal_range ("0123456789", /* { dg-error "unable to read substring location: track_macro_expansion != 2" } */
      14  			       6, 6, 7);
      15  }
      16  
      17  void
      18  test_concatenated_string_literal (void)
      19  {
      20    __emit_string_literal_range ("01234" "56789", /* { dg-error "unable to read substring location: track_macro_expansion != 2" } */
      21  			       4, 3, 6);
      22  }
      23  
      24  /* To reproduce PR preprocessor/78324, the macro name should start
      25     with the letter 'R'.  */
      26  
      27  void
      28  test_macro (void)
      29  {
      30  #define RANGE "01234"  /* { dg-error "unable to read substring location: track_macro_expansion != 2" } */
      31    __emit_string_literal_range (RANGE
      32                                 "56789",
      33                                 4, 3, 6);
      34  #undef RANGE
      35  }
      36  
      37  void
      38  test_multitoken_macro (void)
      39  {
      40  #define RANGE ("0123456789")  /* { dg-error "unable to read substring location: track_macro_expansion != 2" } */
      41    __emit_string_literal_range (RANGE, 4, 3, 6);
      42  #undef RANGE
      43  }