Merge pull request #2976 from jeremy-lunarg/hayes-fix-2975
[platform/upstream/glslang.git] / Test / numeral.frag
1 #version 400\r
2 \r
3 void main()\r
4 {\r
5     int o00 = 00;\r
6     int o000 = 000;\r
7     int o0000 = 0000;\r
8     int o5 = 05;\r
9     int o05 = 005;\r
10     int o006 = 0006;\r
11     int o7 = 07;\r
12     int o58 = 072;\r
13     int omax = 037777777777;\r
14     int o8 = 08;                      // ERROR\r
15     int o08 = 008;                    // ERROR\r
16     int o009 = 0009;                  // ERROR\r
17     int obig = 07324327323472347234;  // ERROR\r
18     int omax1 = 040000000000;         // ERROR\r
19 \r
20     uint uo5 = 05u;\r
21     uint uo6 = 06u;\r
22     uint uo7 = 07u;\r
23     uint uo8 = 08u;                   // ERROR\r
24     uint uo9 = 09u;                   // ERROR\r
25 \r
26     int h0 = 0x0;\r
27     int h00 = 0x00;\r
28     int h000 = 0x000;\r
29     int h1 = 0x1;\r
30     int h2 = 0x00000002;\r
31     int h300 = 0x000300;\r
32     int hABCDEF = 0xAbCdEF;\r
33     int hFFFFFFFF = 0xFFFFFFFF;\r
34     int h12345678 = 0xBC614E;\r
35     int hToBeOrNotToBe = 0x2b | ~0x2B;\r
36 \r
37     uint uh0 = 0x0u;\r
38     uint uhg = (0xcu);\r
39     uint uh000 = 0x000u;\r
40     uint uh1 = 0x1u;\r
41     uint uh2 = 0x00000002u;\r
42     uint uh300 = 0x000300u;\r
43     uint uhABCDEF = 0xAbCdEFu;\r
44     uint uhFFFFFFFF = 0xFFFFFFFFu;\r
45     uint uh12345678 = 0xBC614Eu;\r
46     uint uhToBeOrNotToBe = 0x2bu | ~0x2BU;\r
47 \r
48     //int he1 = 0xG;                     // ERROR\r
49     int he2 = 0x;                      // ERROR\r
50     int hbig = 0xFFFFFFFF1;            // ERROR\r
51 \r
52     float f1 = 1.0;\r
53     float f2 = 2.;\r
54     float f3 = 3e0;\r
55     float f4 = 40e-1;\r
56     float f5 = 05.;\r
57     float f6 = 006.;\r
58     float f7 = .7e1;\r
59     float f8 = 08e0;\r
60     float f9 = .9e+1;\r
61     float f10 = 10.0;\r
62     float f11 = .011e+3;\r
63     float f12 = .0012e4;\r
64     float f543 = 000000543.;\r
65     float f6789 = 00006789.;\r
66     float f88 = 0000088.;\r
67 \r
68     float g1 = 5.3876e4;\r
69     float g2 = 4000000000e-11;\r
70     float g3 = 1e+5;\r
71     float g4 = 7.321E-3;\r
72     float g5 = 3.2E+4;\r
73     float g6 = 0.5e-5;\r
74     float g7 = 0.45;\r
75     float g8 = 6.e10;\r
76 \r
77     double gf1 = 1.0lf;\r
78     double gf2 = 2.Lf;\r
79     double gf3 = .3e1lF;\r
80     double gf4 = .4e1LF;\r
81     float gf5 = 5.f;\r
82     float gf6 = 6.F;\r
83 \r
84     //float e1 = 1..;        // ERROR\r
85     //float e2 = 2.l;        // ERROR\r
86     //float e3 = ..3;        // ERROR\r
87     //float e4 = 4ee1;       // ERROR\r
88     float e5 = 5f;         // ERROR\r
89 }\r
90 \r
91 layout (location = 2) out vec4 c2;\r
92 layout (location = 3u) out vec4 c3;\r
93 layout (location = 04) out vec4 c4;\r
94 layout (location = 005u) out vec4 c5;\r
95 layout (location = 0x6) out vec4 c6;\r
96 layout (location = 0x7u) out vec4 c7;\r
97 \r
98 uint g1 = 4294967296u; // ERROR, too big\r
99 uint g2 = 4294967295u;\r
100 uint g3 = 4294967294u;\r
101 int g4 = 4294967296;   // ERROR, too big\r
102 int g5 = 4294967295;\r
103 int g6 = 4294967294;\r
104 float inf1 = -1.#INF;\r
105 float inf2 =  1.#INF;\r
106 float inf3 = +1.#INF;\r