123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- #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
|