diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/cppComplexExpr.vert')
-rw-r--r-- | chromium/third_party/glslang/src/Test/cppComplexExpr.vert | 183 |
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 |