 4d6570a1b3
			
		
	
	
		4d6570a1b3
		
	
	
	
	
		
			
			- 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
		
			
				
	
	
		
			51 lines
		
	
	
		
			866 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			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 |