1 /* { dg-do compile } */ 2 /* { dg-options "-std=c99" } */ 3 4 /* When GCC reads UTF-8-encoded input into its internal UTF-8 5 representation, it does not apply any transformation to the data, and 6 in particular it makes no attempt to verify that the encoding is valid 7 UTF-8. Historically, if any non-ASCII characters were found outside a 8 string or comment, they were treated as stray tokens and did not 9 necessarily produce an error, e.g. if, as in this test, they disappear 10 in the preprocessor. Now that UTF-8 is also supported in identifiers, 11 the basic structure of this process has not changed; GCC just treats 12 invalid UTF-8 as a stray token. This test verifies that the historical 13 behavior is unchanged. In the future, if GCC were changed, say, to 14 validate the UTF-8 on input, then this test would no longer be 15 appropriate. */ 16 17 18 #define a b( 19 #define b(x) q 20 /* The line below contains invalid UTF-8. */ 21 int a�); 22