Preprocessor: Allow '\' as a token, which gets actual use in #error, but should have no other use.

This is just for '\' that's not before a new line.
Note the specification says it has no use other than as line continuation,
but #error is a grey area. (There are no escape sequences.)
This commit is contained in:
John Kessenich
2015-07-25 17:34:32 -06:00
parent f330f08129
commit aead93aafd
4 changed files with 24 additions and 4 deletions

View File

@@ -82,8 +82,17 @@ ERROR: 12:9014: '=' : cannot convert from 'temp float' to 'global int'
ERROR: 12:9015: 'macro expansion' : expected '(' following FOOOM
ERROR: 12:9016: 'preprocessor evaluation' : can't evaluate expression
ERROR: 12:9016: 'preprocessor evaluation' : bad expression
ERROR: 12:9500: 'preprocessor evaluation' : bad expression
ERROR: 12:9500: '#if' : unexpected tokens following directive
ERROR: 12:9502: 'preprocessor evaluation' : bad expression
ERROR: 12:9502: '#if' : unexpected tokens following directive
ERROR: 12:9504: 'preprocessor evaluation' : bad expression
ERROR: 12:9504: '#if' : unexpected tokens following directive
ERROR: 12:9506: '#error' : \ 377
ERROR: 12:9507: '#error' : \ 376
ERROR: 12:9508: '#error' : \ 377
ERROR: 12:10002: '' : missing #endif
ERROR: 79 compilation errors. No code generated.
ERROR: 88 compilation errors. No code generated.
Shader version: 400

View File

@@ -326,6 +326,17 @@ int aoeua = FOOOM;
#if FOOOM
#endif
#line 9500
#if\376
#endif
#if \376
#endif
#if \377
#endif
#error\377
#error \ 376
#error \377
#line 10000
#if 1
#else