aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/Wbidi-chars-ranges.c
blob: 0c71f306dbc73c5911e25075295ef43c536ecc2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* PR preprocessor/103026 */
/* { dg-do compile } */
/* { dg-options "-Wbidi-chars=unpaired,ucn -fdiagnostics-show-caret" } */
/* Verify that we escape and underline pertinent bidirectional
   control characters when quoting the source.  */

int test_unpaired_bidi () {
    int isAdmin = 0;
    /*‮ } ⁦if (isAdmin)⁩ ⁦ begin admins only */
/* { dg-warning "bidirectional" "" { target *-*-* } .-1 } */
#if 0
   { dg-begin-multiline-output "" }
     /*<U+202E> } <U+2066>if (isAdmin)<U+2069> <U+2066> begin admins only */
       ~~~~~~~~                                ~~~~~~~~                    ^
       |                                       |                           |
       |                                       |                           end of bidirectional context
       U+202E (RIGHT-TO-LEFT OVERRIDE)         U+2066 (LEFT-TO-RIGHT ISOLATE)
   { dg-end-multiline-output "" }
#endif

        __builtin_printf("You are an admin.\n");
    /* end admins only ‮ { ⁦*/
/* { dg-warning "bidirectional" "" { target *-*-* } .-1 } */
#if 0
   { dg-begin-multiline-output "" }
     /* end admins only <U+202E> { <U+2066>*/
                        ~~~~~~~~   ~~~~~~~~ ^
                        |          |        |
                        |          |        end of bidirectional context
                        |          U+2066 (LEFT-TO-RIGHT ISOLATE)
                        U+202E (RIGHT-TO-LEFT OVERRIDE)
   { dg-end-multiline-output "" }
#endif

    return 0;
}

int LRE_‪_PDF_\u202c;
/* { dg-warning "mismatch" "" { target *-*-* } .-1 } */
#if 0
   { dg-begin-multiline-output "" }
 int LRE_<U+202A>_PDF_\u202c;
         ~~~~~~~~     ^~~~~~
   { dg-end-multiline-output "" }
#endif

const char *s1 = "LRE_‪_PDF_\u202c";
/* { dg-warning "mismatch" "" { target *-*-* } .-1 } */
#if 0
   { dg-begin-multiline-output "" }
 const char *s1 = "LRE_<U+202A>_PDF_\u202c";
                       ~~~~~~~~     ^~~~~~
   { dg-end-multiline-output "" }
#endif