(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
Wbidi-chars-6.c
       1  /* PR preprocessor/103026 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-Wbidi-chars=ucn,unpaired" } */
       4  /* Test nesting of bidi chars in various contexts.  */
       5  
       6  /* Terminated by the wrong char:  */
       7  /* a b c LRE‪ 1 2 3 PDI⁩ x y z */
       8  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
       9  /* a b c RLE‫ 1 2 3 PDI⁩ x y  z*/
      10  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      11  /* a b c LRO‭ 1 2 3 PDI⁩ x y z */
      12  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      13  /* a b c RLO‮ 1 2 3 PDI⁩ x y z */
      14  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      15  /* a b c LRI⁦ 1 2 3 PDF‬ x y z */
      16  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      17  /* a b c RLI⁧ 1 2 3 PDF‬ x y z */
      18  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      19  /* a b c FSI⁨ 1 2 3 PDF‬ x y  z*/
      20  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      21  
      22  /* LRE‪ PDF‬ */
      23  /* LRE‪ LRE‪ PDF‬ PDF‬ */
      24  /* PDF‬ LRE‪ PDF‬ */
      25  /* LRE‪ PDF‬ LRE‪ PDF‬ */
      26  /* LRE‪ LRE‪ PDF‬ */
      27  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      28  /* PDF‬ LRE‪ */
      29  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      30  
      31  // a b c LRE‪ 1 2 3 PDI⁩ x y z
      32  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      33  // a b c RLE‫ 1 2 3 PDI⁩ x y  z*/
      34  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      35  // a b c LRO‭ 1 2 3 PDI⁩ x y z 
      36  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      37  // a b c RLO‮ 1 2 3 PDI⁩ x y z 
      38  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      39  // a b c LRI⁦ 1 2 3 PDF‬ x y z 
      40  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      41  // a b c RLI⁧ 1 2 3 PDF‬ x y z 
      42  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      43  // a b c FSI⁨ 1 2 3 PDF‬ x y  z
      44  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      45  
      46  // LRE‪ PDF‬ 
      47  // LRE‪ LRE‪ PDF‬ PDF‬
      48  // PDF‬ LRE‪ PDF‬
      49  // LRE‪ PDF‬ LRE‪ PDF‬
      50  // LRE‪ LRE‪ PDF‬
      51  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      52  // PDF‬ LRE‪
      53  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      54  
      55  void
      56  g1 ()
      57  {
      58    const char *s1 = "a b c LRE‪ 1 2 3 PDI⁩ x y z";
      59  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      60    const char *s2 = "a b c LRE\u202a 1 2 3 PDI\u2069 x y z";
      61  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      62    const char *s3 = "a b c RLE‫ 1 2 3 PDI⁩ x y ";
      63  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      64    const char *s4 = "a b c RLE\u202b 1 2 3 PDI\u2069 x y z";
      65  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      66    const char *s5 = "a b c LRO‭ 1 2 3 PDI⁩ x y z";
      67  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      68    const char *s6 = "a b c LRO\u202d 1 2 3 PDI\u2069 x y z";
      69  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      70    const char *s7 = "a b c RLO‮ 1 2 3 PDI⁩ x y z";
      71  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      72    const char *s8 = "a b c RLO\u202e 1 2 3 PDI\u2069 x y z";
      73  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      74    const char *s9 = "a b c LRI⁦ 1 2 3 PDF‬ x y z";
      75  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      76    const char *s10 = "a b c LRI\u2066 1 2 3 PDF\u202c x y z";
      77  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      78    const char *s11 = "a b c RLI⁧ 1 2 3 PDF‬ x y z\
      79      ";
      80  /* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
      81    const char *s12 = "a b c RLI\u2067 1 2 3 PDF\u202c x y z";
      82  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      83    const char *s13 = "a b c FSI⁨ 1 2 3 PDF‬ x y z";
      84  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      85    const char *s14 = "a b c FSI\u2068 1 2 3 PDF\u202c x y z";
      86  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      87    const char *s15 = "PDF‬ LRE‪";
      88  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      89    const char *s16 = "PDF\u202c LRE\u202a";
      90  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      91    const char *s17 = "LRE‪ PDF‬";
      92    const char *s18 = "LRE\u202a PDF\u202c";
      93    const char *s19 = "LRE‪ LRE‪ PDF‬ PDF‬";
      94    const char *s20 = "LRE\u202a LRE\u202a PDF\u202c PDF\u202c";
      95    const char *s21 = "PDF‬ LRE‪ PDF‬";
      96    const char *s22 = "PDF\u202c LRE\u202a PDF\u202c";
      97    const char *s23 = "LRE‪ LRE‪ PDF‬";
      98  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
      99    const char *s24 = "LRE\u202a LRE\u202a PDF\u202c";
     100  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     101    const char *s25 = "PDF‬ LRE‪";
     102  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     103    const char *s26 = "PDF\u202c LRE\u202a";
     104  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     105    const char *s27 = "PDF‬ LRE\u202a";
     106  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     107    const char *s28 = "PDF\u202c LRE‪";
     108  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     109  }
     110  
     111  int aLRE‪bPDI⁩;
     112  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     113  int A\u202aB\u2069C;
     114  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     115  int aRLE‫bPDI⁩;
     116  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     117  int a\u202bB\u2069c;
     118  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     119  int aLRO‭bPDI⁩;
     120  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     121  int a\u202db\u2069c2;
     122  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     123  int aRLO‮bPDI⁩;
     124  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     125  int a\u202eb\u2069;
     126  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     127  int aLRI⁦bPDF‬;
     128  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     129  int a\u2066b\u202c;
     130  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     131  int aRLI⁧bPDF‬c
     132  ;
     133  /* { dg-warning "unpaired" "" { target *-*-* } .-2 } */
     134  int a\u2067b\u202c;
     135  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     136  int aFSI⁨bPDF‬;
     137  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     138  int a\u2068b\u202c;
     139  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     140  int aFSI⁨bPD\u202C;
     141  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     142  int aFSI\u2068bPDF‬_;
     143  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     144  int aLRE‪bPDF‬b; 
     145  int A\u202aB\u202c;
     146  int a_LRE‪_LRE‪_b_PDF‬_PDF‬;
     147  int A\u202aA\u202aB\u202cB\u202c;
     148  int aPDF‬bLREadPDF‬;
     149  int a_\u202C_\u202a_\u202c;
     150  int a_LRE‪_b_PDF‬_c_LRE‪_PDF‬;
     151  int a_\u202a_\u202c_\u202a_\u202c_;
     152  int a_LRE‪_b_PDF‬_c_LRE‪;
     153  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */
     154  int a_\u202a_\u202c_\u202a_;
     155  /* { dg-warning "unpaired" "" { target *-*-* } .-1 } */