glslang/Test/preprocess.inactive_stringify.vert
U-NVIDIA.COM\rjennings 9cd7ca26a2 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
2024-09-02 13:35:09 -04:00

28 lines
486 B
GLSL
Executable File

#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);
}