13c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup basic "Basic Tests" 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case correct_phases 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define e +1 73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry mediump int n = 1e; 103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_identifier 153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define e +1 183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry mediump int 1xyz = 1; 223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case null_directive 273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 0.0; } 283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # 333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # // comment 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /*sfd*/ # /* */ 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_directive 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #defin AAA 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case missing_identifier 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define 593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case empty_object 673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = -1.0; } 683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE 733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE - 1.0; 773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case empty_function 833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = -1.0; } 843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE(a) 893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE(2.0) - 1.0; 933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case empty_directive 1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # 1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 115dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry case identifier_with_double_underscore 116dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry values { output float out0 = 1.0; } 117dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry both "" 118dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry precision mediump float; 119dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry ${DECLARATIONS} 120dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry # define __VALUE__ 1 121dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry 122dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry void main() 123dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry { 124dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry // __VALUE__ not used since it might be set by an "underlying software layer" 125dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry out0 = float(1.0); 126dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry ${OUTPUT} 127dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry } 128dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry "" 129dd3c1e9bf560d4490d4aad5763e0180b098dbb0eJarkko Pöyry end 1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # basic 1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup definitions "Symbol Definition Tests" 1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case define_value_and_function 1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 6.0; } 1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS:single-line} 1403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (1.5 + 2.5) 1413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNCTION(__LINE__, b) __LINE__+b 1423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = FUNCTION(VALUE, ((0.2) + 1.8) ); 1463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 1473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefine_object_invalid_syntax 1523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 1533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 1553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 2.0 1563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef VAL sdflkjfds 1573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 1583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(VAL); 1623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefine_invalid_object_1 1673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 1683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 1703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef __LINE__ 1713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(__LINE__); 1753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefine_invalid_object_2 1803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 1813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 1833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef __FILE__ 1843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 1873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(__FILE__); 1883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 1893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 1903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 1913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefine_invalid_object_3 1933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 1943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 1953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 1963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef __VERSION__ 1973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 1983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 1993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(__VERSION__); 2013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefine_invalid_object_4 2063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 2073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 2083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 2093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef GL_ES 2103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(GL_ES); 2143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefine_function 2193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 2203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 2213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 2223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 2233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define FUNCTION(a,b) a+b 2243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef FUNCTION 2253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define FUNCTION(a,b) a-b 2263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = FUNCTION(3.0, 2.0); 2303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 2313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2353c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # definitions 2363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2373c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup invalid_definitions "Invalid Definition Tests" 2383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case define_non_identifier 2403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 2413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 2423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 2433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define 123 321 2443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 2483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undef_non_identifier_1 2533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 2543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 2553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 2563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef 123 2573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 2613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undef_non_identifier_2 2663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 2673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 2683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 2693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef foo.bar 2703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 2743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2793c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # invalid_definitions 2803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2813c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup object_redefinitions "Object Redefinition Tests" 2823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_object_ident 2843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 2853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 2863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 2873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA 2.0 2883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAAA 2.1 2893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 1.0) 2903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAAA - 1.0) 2913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 2933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 2943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(VALUE); 2953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 2963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 2973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 2983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_object_whitespace 3003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 3013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 3023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 3033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA 2.0 3043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 1.0) 3053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA- 1.0) 3063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 3083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 3093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(VALUE); 3103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 3113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 3123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 3133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_object_op 3153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 3163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 3173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 3183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA 2.0 3193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 1.0) 3203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA + 1.0) 3213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 3233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 3243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(VALUE); 3253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 3263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 3273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 3283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_object_floatval_1 3303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 3313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 3323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 3333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA 2.0 3343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 1.0) 3353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 1.1) 3363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 3383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 3393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(VALUE); 3403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 3413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 3423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 3433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_object_floatval_2 3453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 3463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 3473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 3483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA 2.0 3493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 1.0) 3503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 1.0e-1) 3513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 3533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 3543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(VALUE); 3553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 3563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 3573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 3583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_object_intval_1 3603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 3613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 3623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 3633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA 2 3643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 1) 3653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 2) 3663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 3683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 3693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(VALUE); 3703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 3713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 3723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 3733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_object_intval_2 3753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 3763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 3773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 3783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA 2 3793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 1) 3803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VALUE (AAA - 0x1) 3813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 3833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 3843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(VALUE); 3853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 3863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 3873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 3883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case redefine_object_1 3903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 6.0; } 3913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 3933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 3943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 3953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VAL1 1.0 3963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL2 2.0 3973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 3983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define RES2 (RES1 * VAL2) 3993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define RES1 (VAL2 / VAL1) 4003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define RES2 (RES1 * VAL2) 4013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE (RES2 + RES1) 4023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 4043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 4053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE; 4063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 4073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 4083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 4093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 4103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case redefine_object_ifdef 4123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 4133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 4153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 4163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 4173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 4183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 4193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifdef ADEFINE 4213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 1.0 4223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 4233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 0.0 4243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 4253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 4273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 4283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE; 4293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 4303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 4313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 4323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 4333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case redefine_object_undef_ifdef 4353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 4363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 4383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 4393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 4403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 4413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 4423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef ADEFINE 4433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifdef ADEFINE 4453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 0.0 4463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 4473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 1.0 4483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 4493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 4513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 4523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE; 4533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 4543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 4553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 4563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 4573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case redefine_object_ifndef 4593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 4603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 4623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 4633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 4643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 4653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 4663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifndef ADEFINE 4683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 0.0 4693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 4703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 1.0 4713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 4723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 4743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 4753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE; 4763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 4773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 4783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 4793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 4803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case redefine_object_defined_1 4823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 4833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 4853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 4863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 4873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 4883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 4893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined(ADEFINE) 4913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 1.0 4923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 4933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 0.0 4943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 4953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 4963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 4973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 4983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE; 4993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 5003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 5013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 5023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 5033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case redefine_object_defined_2 5053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 5063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 5083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 5093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 5103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 5113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define ADEFINE 1 5123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined ADEFINE 5143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 1.0 5153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 5163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 0.0 5173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 5183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 5203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 5213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE; 5223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 5233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 5243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 5253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 5263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case redefine_object_comment 5283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 6.0; } 5293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 5313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 5323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 5333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VAL1 1.0 5343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL2 2.0 5353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define RES2 /* fdsjklfdsjkl dsfjkhfdsjkh fdsjklhfdsjkh */ (RES1 * VAL2) 5373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define RES1 (VAL2 / VAL1) 5383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define RES2 /* ewrlkjhsadf */ (RES1 * VAL2) 5393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE (RES2 + RES1) 5403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 5423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 5433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE; 5443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 5453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 5463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 5473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 5483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case redefine_object_multiline_comment 5503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 6.0; } 5513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 5533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 5543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 5553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define VAL1 1.0 5563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL2 2.0 5573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define RES2 /* fdsjklfdsjkl 5593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry dsfjkhfdsjkh 5603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry fdsjklhfdsjkh */ (RES1 * VAL2) 5613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define RES1 (VAL2 / VAL1) 5623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define RES2 /* ewrlkjhsadf */ (RES1 * VAL2) 5633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE (RES2 + RES1) 5643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 5663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 5673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE; 5683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 5693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 5703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 5713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 5723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5733c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # object_redefinitions 5743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5753c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup invalid_redefinitions "Invalid Redefinitions Tests" 5763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_identifier_2 5783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 5793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 5803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 5813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define GL_VALUE 1.0 5823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 5843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 5853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(GL_VALUE); 5863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 5873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 5883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 5893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5903c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # invalid_redefinitions 5913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5923c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup comments "Comment Tests" 5933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 5943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case multiline_comment_define 5953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 4.2; } 5963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 5973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 5983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 5993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE /* current 6003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry value */ 4.2 6013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 6033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 6043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VALUE; 6053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 6063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 6073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 6083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 6093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case nested_comment 6113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 6123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 6133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 6143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 6153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 6163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 6173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 6183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /* /* */ 6193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 6203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry // */ 6213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 6223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 6233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 6243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 6253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case comment_trick_1 6273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 6283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 6293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 6303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 6313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 6323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 6333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /*/ 6343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 6353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /*/ 6363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 6373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /**/ 6383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 6393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 6403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 6413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 6423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case comment_trick_2 6443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 6453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 6463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 6473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 6483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 6493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 6503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /**/ 6513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 6523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /*/ 6533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 6543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /**/ 6553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 6563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 6573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 6583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 6593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_comment 6613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 6623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 6633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 6643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 6653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 6663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /* /* */ */ 6673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = 1.0; 6683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 6693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 6703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 6713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_comment_1 6733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 6743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 6753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 6763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 6773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 6783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /* 6793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 6803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 6813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 6823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_comment_2 6843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 6853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 6863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /* 6873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 6883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 6893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 6903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 6913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 6923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 6933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6943c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # comments 6953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6963c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup function_definitions "Function Definitions Tests" 6973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 6983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case same_object_and_function_param 6993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 7003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 7023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 7033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 7043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VALUE 1.0 7053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define FUNCTION(VALUE, B) (VALUE-B) 7063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 7083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 7093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = FUNCTION(3.0, 2.0); 7103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 7113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 7123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 7133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 7143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case complex_func 7163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 518.5; } 7173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 7183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 7193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 7203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA(a,b) a*(BBB(a,b)) 7213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define BBB(a,b) a-b 7223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 7243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 7253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = BBB(AAA(8.0/4.0, 2.0)*BBB(2.0*2.0,0.75*2.0), AAA(40.0,10.0*BBB(5.0,3.0))); 7263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 7273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 7283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 7293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 7303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case function_definition_with_comments 7323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 3.0; } 7333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 7343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 7353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 7363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /* sdfljk */ #/* sdfljk */define /* sdfljk */ FUNC( /* jklsfd*/a /*sfdjklh*/, /*sdfklj */b /*sdfklj*/) a+b 7373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 7393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 7403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = FUNC(1.0, 2.0); 7413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 7423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 7433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 7443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 7453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7463c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # function_definitions 7473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7483c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup recursion "Recursions Tests" 7493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case recursion_1 7513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 7523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 7533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 7543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA AAA 7553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 7573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 7583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(AAA); 7593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 7603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 7613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 7623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case recursion_2 7643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 7653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 7663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 7673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA BBB 7683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define BBB AAA 7693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 7713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 7723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(AAA); 7733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 7743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 7753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 7763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case recursion_3 7783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 7793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 7803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 7813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA (1.0+BBB) 7823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define BBB (2.0+AAA) 7833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 7853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 7863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(AAA); 7873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 7883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 7893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 7903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case recursion_4 7923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 7933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 7943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 7953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA(a) AAA(a) 7963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 7973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 7983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 7993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(AAA(1.0)); 8003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 8013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 8023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 8033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case recursion_5 8053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 8063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 8073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 8083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define AAA(a, b) AAA(b, a) 8093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 8113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 8123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(AAA(1.0, 2.0)); 8133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 8143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 8153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 8163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8173c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # recursion 8183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8193c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup function_redefinitions "Function Redefinition Tests" 8203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case function_redefinition_1 8223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 3.0; } 8233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 8243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 8253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 8263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC( a, b) a+b 8273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 8293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 8303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 8313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = FUNC(1.0, 2.0); 8323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 8333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 8343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 8353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 8363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case function_redefinition_2 8383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 3.0; } 8393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 8403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 8413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) (a +b) 8423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC( a, b )(a +b) 8433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 8453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 8463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 8473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = FUNC(1.0, 2.0); 8483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 8493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 8503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 8513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 8523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case function_redefinition_3 8543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 3.0; } 8553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 8563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 8573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) (a +b) 8583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b)(a /* comment 8593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry */ +b) 8603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 8623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 8633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 8643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = FUNC(1.0, 2.0); 8653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 8663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 8673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 8683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 8693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_function_redefinition_param_1 8713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 8723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 8733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 8743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 8753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(A,b) A+b 8763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 8783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 8793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0, 2.0)); 8803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 8813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 8823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 8833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_function_redefinition_param_2 8853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 8863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 8873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 8883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 8893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b,c) a+b+c 8903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 8923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 8933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0, 2.0, 3.0)); 8943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 8953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 8963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 8973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 8983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_function_redefinition_param_3 8993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 9003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 9013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 9023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 9033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) b+a 9043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 9063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 9073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0, 2.0)); 9083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 9093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 9103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 9113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9123c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # functions_redefinitions 9133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9143c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup invalid_function_definitions "Invalid Function Definition Tests" 9153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case arguments_1 9173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 9183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 9193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 9203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 9213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 9233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 9243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC); 9253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 9263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 9273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 9283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case arguments_2 9303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 9313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 9323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 9333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 9343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 9363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 9373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC()); 9383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 9393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 9403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 9413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case arguments_3 9433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 9443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 9453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 9463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 9473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 9493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 9503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(((); 9513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 9523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 9533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 9543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case arguments_4 9563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 9573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 9583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 9593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 9603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 9623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 9633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC)); 9643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 9653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 9663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 9673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case arguments_5 9693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 9703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 9713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 9723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 9733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 9753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 9763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0)); 9773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 9783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 9793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 9803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case arguments_6 9823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 9833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 9843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 9853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 9863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 9883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 9893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0); 9903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 9913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 9923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 9933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 9943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case arguments_7 9953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 9963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 9973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 9983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 9993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 10013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 10023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,)); 10033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 10043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 10053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 10063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case arguments_8 10083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 10093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 10103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 10113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,b) a+b 10123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 10143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 10153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0, 2.0, 3.0)); 10163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 10173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 10183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 10193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unique_param_name 10213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 10223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 10233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 10243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a,a) a+a 10253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 10273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 10283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 10293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 10303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 10313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 10323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case argument_list_1 10343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 10353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 10363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 10373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a b) a+b 10383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 10403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 10413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 10423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 10433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 10443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 10453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case argument_list_2 10473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 10483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 10493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 10503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(a + b) a+b 10513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 10533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 10543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 10553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 10563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 10573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 10583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case argument_list_3 10603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 10613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 10623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 10633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(,a,b) a+b 10643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 10663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 10673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 10683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 10693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 10703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 10713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case no_closing_parenthesis_1 10733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 10743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 10753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 10763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC( 10773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 10793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 10803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 10813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 10823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 10833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 10843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case no_closing_parenthesis_2 10863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 10873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 10883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 10893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(A a+b 10903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 10923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 10933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 10943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 10953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 10963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 10973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 10983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case no_closing_parenthesis_3 10993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 11003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 11013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 11023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC(A,B,C a+b 11033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 11053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 11063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 11073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 11083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 11093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 11103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case no_closing_parenthesis_4 11123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 11133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 11143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 11153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # define FUNC( 11163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 11173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 11183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11193c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # invalid_function_definitions 11203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11213c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup semantic "Semantic Tests" 11223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case ops_as_arguments 11243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 20.0; } 11253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 11263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 11273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 11283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define FOO(a, b) (1 a 9) b 2 11293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 11313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 11323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(FOO(+, *)); 11333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 11343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 11353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 11363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 11373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case correct_order 11393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 11403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 11413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 11423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 11433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define FUNC(A) A 11443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define A 2.0 11453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 11473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 11483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = FUNC(A - 1.0); 11493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 11503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 11513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 11523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 11533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11543c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # semantic 11553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11563c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup predefined_macros "Predefined Macros Tests" 11573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case version 11593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 100.0; } 11603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 11613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 11623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 11633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 11643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 11653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA __VERSION__ 11663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(AAA); 11673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 11683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 11693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 11703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 11713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case gl_es_1 11733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 11743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 11753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 11763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 11773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 11793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 11803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(GL_ES); 11813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 11823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 11833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 11843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 11853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case gl_es_2 11873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 11883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 11893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 11903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 11913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA(A) A 11923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 11933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 11943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 11953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(AAA(GL_ES)); 11963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 11973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 11983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 11993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 12003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case line_1 12023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 12033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 12043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry const mediump int line = __LINE__; 12053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 12063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 12073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 12083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 12093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(line); 12103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 12113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 12123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 12133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 12143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case line_2 12163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # Note: Arguments are macro replaced in the first stage. 12173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # Macro replacement list is expanded in the last stage. 12183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output vec4 out0 = vec4(11.0, 11.0, 9.0, 10.0); } 12193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 12213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 12223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS:single-line} 12233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define BBB __LINE__, /* 12243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry */ __LINE__ 12253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA(a,b) BBB, a, b 12263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 12283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 12293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = vec4(AAA(__LINE__, 12303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry __LINE__ 12313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry )); 12323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 12333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 12343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 12353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 12363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case file 12383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 0.0; } 12393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 12403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 12413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 12423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 12433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 12443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(__FILE__); 12453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 12463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 12473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 12483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 12493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case if_gl_es 12513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 12523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 12533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 12543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 12553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 12563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 12573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if GL_ES 12583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 12593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 12603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 12613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 12623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 12633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 12643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 12653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 12663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case if_version 12683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 12693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 12703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 12713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 12723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 12733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 12743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if __VERSION__ == 100 12753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 12763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 12773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 12783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 12793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 12803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 12813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 12823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 12833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12843c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # predefined_macros 12853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12863c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup conditional_inclusion "Conditional Inclusion Tests" 12873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case basic_1 12893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 12903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 12913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 12923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 12933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 12943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 12953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA asdf 12963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 12973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined AAA && !defined(BBB) 12983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 12993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 13003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 13013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 13023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 13033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 13043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 13053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 13063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 13073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case basic_2 13083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 13093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 13103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 13113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 13123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 13133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 13143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA defined(BBB) 13153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 13163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if !AAA 13173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 13183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 13193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 13203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 13213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 13223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 13233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 13243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 13253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 13263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case basic_3 13273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 13283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 13293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 13303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 13313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 13323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 13333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 13343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 13353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 0 13363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -2.0; 13373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 1 13383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 13393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 13403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -3.0; 13413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 13423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 13433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 13443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 13453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 13463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 13473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case basic_4 13483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 13493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 13503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 13513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 13523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 13533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 13543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 13553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 13563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 0 13573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -2.0; 13583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 13593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 13603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 13613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 13623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 13633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 13643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 13653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 13663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case basic_5 13673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 13683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 13693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 13703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 13713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 13723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 13733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 13743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 13753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 0 13763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -2.0; 13773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 13783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 13793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 13803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 13813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 13823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 13833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 13843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 13853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unary_ops_1 13863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 13873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 13883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 13893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 13903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 13913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 13923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if !((~2 >> 1) & 1) 13933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 13943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 13953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 13963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 13973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 13983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 13993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 14003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 14013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unary_ops_2 14033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 14043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 14053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 14063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 14073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 14083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 14093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if !((~(- - - - - 1 + + + + + +1) >> 1) & 1) 14103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 14113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 14123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 14133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 14143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 14153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 14163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 14173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 14183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14193c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # conditional_inclusion 14203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14213c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup invalid_ops "Invalid Operations Tests" 14223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_op_1 14243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 14253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 14263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 14273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 14283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 14293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if !((~(+ ++1 - - - -1) >> 1) & 1) 14303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 14313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 14323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 14333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 14343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 14353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 14363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 14373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_op_2 14393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 14403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 14413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 14423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 14433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 14443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if !((~(+ + +1 - -- -1) >> 1) & 1) 14453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 14463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 14473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 14483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 14493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 14503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 14513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 14523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_defined_expected_identifier_1 14543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 14553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 14563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 14573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 1 14583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 14603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 14613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined 14623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 14633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 14643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 14653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 14663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 14673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_defined_expected_identifier_2 14693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 14703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 14713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 14723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 1 14733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 14753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 14763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined() 14773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 14783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 14793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 14803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 14813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 14823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_defined_expected_identifier_3 14843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 14853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 14863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 14873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 1 14883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 14903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 14913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined( 14923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 14933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 14943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 14953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 14963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 14973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 14983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_defined_expected_identifier_4 14993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 15003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 15013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 15023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 1 15033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 15053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 15063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined) 15073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 15083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 15093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 15103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 15113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 15123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_defined_expected_identifier_5 15143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 15153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 15163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 15173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 1 15183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 15203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 15213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined((AAA)) 15223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0); 15233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 15243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 15253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 15263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 15273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_defined_expected_rparen 15293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 15303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 15313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 15323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 1 15333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 15353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 15363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined(AAA 15373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 15383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 15393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 15403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 15413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 15423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case defined_define 15443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 15453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 15463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 15473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 15483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define define 1 15493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 1.0 15503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 15523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 15533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = AAA; 15543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 15553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 15563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 15573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 15583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15593c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # invalid_ops 15603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15613c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup undefined_identifiers "Undefined Identifiers Tests" 15623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case valid_undefined_identifier_1 15643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 15653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 15663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 15673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 15683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 15693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 15703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 || AAA 15713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 15723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 15733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 15743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 15753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 15763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 15773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 15783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 15793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case valid_undefined_identifier_2 15813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 15823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 15833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 15843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 15853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 15863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 15873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 && AAA 15883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 15893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 15903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 15913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 15923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 15933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 15943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 15953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 15963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 15973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_1 15983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 15993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 16003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 16013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 16023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 16033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 - CCC + (-AAA || BBB) 16043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 16053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 16063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 16073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 16083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 16093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 16103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 16113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 16123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_2 16133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 16143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 16153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 16163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 16173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 16183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if !A 16193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 16203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 16213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 16223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 16233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 16243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 16253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 16263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 16273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_3 16283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 16293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 16303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 16313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 16323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 16333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if -A 16343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 16353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 16363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 16373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 16383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 16393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 16403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 16413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 16423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_4 16433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 16443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 16453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 16463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 16473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 16483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ~A 16493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 16503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 16513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 16523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 16533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 16543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 16553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 16563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 16573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_5 16583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 16593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 16603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 16613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 16623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 16633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if A && B 16643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 16653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 16663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 16673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 16683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 16693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 16703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 16713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 16723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_6 16733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 16743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 16753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 16763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 16773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 16783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define A 1 16793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if A && B 16803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 16813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 16823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 16833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 16843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 16853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 16863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 16873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 16883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_7 16893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 16903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 16913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 16923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 16933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 16943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define B 1 16953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if A && B 16963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 16973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 16983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 16993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 17003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 17013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 17023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 17033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 17043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_8 17053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 17063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 17073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 17083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 17093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 17103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define B 1 17113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define A 2 17123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef A 17133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if A && B 17143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 17153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 17163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 17173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 17183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 17193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 17203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 17213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 17223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_9 17233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 17243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 17253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 17263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 17273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 17283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if A || B 17293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 17303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 17313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 17323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 17333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 17343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 17353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 17363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 17373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_10 17383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 17393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 17403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 17413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 17423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 17433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define A 0 17443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if A || B 17453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 17463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 17473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 17483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 17493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 17503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 17513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 17523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 17533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_11 17543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 17553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 17563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 17573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 17583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 17593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define A 0 17603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define B 2 17613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef B 17623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if A || B 17633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 17643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 17653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 17663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 17673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 17683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 17693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 17703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 17713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case undefined_identifier_12 17723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 17733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 17743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 17753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 17763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 17773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define B 1 17783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if A || B 17793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 17803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 17813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 17823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 17833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 17843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 17853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 17863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 17873c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # undefined_identifiers 17883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 17893c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup invalid_conditionals "Invalid Conditionals Tests" 17903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 17913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case empty_if 17923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 17933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 17943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 17953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 17963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 17973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 17983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 17993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 18003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 18013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 18023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 18033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case empty_ifdef 18043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 18053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 18063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 18073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 18083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 18093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifdef 18103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 18113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 18123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 18133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 18143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 18153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case empty_ifndef 18163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 18173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 18183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 18193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 18203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 18213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifndef 18223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 18233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 18243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 18253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 18263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 18273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case empty_if_defined 18283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 18293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 18303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 18313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 18323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 18333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined 18343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 18353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 18363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 18373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 18383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 18393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_if_1 18403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 18413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 18423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 18433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 18443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 18453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 18463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 18473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 18483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 18493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 18503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 18513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_if_2 18523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 18533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 18543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 18553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 18563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 18573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 18583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 18593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 18603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 18613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 18623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 18633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_ifdef 18643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 18653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 18663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 18673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 18683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 18693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifdef FOOBAR 18703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 18713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 18723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 18733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 18743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 18753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_ifndef 18763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 18773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 18783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 18793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 18803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 18813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifndef GL_ES 18823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 18833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 18843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 18853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 18863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 18873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_else_1 18883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 18893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 18903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 18913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 18923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 18933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 18943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 18953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 18963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 18973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 18983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 18993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 19003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_else_2 19013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 19023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 19033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 19043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 19053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 19063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 19073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 19083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 19093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 19103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 19113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 19123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 19133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_elif_1 19143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 19153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 19163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 19173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 19183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 19193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 19203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 1 19213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 19223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 19233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 19243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 19253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 19263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_elif_2 19273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 19283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 19293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 19303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 19313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 19323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 19333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 0 19343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 19353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 19363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 19373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 19383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 19393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_elif_3 19403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 19413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 19423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 19433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 19443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 19453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 19463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 0 19473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(2.0); 19483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 19493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 19503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 19513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 19523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case elif_after_else 19533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 19543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 19553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 19563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 19573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 19583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 19593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 19603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 19613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 19623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 1 19633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(0.0); 19643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 19653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 19663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 19673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 19683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 19693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case else_without_if 19703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 19713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 19723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 19733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 19743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 19753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 19763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 19773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 19783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 19793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 19803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 19813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 19823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case elif_without_if 19833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 19843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 19853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 19863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 19873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 19883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 1 19893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 19903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 19913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 19923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 19933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 19943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 19953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case endif_without_if 19963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 19973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 19983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 19993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 20003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 20013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 20023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 20033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 20043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 20053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 20063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 20073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case else_after_else 20083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 20093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 20103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 20113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 20123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 20133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if !GL_ES 20143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 20153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 20163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 20173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 20183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(-1.0); 20193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 20203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 20213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 20223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 20233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 20243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case nested_elif_without_if 20253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 20263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 20273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 20283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 20293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 20303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 20313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 20323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # elif 20333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(0.0); 20343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # endif 20353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 20363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 20373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 20383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 20393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 20403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case if_float 20413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 20423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 20433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 20443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 20453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 20463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1.231 20473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 20483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # elif 20493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(0.0); 20503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # endif 20513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 20523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 20533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 20543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 20553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 20563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case tokens_after_if 20573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 20583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 20593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 20603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 20613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 20623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 foobar 20633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 20643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 20653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 20663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 20673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 20683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 20693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case tokens_after_elif 20703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 20713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 20723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 20733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 20743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 20753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 20763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif foobar 20773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 20783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 20793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 20803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 20813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 20823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 20833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case tokens_after_else 20843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 20853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 20863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 20873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 20883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 20893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 20903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else foobar 1.231 20913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 20923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 20933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 20943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 20953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 20963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 20973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case tokens_after_endif 20983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 20993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 21003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 21013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 21023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 21033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 21043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 21053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif foobar 21063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 21073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 21083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 21093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 21103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 21113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case tokens_after_ifdef 21123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 21133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 21143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 21153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 21163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 21173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifdef FOOBAR foobar 21183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 21193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 21203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 21213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 21223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 21233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 21243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 21253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case tokens_after_ifndef 21263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 21273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 21283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 21293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 21303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 21313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifndef FOOBAR ,, +- << barbar 21323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 21333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 21343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 21353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 21363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 21373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 21383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 21393c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # invalid_conditionals 21403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 21413c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup conditionals "Conditionals Tests" 21423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 21433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_nested_blocks 21443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 21453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 21463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 21473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 21483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 21493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 21503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # if 1 21513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 21523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 21533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 21543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 21553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 21563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case ifdef_1 21573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 21583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 21593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 21603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 21613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 21623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 21633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 21643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifdef AAA 21653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 21663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 21673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 21683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 21693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 21703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 21713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 21723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 21733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 21743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case ifdef_2 21753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 21763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 21773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 21783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 21793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 21803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 21813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 21823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined ( AAA) 21833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 21843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 21853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 21863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 21873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 21883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 21893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 21903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 21913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 21923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case ifdef_3 21933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 21943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 21953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 21963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 21973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 21983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 21993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifdef AAA 22003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 22013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 22023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 22033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 22043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 22053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 22063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 22073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 22083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 22093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_ifdef 22103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 22113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 22123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 22133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 22143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 22153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifdef 1 22163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 22173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 22183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 22193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 22203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 22213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 22223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case ifndef_1 22233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 22243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 22253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 22263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 22273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 22283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 22293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifndef AAA 22303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 22313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 22323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 22333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 22343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 22353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 22363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 22373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 22383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 22393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case ifndef_2 22403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 22413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 22423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 22433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 22443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA 22453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 22463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 22473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifndef AAA 22483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 22493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 22503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 22513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 22523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 22533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 22543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 22553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 22563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 22573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_ifndef 22583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 22593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 22603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 22613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 22623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 22633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifndef 1 22643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 22653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 22663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 22673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 22683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 22693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 22703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case mixed_conditional_inclusion 22713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 22723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 22733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 22743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 22753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 22763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 22773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #ifndef AAA 22783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 22793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #elif 1 22803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 22813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 22823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 22833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 22843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 22853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 22863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 22873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case nested_if_1 22883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 22893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 22903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 22913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 22923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 22933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 22943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if GL_ES 22953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # if __VERSION__ != 100 22963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 22973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # else 22983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 22993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # endif 23003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 23013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 23023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 23033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 23043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 23053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 23063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case nested_if_2 23073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 23083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 23093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 23103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 23113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 23123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 23133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 1 23143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # if 0 23153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 23163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # else 23173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # if 0 23183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 23193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # elif 1 23203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 23213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # else 23223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 23233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # endif 23243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # endif 23253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 23263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 23273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 23283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 23293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 23303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 23313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case nested_if_3 23323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 23333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 23343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 23353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 23363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 23373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 23383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 0 23393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # if 1 23403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = -1.0; 23413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry # endif 23423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 23433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 23443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 23453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 23463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 23473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 23483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 23493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 23503c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # conditionals 23513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 23523c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup directive "Directive Tests" 23533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 23543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case version 23553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 23563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 23573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /* asdf */ 23583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version 100 23593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 23603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 23613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 23623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 23633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 23643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 23653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 23663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 23673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 23683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 23693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case version_is_less 23703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 23713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 23723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version 99 23733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 23743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 23753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 23763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 23773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 23783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 23793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 23803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 23813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case version_is_more 23823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 23833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 23843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version 101 23853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 23863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 23873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 23883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 23893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 23903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 23913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 23923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 23933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case version_missing 23943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 23953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 23963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version 23973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 23983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 23993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 24003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 24013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 24023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 24033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 24043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 24053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case version_not_first_statement_1 24063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 24073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 24083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 24093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version 100 24103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 24113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 24123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 24133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 24143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 24153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 24163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 24173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case version_not_first_statement_2 24183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 24193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 24203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define FOO BAR 24213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version 100 24223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 24233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 24243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 24253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 24263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 24273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 24283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 24293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 24303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case version_invalid_token_1 24313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 24323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 24333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version 100.0 24343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 24353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 24363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 24373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 24383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 24393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 24403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 24413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 24423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case version_invalid_token_2 24433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 24443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 24453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version foobar 24463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 24473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 24483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 24493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 24503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 24513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 24523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 24533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 24543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_version 24553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 24563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 24573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version AAA 24583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 24593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 24603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 24613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 24623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 24633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 24643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 24653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 24663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case additional_tokens 24673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 24683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 24693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #version 100 foobar 24703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 24713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 24723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 24733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 24743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 24753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 24763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 24773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 24783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case error_with_no_tokens 24793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 24803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 24813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #error 24823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 24833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 24843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 24853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 24863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 24873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 24883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 24893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 24903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case error 24913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 24923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 24933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define AAA asdf 24943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #error 1 * AAA /* comment */ 24953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 24963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 24973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 24983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 24993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 25003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 25013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 25023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 25033c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # directive 25043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 25053c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup builtin "Built-in Symbol Tests" 25063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 25073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case line 25083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 25093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 25103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 25113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 25123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 25133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 25143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line 1 25153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(__LINE__); 25163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 25173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 25183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 25193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 25203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 25213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case line_and_file 25223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output vec4 out0 = vec4(234.0, 234.0, 10.0, 10.0); } 25233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 25243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 25253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 25263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 25273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 25283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line 234 10 25293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 25303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 25313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 25323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 25333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 25343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 25353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case line_expression 25363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 20.0; } 25373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 25383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 25393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 25403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 25413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 25423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line +20 25433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(__LINE__); 25443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 25453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 25463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 25473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 25483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 25493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case line_and_file_expression 25503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output vec4 out0 = vec4(243.0, 243.0, 10.0, 10.0); } 25513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 25523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 25533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 25543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 25553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 25563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line (233 +10) (+10) 25573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 25583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 25593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 25603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 25613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 25623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 25633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case line_defined_1 25643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 4.0; } 25653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 25663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 25673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 25683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 25693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 25703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define A 4 25713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line A 25723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = float(__LINE__); 25733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 25743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 25753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 25763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 25773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 25783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case line_defined_2 25793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output vec4 out0 = vec4(234.0, 234.0, 10.0, 10.0); } 25803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 25813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 25823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 25833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 25843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 25853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define A 10 25863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line 234 A 25873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 25883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 25893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 25903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 25913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 25923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 25933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case empty_line 25943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 25953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 25963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 25973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 25983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 25993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line 26003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 26013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 26023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 26033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 26043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 26053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_line_file_1 26063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 26073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 26083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 26093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 26103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 26113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line 22 1.234 26123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 26133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 26143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 26153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 26163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 26173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_line_file_3 26183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 26193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 26203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 26213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 26223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 26233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line 233 10 2 26243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 26253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 26263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 26273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 26283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 26293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_line_file_4 26303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 26313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 26323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 26333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 26343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 26353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #line foobar 26363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 26373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 26383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 26393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 26403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 26413c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # builtin 26423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 26433c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup pragmas "Pragma Tests" 26443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 26450b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry case pragma_vertex 26463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 26470b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry 26480b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry vertex "" 26490b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry #pragma 26500b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry #pragma STDGL invariant(all) 26510b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry #pragma debug(off) 26520b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry #pragma optimize(off) 26533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 26543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 26550b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry ${VERTEX_DECLARATIONS} 26560b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry varying float v_val; 26573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 26583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 26590b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry v_val = 1.0; 26600b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry ${VERTEX_OUTPUT} 26610b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry } 26620b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry "" 26630b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry fragment "" 26640b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry precision mediump float; 26650b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry ${FRAGMENT_DECLARATIONS} 26660b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry invariant varying float v_val; 26670b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry void main() 26680b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry { 26690b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry out0 = v_val; 26700b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry ${FRAGMENT_OUTPUT} 26710b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry } 26720b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry "" 26730b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry end 26740b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry 26750b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry case pragma_fragment 26760b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry values { output float out0 = 1.0; } 26770b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry 26780b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry vertex "" 26790b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry precision mediump float; 26800b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry ${VERTEX_DECLARATIONS} 26810b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry varying float v_val; 26820b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry void main() 26830b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry { 26840b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry v_val = 1.0; 26850b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry ${VERTEX_OUTPUT} 26860b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry } 26870b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry "" 26880b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry fragment "" 26890b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry #pragma 26900b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry #pragma STDGL invariant(all) 26910b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry #pragma debug(off) 26920b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry #pragma optimize(off) 26930b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry 26940b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry precision mediump float; 26950b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry ${FRAGMENT_DECLARATIONS} 26960b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry varying float v_val; 26970b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry void main() 26980b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry { 26990b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry out0 = v_val; 27000b7f209dcdf54a69339f470328703e4608b77b16Jarkko Pöyry ${FRAGMENT_OUTPUT} 27013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 27023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 27033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 27043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case pragma_macro_exp 27063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 27073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 27083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define off INVALID 27093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry /* pragma line not macro expanded */ 27103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #pragma debug(off) 27113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 27133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 27143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 27153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 27163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 27173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 27183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 27193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 27203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 27213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2722624f8ecf68812089c888227ff15bf2101211e588Jarkko Pöyry case pragma_unrecognized_debug 2723624f8ecf68812089c888227ff15bf2101211e588Jarkko Pöyry expect build_successful 27243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 27253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #pragma debug(1.23) 27263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2727624f8ecf68812089c888227ff15bf2101211e588Jarkko Pöyry // unrecognized preprocessor token 2728624f8ecf68812089c888227ff15bf2101211e588Jarkko Pöyry 27293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 27303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 27313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 27323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 27333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 27343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 27353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 27363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2737624f8ecf68812089c888227ff15bf2101211e588Jarkko Pöyry case pragma_unrecognized_token 2738624f8ecf68812089c888227ff15bf2101211e588Jarkko Pöyry expect build_successful 27393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 27403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #pragma ¤¤½ 27413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 2742624f8ecf68812089c888227ff15bf2101211e588Jarkko Pöyry // trailing bytes form a valid but unrecognized preprocessor token 2743624f8ecf68812089c888227ff15bf2101211e588Jarkko Pöyry 27443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 27453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 27463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 27473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 27483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 27493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 27503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 27513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27523c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # pragmas 27533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27543c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup extensions "Extension Tests" 27553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case basic 27573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 27583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 27593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all : warn 27603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 27623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 27633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 27643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 27653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 27663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 27673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 27683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 27693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 27703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case macro_exp 27723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 27733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 27743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define warn enable 27753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all : warn 27773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 27793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 27803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 27813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 27823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 27833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 27843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 27853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 27863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 27873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 27883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case missing_extension_name 27893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 27903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 27913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension 27923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 27933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 27943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 27953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 27963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 27973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 27983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 27993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 28003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_extension_name 28013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 28023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 28033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension 2 : all 28043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 28053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 28063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 28073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 28083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 28093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 28103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 28113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 28123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case missing_colon 28133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 28143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 28153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all 28163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 28173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 28183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 28193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 28203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 28213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 28223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 28233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 28243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case expected_colon 28253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 28263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 28273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all ; 28283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 28293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 28303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 28313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 28323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 28333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 28343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 28353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 28363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case missing_behavior 28373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 28383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 28393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all : 28403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 28413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 28423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 28433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 28443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 28453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 28463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 28473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 28483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_behavior_1 28493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 28503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 28513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all : WARN 28523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 28533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 28543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 28553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 28563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 28573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 28583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 28593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 28603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_behavior_2 28613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 28623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 28633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all : require 28643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 28653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 28663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 28673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 28683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 28693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 28703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 28713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 28723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_char_in_name 28733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 28743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 28753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all¤ : warn 28763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 28773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 28783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 28793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 28803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 28813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 28823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 28833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 28843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_char_in_behavior 28853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 28863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 28873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all : war¤n 28883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 28893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 28903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 28913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 28923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 28933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 28943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 28953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 28963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unterminated_comment 28973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 28983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 28993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all : warn /*asd 29003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 29013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 29023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 29033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 29043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 29053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 29063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 29073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 29083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case after_non_preprocessing_tokens 29093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 29103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 29113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all : warn 29123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 29133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 29143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 29153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 29163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 29173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #extension all : disable 29183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 29193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 29203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 29213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 29223c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # extensions 29233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 29243c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup expressions "Expression Tests" 29253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 29263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case shift_left 29273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 29283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 29293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 29303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 29313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 29323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 29333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 4 29343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 29353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL << 2) == 16 29363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 29373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 29383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 29393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 29403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 29413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 29423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 29433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case shift_right 29443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 29453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 29463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 29473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 29483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 29493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 29503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 5 29513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 29523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL >> 1) == 2 29533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 29543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 29553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 29563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 29573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 29583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 29593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 29603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case cmp_less_than 29613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 29623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 29633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 29643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 29653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 29663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 29673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 5 29683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 29693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL < 6) && (-VAL < -4) 29703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 29713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 29723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 29733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 29743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 29753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 29763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 29773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case less_or_equal 29783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 29793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 29803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 29813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 29823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 29833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 29843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 6 29853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 29863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL <= 6) && (-VAL <= -6) 29873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 29883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 29893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 29903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 29913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 29923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 29933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 29943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case or 29953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 29963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 29973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 29983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 29993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 30003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 30013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 6 30023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 30033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL | 5) == 7 30043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 30053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 30063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 30073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 30083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 30093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 30103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 30113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case and 30123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 30133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 30143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 30153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 30163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 30173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 30183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 6 30193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 30203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL & 5) == 4 30213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 30223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 30233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 30243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 30253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 30263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 30273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 30283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case xor 30293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 30303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 30313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 30323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 30333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 30343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 30353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 6 30363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 30373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL ^ 5) == 3 30383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 30393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 30403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 30413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 30423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 30433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 30443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 30453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case mod 30463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 30473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 30483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 30493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 30503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 30513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 30523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 12 30533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 30543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL % 5) == 2 30553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 30563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 30573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 30583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 30593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 30603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 30613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 30623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case parenthesis_value 30633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 30643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 30653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 30663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 30673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 30683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 30693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL (( (4 ) ) ) 30703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 30713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if VAL >= 4 30723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 30733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 30743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 30753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 30763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 30773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 30783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 30793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case parenthesis_tricky 30803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 30813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 30823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 30833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 30843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 30853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 30863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL (( (4 ) ) 30873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 30883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if VAL) >= 4 30893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 30903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 30913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 30923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 30933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 30943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 30953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 30963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case parenthesis_if_no 30973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 30983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 30993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 31003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 31013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 31023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 31033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 4 31043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 31053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if VAL >= 4 31063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 31073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 31083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 31093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 31103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 31113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 31123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 31133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case parenthesis_if 31143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 31153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 31163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 31173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 31183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 31193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 31203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 4 31213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 31223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL >= 4) 31233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 31243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 31253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 31263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 31273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 31283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 31293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 31303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case parenthesis_multi_if 31313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 31323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 31333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 31343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 31353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 31363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 31373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL (4) 31383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 31393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (((VAL)) >= (4)) 31403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 31413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 31423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 31433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 31443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 31453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 31463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 31473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case parenthesis_single_if 31483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 31493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 31503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 31513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 31523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 31533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 31543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 4 31553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 31563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL >= 4) 31573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 31583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 31593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 31603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 31613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 31623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 31633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 31643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case parenthesis_ifelse_true 31653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 31663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 31673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 31683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 31693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 31703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 31713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 4 31723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL >= 4) 31733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 31743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 31753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 31763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 31773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 31783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 31793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 31803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 31813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 31823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case parenthesis_ifelse_false 31833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 31843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 31853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 31863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 31873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 31883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 31893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 4 31903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (VAL > 4) 31913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 31923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 31933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 31943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 31953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 31963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 31973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 31983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 31993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 32003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case eval_basic_0 32013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 32023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 32033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 32043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 32053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 32063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 32073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if -4 + 5 == 1 32083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 32093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 32103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 32113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 32123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 32133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 32143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 32153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 32163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 32173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case eval_basic_1 32183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 32193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 32203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 32213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 32223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 32233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 32243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (2 * 2) - 3 >= 0 32253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 32263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 32273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 32283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 32293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 32303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 32313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 32323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 32333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 32343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case eval_simple_precedence_0 32353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 32363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 32373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 32383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 32393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 32403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 32413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 2 * 3 - 3 == 3 32423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 32433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 32443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 32453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 32463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 32473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 32483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 32493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 32503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 32513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case eval_simple_precedence_1 32523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 32533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 32543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 32553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 32563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 32573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 32583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 2 - 2 / 2 == 1 32593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 32603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 32613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 32623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 32633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 32643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 32653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 32663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 32673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 32683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case defined_1 32693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 32703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 32713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 32723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 32733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define X 0 32743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 32753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 32763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined(X) 32773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 32783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 32793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 32803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 32813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 32823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 32833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 32843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 32853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 32863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case defined_2 32873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 32883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 32893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 32903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 32913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define X 0 32923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define Y 1 32933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 32943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 32953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined(X) == Y 32963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 32973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 32983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 32993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 33003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 33013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 33023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 33033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 33043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 33053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case defined_3 33063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 33073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 33083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 33093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 33103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define X 0 33113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define Y 1 33123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 33133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 33143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined(X) && defined(Y) 33153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 33163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 33173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 33183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 33193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 33203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 33213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 33223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 33233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 33243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case defined_4 33253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 33263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 33273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 33283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 33293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define X 0 33303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define Y 1 33313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef X 33323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 33333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 33343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined(X) && defined(Y) 33353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 33363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 33373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 33383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 33393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 33403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 33413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 33423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 33433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 33443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case defined_5 33453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 33463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 33473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 33483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 33493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define X 0 33503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define Y 1 33513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef X 33523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 33533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 33543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined(X) || defined(Y) 33553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 33563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 33573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 33583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 33593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 33603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 33613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 33623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 33633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 33643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case defined_6 33653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 33663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 33673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 33683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 33693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define X 0 33703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define Y 1 33713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #undef Y 33723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 33733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 33743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if defined(X) && (defined(Y) || (X == 0)) 33753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 1.0; 33763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 33773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = 0.0; 33783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 33793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 33803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 33813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 33823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 33833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 33843c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # expressions 33853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 33863c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup invalid_expressions "Invalid Expression Tests" 33873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 33883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_unary_expr 33893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 33903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 33913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 33923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 33933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 33943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ! 33953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 33963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 33973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 33983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 33993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_binary_expr 34013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 34023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 34033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 34043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 34053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 34063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 3+4+ 34073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 34083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 34093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 34103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 34113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case missing_expr 34133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 34143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 34153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 34163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 34173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 34183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 34193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 34203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 34213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 34223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 34233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_expr_1 34253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 34263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 34273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 34283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 34293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 34303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 4 4 34313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 34323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 34333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 34343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 34353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_expr_2 34373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 34383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 34393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 34403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 34413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 34423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 4 * * 4 34433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 34443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 34453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 34463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 34473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case invalid_expr_3 34493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 34503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 34513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 34523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 34533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 34543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if (4)(4) 34553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 34563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 34573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 34583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 34593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unopened_parenthesis 34613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 34623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 34633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 34643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 34653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 34663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if 4) 34673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 34683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 34693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 34703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 34713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case unclosed_parenthesis 34733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry expect compile_fail 34743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 34753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 34763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 34773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 34783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ((4 + 7) 34793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${POSITION_FRAG_COLOR} = vec4(1.0); 34803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 34813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 34823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 34833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34843c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # invalid_expressions 34853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34863c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup operator_precedence "Operator precedence" 34873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case modulo_vs_not 34903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 34913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 34923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 34933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 % ! 0 ) == 0 34943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 34953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 34963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 34973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 34983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 34993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 35003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 35013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 35023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 35033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 35043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 35053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 35063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 35073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case div_vs_not 35093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 35103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 35113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 / ! 0 ) == 8 35133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 35143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 35153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 35163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 35173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 35183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 35193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 35203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 35213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 35223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 35233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 35243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 35253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 35263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case mul_vs_not 35283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 35293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 35303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 * ! 0 ) == 8 35323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 35333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 35343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 35353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 35363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 35373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 35383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 35393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 35403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 35413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 35423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 35433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 35443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 35453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case modulo_vs_bit_invert 35473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 35483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 35493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 % ~ 4 ) == 3 35513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 35523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 35533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 35543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 35553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 35563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 35573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 35583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 35593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 35603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 35613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 35623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 35633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 35643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case modulo_vs_minus 35663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 35673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 35683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 % - 2 ) == 0 35703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 35713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 35723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 35733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 35743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 35753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 35763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 35773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 35783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 35793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 35803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 35813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 35823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 35833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case modulo_vs_plus 35853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 35863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 35873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 35883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 % + 2 ) == 0 35893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 35903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 35913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 35923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 35933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 35943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 35953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 35963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 35973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 35983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 35993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 36003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 36013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 36023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case div_vs_bit_invert 36043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 36053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 36063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 / ~ 2 ) == -2 36083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 36093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 36103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 36113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 36123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 36133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 36143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 36153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 36163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 36173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 36183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 36193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 36203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 36213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case div_vs_minus 36233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 36243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 36253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 / - 2 ) == -4 36273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 36283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 36293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 36303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 36313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 36323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 36333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 36343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 36353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 36363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 36373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 36383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 36393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 36403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case div_vs_plus 36423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 36433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 36443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 / + 2 ) == 4 36463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 36473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 36483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 36493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 36503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 36513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 36523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 36533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 36543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 36553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 36563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 36573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 36583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 36593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case mul_vs_bit_invert 36613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 36623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 36633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 * ~ 2 ) == -24 36653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 36663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 36673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 36683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 36693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 36703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 36713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 36723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 36733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 36743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 36753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 36763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 36773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 36783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case mul_vs_minus 36803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 36813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 36823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 * - 2 ) == -16 36843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 36853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 36863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 36873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 36883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 36893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 36903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 36913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 36923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 36933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 36943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 36953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 36963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 36973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 36983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case mul_vs_plus 36993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 37003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 37013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 * + 2 ) == 16 37033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 37043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 37053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 37063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 37073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 37083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 37093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 37103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 37113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 37123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 37133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 37143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 37153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 37163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case sub_vs_modulo 37183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 37193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 37203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 - 3 % 2 ) == 7 37223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 37233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 37243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 37253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 37263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 37273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 37283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 37293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 37303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 37313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 37323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 37333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 37343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 37353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case sub_vs_div 37373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 37383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 37393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 - 3 / 2 ) == 7 37413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 37423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 37433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 37443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 37453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 37463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 37473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 37483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 37493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 37503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 37513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 37523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 37533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 37543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case sub_vs_mul 37563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 37573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 37583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 - 3 * 2 ) == 2 37603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 37613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 37623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 37633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 37643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 37653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 37663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 37673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 37683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 37693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 37703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 37713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 37723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 37733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case add_vs_modulo 37753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 37763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 37773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 + 3 % 2 ) == 9 37793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 37803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 37813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 37823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 37833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 37843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 37853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 37863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 37873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 37883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 37893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 37903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 37913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 37923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case add_vs_div 37943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 37953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 37963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 37973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 + 3 / 2 ) == 9 37983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 37993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 38003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 38013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 38023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 38033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 38043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 38053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 38063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 38073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 38083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 38093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 38103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 38113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case add_vs_mul 38133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 38143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 38153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 + 3 * 2 ) == 14 38173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 38183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 38193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 38203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 38213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 38223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 38233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 38243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 38253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 38263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 38273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 38283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 38293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 38303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case rshift_vs_sub 38323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 38333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 38343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 >> 3 - 2 ) == 4 38363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 38373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 38383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 38393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 38403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 38413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 38423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 38433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 38443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 38453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 38463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 38473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 38483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 38493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case rshift_vs_add 38513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 38523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 38533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 >> 3 + 2 ) == 0 38553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 38563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 38573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 38583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 38593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 38603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 38613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 38623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 38633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 38643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 38653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 38663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 38673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 38683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case lshift_vs_sub 38703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 38713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 38723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 << 3 - 2 ) == 16 38743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 38753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 38763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 38773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 38783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 38793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 38803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 38813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 38823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 38833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 38843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 38853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 38863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 38873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case lshift_vs_add 38893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 38903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 38913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 38923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 << 3 + 2 ) == 256 38933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 38943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 38953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 38963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 38973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 38983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 38993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 39003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 39013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 39023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 39033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 39043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 39053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 39063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case greater_or_equal_vs_rshift 39083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 39093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 39103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 >= 3 >> 2 ) == 1 39123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 39133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 39143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 39153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 39163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 39173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 39183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 39193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 39203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 39213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 39223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 39233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 39243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 39253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case greater_or_equal_vs_lshift 39273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 39283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 39293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 >= 3 << 2 ) == 0 39313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 39323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 39333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 39343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 39353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 39363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 39373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 39383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 39393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 39403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 39413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 39423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 39433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 39443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case less_or_equal_vs_rshift 39463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 39473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 39483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 <= 3 >> 2 ) == 0 39503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 39513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 39523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 39533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 39543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 39553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 39563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 39573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 39583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 39593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 39603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 39613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 39623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 39633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case less_or_equal_vs_lshift 39653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 39663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 39673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 <= 3 << 2 ) == 1 39693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 39703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 39713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 39723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 39733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 39743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 39753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 39763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 39773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 39783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 39793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 39803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 39813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 39823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case greater_vs_rshift 39843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 39853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 39863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 39873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 > 3 >> 2 ) == 1 39883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 39893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 39903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 39913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 39923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 39933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 39943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 39953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 39963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 39973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 39983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 39993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 40003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 40013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case greater_vs_lshift 40033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 40043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 40053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 > 3 << 2 ) == 0 40073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 40083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 40093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 40103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 40113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 40123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 40133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 40143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 40153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 40163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 40173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 40183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 40193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 40203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case less_vs_rshift 40223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 40233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 40243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 < 3 >> 2 ) == 0 40263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 40273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 40283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 40293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 40303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 40313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 40323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 40333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 40343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 40353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 40363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 40373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 40383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 40393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case less_vs_lshift 40413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 40423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 40433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 < 3 << 2 ) == 1 40453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 40463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 40473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 40483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 40493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 40503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 40513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 40523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 40533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 40543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 40553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 40563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 40573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 40583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case not_equal_vs_greater_or_equal 40603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 40613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 40623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 != 3 >= 2 ) == 1 40643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 40653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 40663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 40673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 40683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 40693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 40703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 40713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 40723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 40733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 40743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 40753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 40763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 40773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case not_equal_vs_less_or_equal 40793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 40803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 40813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 != 3 <= 2 ) == 1 40833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 40843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 40853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 40863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 40873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 40883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 40893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 40903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 40913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 40923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 40933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 40943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 40953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 40963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 40973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case not_equal_vs_greater 40983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 40993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 41003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 != 3 > 2 ) == 1 41023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 41033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 41043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 41053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 41063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 41073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 41083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 41093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 41103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 41113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 41123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 41133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 41143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 41153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case not_equal_vs_less 41173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 41183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 41193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 != 3 < 2 ) == 1 41213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 41223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 41233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 41243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 41253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 41263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 41273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 41283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 41293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 41303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 41313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 41323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 41333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 41343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case equal_vs_greater_or_equal 41363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 41373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 41383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 == 3 >= 2 ) == 0 41403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 41413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 41423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 41433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 41443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 41453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 41463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 41473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 41483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 41493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 41503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 41513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 41523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 41533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case equal_vs_less_or_equal 41553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 41563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 41573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 == 3 <= 2 ) == 0 41593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 41603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 41613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 41623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 41633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 41643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 41653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 41663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 41673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 41683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 41693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 41703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 41713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 41723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case equal_vs_greater 41743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 41753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 41763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 == 3 > 2 ) == 0 41783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 41793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 41803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 41813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 41823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 41833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 41843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 41853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 41863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 41873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 41883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 41893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 41903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 41913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case equal_vs_less 41933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 41943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 41953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 41963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 == 3 < 2 ) == 0 41973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 41983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 41993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 42003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 42013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 42023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 42033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 42043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 42053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 42063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 42073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 42083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 42093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 42103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case bitwise_and_vs_not_equal 42123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 42133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 42143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 & 3 != 2 ) == 0 42163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 42173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 42183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 42193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 42203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 42213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 42223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 42233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 42243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 42253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 42263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 42273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 42283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 42293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case bitwise_and_vs_equal 42313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 42323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 42333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 & 3 == 2 ) == 0 42353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 42363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 42373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 42383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 42393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 42403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 42413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 42423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 42433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 42443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 42453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 42463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 42473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 42483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case xor_vs_bitwise_and 42503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 42513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 42523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 ^ 3 & 2 ) == 10 42543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 42553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 42563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 42573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 42583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 42593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 42603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 42613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 42623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 42633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 42643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 42653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 42663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 42673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case bitwise_or_vs_xor 42693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 42703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 42713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 8 | 3 ^ 2 ) == 9 42733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 42743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 42753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 42763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 42773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 42783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 42793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 42803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 42813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 42823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 42833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 42843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 42853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 42863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case logical_and_vs_bitwise_or 42883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 42893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 42903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 42913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 0 && 3 | 2 ) 42923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 42933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 42943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 42953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 42963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 42973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 42983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 42993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 43003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 43013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 43023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 43033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 43043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 43053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 43063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case logical_and_vs_bitwise_and 43073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 43083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 43093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 43103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 0 && 4 & 2 ) 43113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 43123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 43133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 43143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 43153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 43163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 43173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 43183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 43193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 43203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 43213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 43223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 43233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 43243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 43253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry case logical_or_vs_logical_and 43263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry values { output float out0 = 1.0; } 43273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry both "" 43283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 43293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #if ( 0 || 4 && 0 ) 43303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 0.0 43313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #else 43323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #define VAL 1.0 43333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry #endif 43343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry precision mediump float; 43353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${DECLARATIONS} 43363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry void main() 43373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry { 43383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry out0 = VAL; 43393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry ${OUTPUT} 43403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry } 43413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry "" 43423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry end 43433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 43443c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # operator_precedence 4345