summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang/Test/cppSimple.vert
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/cppSimple.vert')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/cppSimple.vert343
1 files changed, 343 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/cppSimple.vert b/3rdparty/bgfx/3rdparty/glslang/Test/cppSimple.vert
new file mode 100644
index 00000000000..198203a69d7
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/cppSimple.vert
@@ -0,0 +1,343 @@
+#version 400
+
+#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
+
+#ifndef OFF
+//yes
+sum += 600000.0;
+#else
+//no
+sum += 0.6;
+#endif
+
+#if defined(ON) && defined(OFF)
+//no
+sum += 0.7;
+#elif !defined(OFF)
+//yes
+sum += 7000000.0;
+#endif
+
+#if defined(ON) && !defined(OFF)
+//yes
+sum += 80000000.0;
+#endif
+
+#if defined(OFF) || defined(ON)
+//yes
+sum += 900000000.0;
+#endif
+
+#if NEVER_DEFINED
+//no
+sum += 0.04;
+#else
+sum += 0.05;
+#endif
+
+// sum should be 987600301.7
+ gl_Position = vec4(sum);
+}
+
+#define A 0
+# define B 0
+ # define C 0
+
+#if (A == B) || (A == C)
+#error good1
+#endif
+
+#if A == B || (A == C)
+#error good2
+#endif
+
+#if (A == B || (A == C))
+#error good3
+#endif
+
+#if (AA == BB) || (AA == CC)
+#error good4
+#endif
+
+#if AA == BB || (AA == CC)
+#error good5
+#endif
+
+#if ((AA == BB || (AA == CC)))
+#error good6
+#endif
+
+#if (A == B || (A == C)
+#error bad1
+#endif
+
+#if A == B || A == C)
+#error bad2
+#endif
+
+#if (A == B || (A == C)
+#error bad3
+#endif
+
+#if AA == BB) || (AA == CC)
+#error bad4
+#endif
+
+#if AA == BB || (AA == CC
+#error bad5
+#endif
+
+#if ((AA == BB || (AA == CC))))
+#error bad6
+#endif extra tokens
+
+int linenumber = __LINE__;
+int filenumber = __FILE__;
+int version = __VERSION__;
+
+#define PI (3.14)
+#define TWOPI (2.0 * PI)
+float twoPi = TWOPI;
+
+//#define PASTE(a,b) a ## b
+//float PASTE(tod, ay) = 17;
+
+"boo" // ERROR
+int a = length("aoenatuh"); // ERROR
+#define QUOTE "abcd" // okay
+'int'; // ERROR
+#define SINGLE 'a' // okay
+// ERROR: all the following are reserved
+#define GL_
+#define GL_Macro 1
+#define __M
+#define M__
+#define ABC__DE abc
+
+#if 4
+#else extra
+#elif
+// ERROR elif after else
+#endif
+
+#if blah
+ #if 0
+ #else extra
+ #ifdef M
+ #else
+ #else
+ // ERROR else after else
+ #endif extra
+ #endif
+#endif
+
+#define m1(a,a) // ERROR
+#define m2(a,b)
+
+// okay
+#define m3 (a)
+#define m3 (a)
+
+// ERROR
+#define m4(b)
+#define m4 (b)
+
+// ERROR
+#define m5 (b)
+#define m5(b)
+
+// ERROR
+#define m6(a)
+#define m6
+
+// ERROR (whitespace)
+#define m7 (a)
+#define m7 ( a)
+
+#define m80(a,b) is + exactly m3 the same
+#define m80(a,b) is + exactly m3 the same
+
+// ERROR
+#define m8(a,b) almost + exactly m3 the same
+#define m8(a,b) almost + exactly m3 thee same
+
+// ERROR
+#define m9(a,b,c) aoe
+#define m9(a,d,c) aoe
+
+#define n1 0xf
+int n = n1;
+
+#define f1 .08e-2Lf
+double f = f1;
+
+#undef __VERSION__
+#undef GL_ARB_texture_rectangle
+
+#
+ #
+ #
+##
+# #
+# 0x25
+####
+####ff
+#########ff fg 0x25
+#pragma
+#pragma(aoent)
+ # pragma
+#pragma STDGL
+#pragma optimize( on)
+#pragma optimize(off)
+#pragma debug( on)
+#pragma debug(off )
+#pragma optimize( on) anoteun
+#pragma optimize(off
+#pragma debug( on) (
+#pragma debug(off aoeua)
+#pragma optimize( on)
+#pragma optimize(off,)
+#pragma debug( on, aoeu)
+#pragma debugoff )
+#pragma aontheu natoeh uantheo uasotea noeahuonea uonethau onethuanoeth aunotehau noeth anthoeua anoethuantoeh uantoehu natoehu naoteh unotaehu noethua onetuh aou
+# \
+
+# \
+ error good continuation
+
+#flizbit
+
+#define directive error
+
+#directive directive was expanded
+
+#line 12000
+#error line should be 12000
+#line 13000 7
+#error line should be 13000, string 7
+#define L1 14000
+#define L2 13
+#define F1 5
+#define F2 7
+#line L1 + L2
+#error line should be 14013, string 7
+#line L1 + L2 F1 + F2 // antoeuh sat comment
+#error line should be 14013, string 12
+#line L1 + L2 + F1 + F2
+#error line should be 14025, string 12
+#line 1234 F1 + F2 extra
+#define empty_extra
+#line 1235 F1 + F2 empty_extra
+#define moreEmpty empty_extra
+#line 1236 F1 + F2 moreEmpty empty_extra // okay, lots of nothin
+#line 1237 F1 + F2 moreEmpty empty_extra extra // ERROR, 'extra'
+#line 1238 F1 + F2 moreEmpty empty_extra
+#line 1239 empty_extra F1 empty_extra + empty_extra F2 empty_extra moreEmpty empty_extra
+#line (20000)
+#error line should be 20000
+#line (20000+10)
+#error line should be 20010
+#line +20020
+#error line should be 20020
+
+#define VAL1 1.0
+#define VAL2 2.0
+
+#define RES2 /* test a multiline
+ comment in a macro definition */ (RES1 * VAL2)
+#define RES1 (VAL2 / VAL1)
+#define RES2 /* comment */(RES1 * VAL2)
+#define /* */SUM_VALUES (RES2 + RES1)
+
+void foo234()
+{
+ gl_Position = vec4(SUM_VALUES);
+}
+
+// more whitespace recording tests
+#define SPACE_AT_END(a,b) spaceAtEndIsOkay
+#define SPACE_AT_END(a,b) spaceAtEndIsOkay // space at end
+
+#define SPACE_AT_BEGIN(a,b)spaceAtBeginIsOkay
+#define SPACE_AT_BEGIN(a,b) spaceAtBeginIsOkay
+
+// space in middle is an error
+#define SPACE_IN_MIDDLE(a,b) space +in middle
+#define SPACE_IN_MIDDLE(a,b) space + in middle
+
+#define FIRSTPART 17
+#define SECONDPART + 5
+
+#if FIRSTPART SECONDPART == 22
+#error good evaluation 1
+#endif
+
+#if moreEmpty FIRSTPART moreEmpty SECONDPART moreEmpty == moreEmpty 22 moreEmpty
+#error good evaluation 2
+#endif
+
+// ERRORS...
+#line 9000
+#if defined(OUNH
+#endif
+#if defined OUNH)
+#endif
+
+// recursion (okay)
+#define RECURSE RECURSE
+int RECURSE;
+#define R2 R1
+#define R1 R2
+#undef RECURSE
+int R1 = RECURSE;
+
+#define FOOOM(a,b) a + b
+int aoeua = FOOOM;
+#if FOOOM
+#endif
+
+#line 9500
+#if\376
+#endif
+#if \376
+#endif
+#if \377
+#endif
+#error\377
+#error \ 376
+#error \377
+
+#line 10000
+#if 1
+#else
+// ERROR, missing #endif \ No newline at end of file