A round of increasing robustness against buffer overruns.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21917 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
7408a69952
commit
00f605b930
@ -1,4 +1,4 @@
|
|||||||
sample.frag
|
.rsample.frag
|
||||||
sample.vert
|
sample.vert
|
||||||
specExamples.frag
|
specExamples.frag
|
||||||
specExamples.vert
|
specExamples.vert
|
||||||
@ -36,3 +36,4 @@ errors.frag
|
|||||||
forwardRef.frag
|
forwardRef.frag
|
||||||
uint.frag
|
uint.frag
|
||||||
switch.frag
|
switch.frag
|
||||||
|
tokenLength.vert
|
||||||
|
36
Test/tokenLength.vert
Normal file
36
Test/tokenLength.vert
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#version 300 es
|
||||||
|
|
||||||
|
// 1023 characters
|
||||||
|
in float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789;
|
||||||
|
|
||||||
|
// 1024 characters (okay)
|
||||||
|
in float ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789;
|
||||||
|
|
||||||
|
int E1 = 5000000000; // ERROR
|
||||||
|
int E2 = 50000000000; // ERROR
|
||||||
|
int B = 4294967295; // okay
|
||||||
|
|
||||||
|
int OE = 0777777777777777777777; // ERROR
|
||||||
|
int HE = 0x1234567890ABCDEF0; // ERROR
|
||||||
|
|
||||||
|
// 1023 character fraction
|
||||||
|
float F = 1.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012;
|
||||||
|
|
||||||
|
// 1024 character value
|
||||||
|
float G = 1.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890;
|
||||||
|
|
||||||
|
// 1027 character fraction
|
||||||
|
float E3 = 1.01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = vec4(ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789,
|
||||||
|
B, F, G);
|
||||||
|
}
|
||||||
|
|
||||||
|
// super long
|
||||||
|
float BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789;
|
||||||
|
int superH = 0xBCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789;
|
||||||
|
int superO = 0777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777077777777777777777777707777777777777777777770777777777777777777777;
|
||||||
|
int superI = 429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295429496729542949672954294967295;
|
||||||
|
float superF = 1.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890121234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901212345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012;
|
@ -185,4 +185,6 @@ __inline TPersistString FormatSourceLoc(const TSourceLoc loc)
|
|||||||
typedef TMap<TString, TString> TPragmaTable;
|
typedef TMap<TString, TString> TPragmaTable;
|
||||||
typedef TMap<TString, TString>::tAllocator TPragmaTableAllocator;
|
typedef TMap<TString, TString>::tAllocator TPragmaTableAllocator;
|
||||||
|
|
||||||
|
const int GlslangMaxTokenLength = 1024;
|
||||||
|
|
||||||
#endif // _COMMON_INCLUDED_
|
#endif // _COMMON_INCLUDED_
|
||||||
|
@ -40,6 +40,8 @@
|
|||||||
#include "../Include/Common.h"
|
#include "../Include/Common.h"
|
||||||
#include "../Include/BaseTypes.h"
|
#include "../Include/BaseTypes.h"
|
||||||
|
|
||||||
|
const int GlslangMaxTypeLength = 200;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Details within a sampler type
|
// Details within a sampler type
|
||||||
//
|
//
|
||||||
@ -602,7 +604,7 @@ public:
|
|||||||
|
|
||||||
TString getCompleteString() const
|
TString getCompleteString() const
|
||||||
{
|
{
|
||||||
const int maxSize = 200;
|
const int maxSize = GlslangMaxTypeLength;
|
||||||
char buf[maxSize];
|
char buf[maxSize];
|
||||||
char *p = &buf[0];
|
char *p = &buf[0];
|
||||||
char *end = &buf[maxSize];
|
char *end = &buf[maxSize];
|
||||||
|
@ -205,7 +205,7 @@ void TParseContext::recover()
|
|||||||
void C_DECL TParseContext::error(TSourceLoc nLine, const char *szReason, const char *szToken,
|
void C_DECL TParseContext::error(TSourceLoc nLine, const char *szReason, const char *szToken,
|
||||||
const char *szExtraInfoFormat, ...)
|
const char *szExtraInfoFormat, ...)
|
||||||
{
|
{
|
||||||
const int maxSize = 400;
|
const int maxSize = GlslangMaxTokenLength + 200;
|
||||||
char szExtraInfo[maxSize];
|
char szExtraInfo[maxSize];
|
||||||
va_list marker;
|
va_list marker;
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ void TType::buildMangledName(TString& mangledName)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (arraySizes) {
|
if (arraySizes) {
|
||||||
const int maxSize = 10;
|
const int maxSize = 11;
|
||||||
char buf[maxSize];
|
char buf[maxSize];
|
||||||
snprintf(buf, maxSize, "%d", arraySizes->front());
|
snprintf(buf, maxSize, "%d", arraySizes->front());
|
||||||
mangledName += '[';
|
mangledName += '[';
|
||||||
|
@ -84,7 +84,7 @@ void OutputSymbol(TIntermSymbol* node, TIntermTraverser* it)
|
|||||||
|
|
||||||
OutputTreeText(oit->infoSink, node, oit->depth);
|
OutputTreeText(oit->infoSink, node, oit->depth);
|
||||||
|
|
||||||
const int maxSize = 100;
|
const int maxSize = GlslangMaxTypeLength + GlslangMaxTokenLength;
|
||||||
char buf[maxSize];
|
char buf[maxSize];
|
||||||
snprintf(buf, maxSize, "'%s' (%s)\n",
|
snprintf(buf, maxSize, "'%s' (%s)\n",
|
||||||
node->getSymbol().c_str(),
|
node->getSymbol().c_str(),
|
||||||
|
@ -81,7 +81,7 @@ bool ParseBinary(bool /* preVisit */, TIntermBinary* node, TIntermTraverser* it)
|
|||||||
TStorageQualifier qualifier = node->getType().getQualifier().storage;
|
TStorageQualifier qualifier = node->getType().getQualifier().storage;
|
||||||
|
|
||||||
if (qualifier != EvqConst) {
|
if (qualifier != EvqConst) {
|
||||||
const int maxSize = 200;
|
const int maxSize = GlslangMaxTypeLength + 50;
|
||||||
char buf[maxSize];
|
char buf[maxSize];
|
||||||
snprintf(buf, maxSize, "'constructor' : assigning non-constant to %s", oit->type.getCompleteString().c_str());
|
snprintf(buf, maxSize, "'constructor' : assigning non-constant to %s", oit->type.getCompleteString().c_str());
|
||||||
oit->infoSink.info.message(EPrefixError, buf, node->getLine());
|
oit->infoSink.info.message(EPrefixError, buf, node->getLine());
|
||||||
@ -99,7 +99,7 @@ bool ParseUnary(bool /* preVisit */, TIntermUnary* node, TIntermTraverser* it)
|
|||||||
{
|
{
|
||||||
TConstTraverser* oit = static_cast<TConstTraverser*>(it);
|
TConstTraverser* oit = static_cast<TConstTraverser*>(it);
|
||||||
|
|
||||||
const int maxSize = 200;
|
const int maxSize = GlslangMaxTypeLength + 50;
|
||||||
char buf[maxSize];
|
char buf[maxSize];
|
||||||
snprintf(buf, maxSize, "'constructor' : assigning non-constant to '%s'", oit->type.getCompleteString().c_str());
|
snprintf(buf, maxSize, "'constructor' : assigning non-constant to '%s'", oit->type.getCompleteString().c_str());
|
||||||
oit->infoSink.info.message(EPrefixError, buf, node->getLine());
|
oit->infoSink.info.message(EPrefixError, buf, node->getLine());
|
||||||
@ -113,7 +113,7 @@ bool ParseAggregate(bool /* preVisit */, TIntermAggregate* node, TIntermTraverse
|
|||||||
TConstTraverser* oit = static_cast<TConstTraverser*>(it);
|
TConstTraverser* oit = static_cast<TConstTraverser*>(it);
|
||||||
|
|
||||||
if (!node->isConstructor() && node->getOp() != EOpComma) {
|
if (!node->isConstructor() && node->getOp() != EOpComma) {
|
||||||
const int maxSize = 200;
|
const int maxSize = GlslangMaxTypeLength + 50;
|
||||||
char buf[maxSize];
|
char buf[maxSize];
|
||||||
snprintf(buf, maxSize, "'constructor' : assigning non-constant to '%s'", oit->type.getCompleteString().c_str());
|
snprintf(buf, maxSize, "'constructor' : assigning non-constant to '%s'", oit->type.getCompleteString().c_str());
|
||||||
oit->infoSink.info.message(EPrefixError, buf, node->getLine());
|
oit->infoSink.info.message(EPrefixError, buf, node->getLine());
|
||||||
|
@ -268,7 +268,7 @@ static int lFloatConst(char *str, int len, int ch, yystypepp * yylvalpp)
|
|||||||
|
|
||||||
if (ch == 'e' || ch == 'E') {
|
if (ch == 'e' || ch == 'E') {
|
||||||
if (len >= MAX_SYMBOL_NAME_LEN) {
|
if (len >= MAX_SYMBOL_NAME_LEN) {
|
||||||
ShPpErrorToInfoLog("floating-point literal too long");
|
ShPpErrorToInfoLog("floating-point literal too long");
|
||||||
len = 1,str_len=1;
|
len = 1,str_len=1;
|
||||||
} else {
|
} else {
|
||||||
ExpSign = 1;
|
ExpSign = 1;
|
||||||
@ -311,11 +311,11 @@ static int lFloatConst(char *str, int len, int ch, yystypepp * yylvalpp)
|
|||||||
cpp->currentInput->ungetch(cpp->currentInput, ch2, yylvalpp);
|
cpp->currentInput->ungetch(cpp->currentInput, ch2, yylvalpp);
|
||||||
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
||||||
} else {
|
} else {
|
||||||
if (len < MAX_SYMBOL_NAME_LEN-1) {
|
if (len < MAX_SYMBOL_NAME_LEN) {
|
||||||
str[len++] = ch;
|
str[len++] = ch;
|
||||||
str[len++] = ch2;
|
str[len++] = ch2;
|
||||||
} else {
|
} else {
|
||||||
ShPpErrorToInfoLog("floating-point literal too long");
|
ShPpErrorToInfoLog("floating-point literal too long");
|
||||||
len = 1,str_len=1;
|
len = 1,str_len=1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -348,7 +348,7 @@ static int byte_scan(InputSrc *in, yystypepp * yylvalpp)
|
|||||||
{
|
{
|
||||||
char symbol_name[MAX_SYMBOL_NAME_LEN + 1];
|
char symbol_name[MAX_SYMBOL_NAME_LEN + 1];
|
||||||
char string_val[MAX_STRING_LEN + 1];
|
char string_val[MAX_STRING_LEN + 1];
|
||||||
int AlreadyComplained;
|
int AlreadyComplained = 0;
|
||||||
int len, ch, ii;
|
int len, ch, ii;
|
||||||
unsigned ival = 0;
|
unsigned ival = 0;
|
||||||
|
|
||||||
@ -387,14 +387,15 @@ static int byte_scan(InputSrc *in, yystypepp * yylvalpp)
|
|||||||
len++;
|
len++;
|
||||||
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
||||||
} else {
|
} else {
|
||||||
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
ShPpErrorToInfoLog("name too long");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} while ((ch >= 'a' && ch <= 'z') ||
|
} while ((ch >= 'a' && ch <= 'z') ||
|
||||||
(ch >= 'A' && ch <= 'Z') ||
|
(ch >= 'A' && ch <= 'Z') ||
|
||||||
(ch >= '0' && ch <= '9') ||
|
(ch >= '0' && ch <= '9') ||
|
||||||
ch == '_');
|
ch == '_');
|
||||||
if (len >= MAX_SYMBOL_NAME_LEN)
|
if (len > MAX_SYMBOL_NAME_LEN)
|
||||||
len = MAX_SYMBOL_NAME_LEN - 1;
|
len = MAX_SYMBOL_NAME_LEN;
|
||||||
symbol_name[len] = '\0';
|
symbol_name[len] = '\0';
|
||||||
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
||||||
yylvalpp->sc_ident = LookUpAddString(atable, symbol_name);
|
yylvalpp->sc_ident = LookUpAddString(atable, symbol_name);
|
||||||
@ -410,23 +411,26 @@ static int byte_scan(InputSrc *in, yystypepp * yylvalpp)
|
|||||||
(ch >= 'A' && ch <= 'F') ||
|
(ch >= 'A' && ch <= 'F') ||
|
||||||
(ch >= 'a' && ch <= 'f'))
|
(ch >= 'a' && ch <= 'f'))
|
||||||
{
|
{
|
||||||
AlreadyComplained = 0;
|
|
||||||
ival = 0;
|
ival = 0;
|
||||||
do {
|
do {
|
||||||
|
if (len >= MAX_SYMBOL_NAME_LEN)
|
||||||
|
break;
|
||||||
yylvalpp->symbol_name[len++] = ch;
|
yylvalpp->symbol_name[len++] = ch;
|
||||||
if (ival <= 0x0fffffff) {
|
if (ival <= 0x0fffffff) {
|
||||||
if (ch >= '0' && ch <= '9') {
|
if (ch >= '0' && ch <= '9') {
|
||||||
ii = ch - '0';
|
ii = ch - '0';
|
||||||
} else if (ch >= 'A' && ch <= 'F') {
|
} else if (ch >= 'A' && ch <= 'F') {
|
||||||
ii = ch - 'A' + 10;
|
ii = ch - 'A' + 10;
|
||||||
} else {
|
} else if (ch >= 'a' && ch <= 'f') {
|
||||||
ii = ch - 'a' + 10;
|
ii = ch - 'a' + 10;
|
||||||
}
|
} else
|
||||||
|
ShPpErrorToInfoLog("bad digit in hexidecimal literal");
|
||||||
ival = (ival << 4) | ii;
|
ival = (ival << 4) | ii;
|
||||||
} else {
|
} else {
|
||||||
if (!AlreadyComplained)
|
if (! AlreadyComplained) {
|
||||||
ShPpErrorToInfoLog("hexidecimal literal too long");
|
ShPpErrorToInfoLog("hexidecimal literal too long");
|
||||||
AlreadyComplained = 1;
|
AlreadyComplained = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
||||||
} while ((ch >= '0' && ch <= '9') ||
|
} while ((ch >= '0' && ch <= '9') ||
|
||||||
@ -441,19 +445,22 @@ static int byte_scan(InputSrc *in, yystypepp * yylvalpp)
|
|||||||
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
||||||
yylvalpp->symbol_name[len] = '\0';
|
yylvalpp->symbol_name[len] = '\0';
|
||||||
yylvalpp->sc_int = (int)ival;
|
yylvalpp->sc_int = (int)ival;
|
||||||
|
|
||||||
return CPP_INTCONSTANT;
|
return CPP_INTCONSTANT;
|
||||||
} else if (ch >= '0' && ch <= '7') { // octal integer constants
|
} else if (ch >= '0' && ch <= '7') { // octal integer constants
|
||||||
AlreadyComplained = 0;
|
|
||||||
ival = 0;
|
ival = 0;
|
||||||
do {
|
do {
|
||||||
|
if (len >= MAX_SYMBOL_NAME_LEN)
|
||||||
|
break;
|
||||||
yylvalpp->symbol_name[len++] = ch;
|
yylvalpp->symbol_name[len++] = ch;
|
||||||
if (ival <= 0x1fffffff) {
|
if (ival <= 0x1fffffff) {
|
||||||
ii = ch - '0';
|
ii = ch - '0';
|
||||||
ival = (ival << 3) | ii;
|
ival = (ival << 3) | ii;
|
||||||
} else {
|
} else {
|
||||||
if (!AlreadyComplained)
|
if (!AlreadyComplained) {
|
||||||
ShPpErrorToInfoLog("octal literal too long");
|
ShPpErrorToInfoLog("octal literal too long");
|
||||||
AlreadyComplained = 1;
|
AlreadyComplained = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
||||||
} while (ch >= '0' && ch <= '7');
|
} while (ch >= '0' && ch <= '7');
|
||||||
@ -462,6 +469,7 @@ static int byte_scan(InputSrc *in, yystypepp * yylvalpp)
|
|||||||
yylvalpp->symbol_name[len] = '\0';
|
yylvalpp->symbol_name[len] = '\0';
|
||||||
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
||||||
yylvalpp->sc_int = (int)ival;
|
yylvalpp->sc_int = (int)ival;
|
||||||
|
|
||||||
return CPP_INTCONSTANT;
|
return CPP_INTCONSTANT;
|
||||||
} else {
|
} else {
|
||||||
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
cpp->currentInput->ungetch(cpp->currentInput, ch, yylvalpp);
|
||||||
@ -477,6 +485,9 @@ static int byte_scan(InputSrc *in, yystypepp * yylvalpp)
|
|||||||
len++;
|
len++;
|
||||||
}
|
}
|
||||||
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
||||||
|
} else {
|
||||||
|
ShPpErrorToInfoLog("token too long");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} while (ch >= '0' && ch <= '9');
|
} while (ch >= '0' && ch <= '9');
|
||||||
if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'h' || ch == 'x'|| ch == 'E' || ch == 'F' || ch == 'l' || ch == 'L') {
|
if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'h' || ch == 'x'|| ch == 'E' || ch == 'F' || ch == 'l' || ch == 'L') {
|
||||||
@ -491,13 +502,13 @@ static int byte_scan(InputSrc *in, yystypepp * yylvalpp)
|
|||||||
|
|
||||||
yylvalpp->symbol_name[len] = '\0';
|
yylvalpp->symbol_name[len] = '\0';
|
||||||
ival = 0;
|
ival = 0;
|
||||||
AlreadyComplained = 0;
|
|
||||||
for (ii = 0; ii < numericLen; ii++) {
|
for (ii = 0; ii < numericLen; ii++) {
|
||||||
ch = yylvalpp->symbol_name[ii] - '0';
|
ch = yylvalpp->symbol_name[ii] - '0';
|
||||||
if ((ival > 429496729) || (ival == 429496729 && ch >= 6)) {
|
if ((ival > 429496729) || (ival == 429496729 && ch >= 6)) {
|
||||||
if (! AlreadyComplained)
|
if (! AlreadyComplained) {
|
||||||
ShPpErrorToInfoLog("integral literal too long");
|
ShPpErrorToInfoLog("integral literal too long");
|
||||||
AlreadyComplained = 1;
|
AlreadyComplained = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ival = ival * 10 + ch;
|
ival = ival * 10 + ch;
|
||||||
}
|
}
|
||||||
@ -711,7 +722,8 @@ static int byte_scan(InputSrc *in, yystypepp * yylvalpp)
|
|||||||
string_val[len] = ch;
|
string_val[len] = ch;
|
||||||
len++;
|
len++;
|
||||||
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
ch = cpp->currentInput->getch(cpp->currentInput, yylvalpp);
|
||||||
}
|
} else
|
||||||
|
break;
|
||||||
};
|
};
|
||||||
string_val[len] = '\0';
|
string_val[len] = '\0';
|
||||||
if (ch == '"') {
|
if (ch == '"') {
|
||||||
|
@ -81,8 +81,8 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
#if !defined(__SCANNER_H)
|
#if !defined(__SCANNER_H)
|
||||||
#define __SCANNER_H 1
|
#define __SCANNER_H 1
|
||||||
|
|
||||||
#define MAX_SYMBOL_NAME_LEN 128
|
#define MAX_SYMBOL_NAME_LEN 1025
|
||||||
#define MAX_STRING_LEN 512
|
#define MAX_STRING_LEN 1025
|
||||||
|
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
|
|
||||||
|
@ -316,6 +316,9 @@ int ReadToken(TokenStream *pTok, yystypepp * yylvalpp)
|
|||||||
symbol_name[len] = ch;
|
symbol_name[len] = ch;
|
||||||
len++;
|
len++;
|
||||||
ch = lReadByte(pTok);
|
ch = lReadByte(pTok);
|
||||||
|
} else {
|
||||||
|
ShPpErrorToInfoLog("token too long");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
symbol_name[len] = '\0';
|
symbol_name[len] = '\0';
|
||||||
@ -325,9 +328,13 @@ int ReadToken(TokenStream *pTok, yystypepp * yylvalpp)
|
|||||||
break;
|
break;
|
||||||
case CPP_STRCONSTANT:
|
case CPP_STRCONSTANT:
|
||||||
len = 0;
|
len = 0;
|
||||||
while ((ch = lReadByte(pTok)) != 0)
|
while ((ch = lReadByte(pTok)) != 0) {
|
||||||
if (len < MAX_STRING_LEN)
|
if (len < MAX_STRING_LEN)
|
||||||
string_val[len++] = ch;
|
string_val[len++] = ch;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
string_val[len] = 0;
|
string_val[len] = 0;
|
||||||
yylvalpp->sc_ident = LookUpAddString(atable, string_val);
|
yylvalpp->sc_ident = LookUpAddString(atable, string_val);
|
||||||
break;
|
break;
|
||||||
@ -340,6 +347,9 @@ int ReadToken(TokenStream *pTok, yystypepp * yylvalpp)
|
|||||||
symbol_name[len] = ch;
|
symbol_name[len] = ch;
|
||||||
len++;
|
len++;
|
||||||
ch = lReadByte(pTok);
|
ch = lReadByte(pTok);
|
||||||
|
} else {
|
||||||
|
ShPpErrorToInfoLog("token too long");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
symbol_name[len] = '\0';
|
symbol_name[len] = '\0';
|
||||||
@ -356,6 +366,9 @@ int ReadToken(TokenStream *pTok, yystypepp * yylvalpp)
|
|||||||
symbol_name[len] = ch;
|
symbol_name[len] = ch;
|
||||||
len++;
|
len++;
|
||||||
ch = lReadByte(pTok);
|
ch = lReadByte(pTok);
|
||||||
|
} else {
|
||||||
|
ShPpErrorToInfoLog("token too long");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
symbol_name[len] = '\0';
|
symbol_name[len] = '\0';
|
||||||
@ -443,7 +456,7 @@ void UngetToken(int token, yystypepp * yylvalpp) {
|
|||||||
|
|
||||||
void DumpTokenStream(FILE *fp, TokenStream *s, yystypepp * yylvalpp) {
|
void DumpTokenStream(FILE *fp, TokenStream *s, yystypepp * yylvalpp) {
|
||||||
int token;
|
int token;
|
||||||
const int maxSize = 100;
|
const int maxSize = MAX_SYMBOL_NAME_LEN + 5;
|
||||||
char str[100];
|
char str[100];
|
||||||
|
|
||||||
if (fp == 0) fp = stdout;
|
if (fp == 0) fp = stdout;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user