glslang/Test/cppIndent.vert
John Kessenich fcb4ed054c Preprocessor: Rationalize, simplify, and correct the stack of input sources and their tokenization. This included
- consistently dealing with EOF and its effect on error recovery (bug 11444, #1)
 - turning a simulated OO hierarchy of function pointers and typecasting into a real C++ class hierarchy
 - correctly handling '\' everywhere, in all classes of tokens, as a layer before preprocessing itself
 - conditionally handling '\n' in macro expansion input, depending on whether it is in a macro expression or not
 - delete some unused "memory cleanup" code


git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24626 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2013-12-30 20:34:28 +00:00

62 lines
828 B
GLSL

#version 110
#define ON
float sum = 0.0;
void main()
{
#ifdef ON
//yes
sum += 1.0;
#endif
#ifdef OFF
//no
sum += 20.0;
#endif
#if defined(ON)
//yes
sum += 300.0;
#endif
#if defined(OFF)
//no
sum += 4000.0;
#endif
#if !defined(ON)
//no
sum += 50000.0;
#endif
#if !defined(OFF)
//yes
sum += 600000.0;
#endif
#if defined (ON) && defined (OFF)
//no
sum += 7000000.0;
#endif
#if defined ( ON ) && ! defined(OFF)
//yes
sum += 80000000.0;
#endif
#if defined(OFF) || defined(ON)
//yes
sum += 900000000.0;
#endif
// sum should be 980600301.0
gl_Position = vec4(sum);
}
#define FUNC(a,b) a+b
// needs to be last test in file due to syntax error
void foo986(){ FUNC( (((2)))), 4); } // ERROR, too many )