File: Wbidi-chars-ranges.c

package info (click to toggle)
gcc-arm-none-eabi 15%3A12.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 959,712 kB
  • sloc: cpp: 3,275,382; ansic: 2,061,766; ada: 840,956; f90: 208,513; makefile: 76,132; asm: 73,433; xml: 50,448; exp: 34,146; sh: 32,436; objc: 15,637; fortran: 14,012; python: 11,991; pascal: 6,787; awk: 4,779; perl: 3,054; yacc: 338; ml: 285; lex: 201; haskell: 122
file content (54 lines) | stat: -rw-r--r-- 1,973 bytes parent folder | download | duplicates (2)
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