PP: Don't report certain error about '#' when #if'd out
Don't report the following error when scanning inactive code (e.g. code inside #if 0): "error: '#' : (#) can be preceded in its line only by spaces or horizontal tab" Adds a variable to PpContext to say whether we're currently skipping over an inactive #if/#ifdef/#elif/#else, and don't report the error inside scanToken if true. fixes 3704
This commit is contained in:
parent
45f2b112ce
commit
9cd7ca26a2
7 changed files with 68 additions and 4 deletions
0
Test/baseResults/preprocess.inactive_stringify.vert.err
Normal file
0
Test/baseResults/preprocess.inactive_stringify.vert.err
Normal file
29
Test/baseResults/preprocess.inactive_stringify.vert.out
Executable file
29
Test/baseResults/preprocess.inactive_stringify.vert.out
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
#version 460
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(1.0);
|
||||
}
|
||||
|
||||
28
Test/preprocess.inactive_stringify.vert
Executable file
28
Test/preprocess.inactive_stringify.vert
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
#version 460
|
||||
|
||||
// This tests that the preprocessor error
|
||||
// "error: '#' : (#) can be preceded in its line only by spaces or horizontal tab"
|
||||
// isn't enforced when inactive (e.g. inside #if 0)
|
||||
|
||||
#if 0
|
||||
#define STRINGIFY(X) #X
|
||||
#endif
|
||||
|
||||
#define C 0
|
||||
|
||||
#if 1
|
||||
#ifdef A
|
||||
#elif defined B
|
||||
#elif C
|
||||
// OK, since preprocessor evaluates to inactive
|
||||
#define STRINGIFY(X) #X
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// OK in comments
|
||||
// #define STRINGIFY(X) #X
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(1.0);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue