glslang/Test/cppComplexExpr.vert
John Kessenich 4d6570a1b3 Fix several issues in the preprocessor:
- macro expansion of hexidecimal numbers 
 - give errors instead of warnings/silence on extra tokens after #endif, #else, etc.
 - give errors on reserved macro name use, reuse of argument, and redefinition with different whitespace presence
 - detect and give error for all cases of #elif and #else after #else



git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23982 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2013-11-10 23:07:36 +00:00

51 lines
866 B
GLSL

#define ON1
#define ON2
float sum = 0.0;
void main()
{
#if defined(ON1) && (defined(OFF) || defined(ON2))
//yes
sum += 1.0;
#endif
#if !defined(ON1) || (defined(OFF) || (!defined(OFF2) && defined(ON2)))
//yes
sum += 20.0;
#endif
#if defined(ON1) && (defined(OFF) || !defined(ON2))
//no
sum += 0.1;
#endif
#if !defined(ON1) || (defined(OFF) || !defined(OFF2) && !defined(ON2))
//no
sum += 0.2;
#endif
#if !defined(ON1) || !defined(OFF) || defined(ON2) && defined(OFF2)
//yes
sum += 300.0;
#endif
#if (!defined(ON1) || !defined(OFF) || defined(ON2)) && defined(OFF2)
//no
sum += 0.4;
#endif
// sum should be 321.0
gl_Position = vec4(sum);
}
#define ADD(a, b) a + b + ((a) + ((b)));
float foo()
{
return ADD(gl_Position.xyxwx, 3.0) // ERROR, should be this line number
return ADD(gl_Position.y, 3.0)
}
#if 0
// ERROR, EOF