First Commit
This commit is contained in:
183
externals/glslang/Test/cppComplexExpr.vert
vendored
Normal file
183
externals/glslang/Test/cppComplexExpr.vert
vendored
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user