summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/glslang/src/Test/cppComplexExpr.vert
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/glslang/src/Test/cppComplexExpr.vert')
-rw-r--r--chromium/third_party/glslang/src/Test/cppComplexExpr.vert183
1 files changed, 183 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/cppComplexExpr.vert b/chromium/third_party/glslang/src/Test/cppComplexExpr.vert
new file mode 100644
index 00000000000..bce5ffa3797
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/cppComplexExpr.vert
@@ -0,0 +1,183 @@
+#version 300 es
+#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)
+}
+
+#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \
+ antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \
+ antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \
+ a ntoehanu tunth nsont uhansoethausn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \
+ anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \
+ ontehanutoe hnuathoena aoteha aonetuha
+
+// identical
+#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \
+ antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \
+ antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \
+ a ntoehanu tunth nsont uhansoethausn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \
+ anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \
+ ontehanutoe hnuathoena aoteha aonetuha
+
+// ERROR, one character different
+#define BIG aonetuhanoethuanoenaoethu snaoetuhs onethausoentuas hnoethaueohnatuoeh santuoehsantouhe snathoensuta hsnoethuasntoe hsnuathoesnuathoenstuh nsoethantseuh toae ua \
+ antoeh uantheount oentahoent uahnsoethasnutoehansteuo santhu sneoathu snoethasnut oesanthoesna thusenotha nsthasunoeth ausntehsunathoensuathoesnta uhnsoetha usntoeh uanhs unosethu \
+ antoehunatoehu natoehua oentha neotuhan toehu natoehu ntahoe nutah eu natoheunathoen uasoenuasoent asntoehsan tuosnthnu aohenuath eontha untoh eunth unth anth unth nth nth nt \
+ a ntoehanu tunth nsont uhansoethasn oehsanthnt heauo eanthuo sh nahnoethansu tohe sanuthoe snathuoesntha snuothe anthusonehtasuntoeh asnuthonsa teauhntoeha onetuha nth \
+ anoethuan toentauh noethauntohe anuthoe nathu noethaun oethanuthoe nathuoe ntahu enotha unetha ntuhenaothu enotahun eotha ntoehu aoehuntha enotuh aonethau noethu anoethuna toheua \
+ ontehanutoe hnuathoena aoteha aonetuha
+
+#define BIGARGS1(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu
+#define BIGARGS2(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu
+#define BIGARGS3(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu
+#define BIGARGS4(aonthanotehu, bonthanotehu, conthanotehu, donthanotehu, eonthanotehu, fonthanotehu, gonthanotehu, honthanotehu, ionthanotehu, jonthanotehu, konthanotehu) jonthanotehu
+
+
+#define foobar(a, b) a + b
+
+#if foobar(1.1, 2.2)
+#error good macro
+#else
+#error bad macro
+#endif
+
+#if foobar(1
+;
+#
+#
+#endif
+#if foobar(1,
+;
+#
+#
+#endif
+float c = foobar(1.1, 2.2
+ );
+#if foobar(1.1, 2.2
+)
+#if foobar(1.1, 2.2
+#endif
+#endif
+
+#define VAL0 0
+#define VAL1 1
+
+#if UNDEF
+#error bad 0
+#else
+#error good 0
+#endif
+
+#if VAL1 || UNDEF
+#error good 1
+#else
+#error bad 1
+#endif
+
+#if VAL1 && UNDEF // UNDEF ERROR
+#endif
+
+#if VAL0 || UNDEF // UNDEF ERROR
+#endif
+
+#if VAL0 && UNDEF
+#error bad 2
+#else
+#error good 1
+#endif
+
+#if VAL1 || (VAL1 && UNDEF)
+#error good 3
+#else
+#error bad 3
+#endif
+
+#if VAL1 && (VAL1 || UNDEF)
+#error good 4
+#else
+#error bad 4
+#endif
+
+#if VAL1 < VAL1 || VAL1 > VAL1 || UNDEF // UNDEF ERROR
+#endif
+
+#if VAL1 < VAL1 || VAL1 > VAL1 && UNDEF
+#endif
+
+#if VAL1 || UNDEF && UNDEF2
+#endif
+
+#if VAL0 || UNDEF && UNDEF2 // UNDEF ERROR
+#endif
+
+#if (VAL1 || UNDEF) && UNDEF2 // UNDEF2 ERROR
+#endif
+
+#if (VAL0 && UNDEF) || UNDEF2 // UNDEF2 ERROR
+#endif
+
+#line 3000
+#error line of this error should be 3000
+
+#define __LINE__ 30
+#define __FILE__
+#define __VERSION__
+#define GL_SOME_EXTENSION
+#undef __LINE__
+#undef __FILE__
+#undef __VERSION__
+#undef GL_SOME_EXTENSION
+
+#line 4000
+#line 200 % 0 // ERROR, div by 0
+#if __LINE__ / 0 // ERROR, div by 0
+#endif
+
+#if 7% // ERROR incomplete expression
+
+#line 10000
+#if 0
+// ERROR, EOF \ No newline at end of file