diff --git a/3rdparty/glslang/SPIRV/GlslangToSpv.cpp b/3rdparty/glslang/SPIRV/GlslangToSpv.cpp index 36b27075a..1661d5b1e 100755 --- a/3rdparty/glslang/SPIRV/GlslangToSpv.cpp +++ b/3rdparty/glslang/SPIRV/GlslangToSpv.cpp @@ -1745,6 +1745,20 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt atomic = true; break; + case glslang::EOpAtomicCounterAdd: + case glslang::EOpAtomicCounterSubtract: + case glslang::EOpAtomicCounterMin: + case glslang::EOpAtomicCounterMax: + case glslang::EOpAtomicCounterAnd: + case glslang::EOpAtomicCounterOr: + case glslang::EOpAtomicCounterXor: + case glslang::EOpAtomicCounterExchange: + case glslang::EOpAtomicCounterCompSwap: + builder.addExtension("SPV_KHR_shader_atomic_counter_ops"); + builder.addCapability(spv::CapabilityAtomicStorageOps); + atomic = true; + break; + default: break; } @@ -1815,6 +1829,15 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpAtomicXor: case glslang::EOpAtomicExchange: case glslang::EOpAtomicCompSwap: + case glslang::EOpAtomicCounterAdd: + case glslang::EOpAtomicCounterSubtract: + case glslang::EOpAtomicCounterMin: + case glslang::EOpAtomicCounterMax: + case glslang::EOpAtomicCounterAnd: + case glslang::EOpAtomicCounterOr: + case glslang::EOpAtomicCounterXor: + case glslang::EOpAtomicCounterExchange: + case glslang::EOpAtomicCounterCompSwap: if (arg == 0) lvalue = true; break; @@ -4619,34 +4642,45 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv switch (op) { case glslang::EOpAtomicAdd: case glslang::EOpImageAtomicAdd: + case glslang::EOpAtomicCounterAdd: opCode = spv::OpAtomicIAdd; break; + case glslang::EOpAtomicCounterSubtract: + opCode = spv::OpAtomicISub; + break; case glslang::EOpAtomicMin: case glslang::EOpImageAtomicMin: + case glslang::EOpAtomicCounterMin: opCode = typeProxy == glslang::EbtUint ? spv::OpAtomicUMin : spv::OpAtomicSMin; break; case glslang::EOpAtomicMax: case glslang::EOpImageAtomicMax: + case glslang::EOpAtomicCounterMax: opCode = typeProxy == glslang::EbtUint ? spv::OpAtomicUMax : spv::OpAtomicSMax; break; case glslang::EOpAtomicAnd: case glslang::EOpImageAtomicAnd: + case glslang::EOpAtomicCounterAnd: opCode = spv::OpAtomicAnd; break; case glslang::EOpAtomicOr: case glslang::EOpImageAtomicOr: + case glslang::EOpAtomicCounterOr: opCode = spv::OpAtomicOr; break; case glslang::EOpAtomicXor: case glslang::EOpImageAtomicXor: + case glslang::EOpAtomicCounterXor: opCode = spv::OpAtomicXor; break; case glslang::EOpAtomicExchange: case glslang::EOpImageAtomicExchange: + case glslang::EOpAtomicCounterExchange: opCode = spv::OpAtomicExchange; break; case glslang::EOpAtomicCompSwap: case glslang::EOpImageAtomicCompSwap: + case glslang::EOpAtomicCounterCompSwap: opCode = spv::OpAtomicCompareExchange; break; case glslang::EOpAtomicCounterIncrement: diff --git a/3rdparty/glslang/SPIRV/doc.cpp b/3rdparty/glslang/SPIRV/doc.cpp index fb0cc36ea..b47fa4889 100755 --- a/3rdparty/glslang/SPIRV/doc.cpp +++ b/3rdparty/glslang/SPIRV/doc.cpp @@ -846,6 +846,8 @@ const char* CapabilityString(int info) case 5009: return "ImageGatherBiasLodAMD"; #endif + case 4445: return "AtomicStorageOps"; + case 4447: return "SampleMaskPostDepthCoverage"; #ifdef NV_EXTENSIONS case 5251: return "GeometryShaderPassthroughNV"; diff --git a/3rdparty/glslang/Test/450.vert b/3rdparty/glslang/Test/450.vert index 0834d165e..51e9b1004 100644 --- a/3rdparty/glslang/Test/450.vert +++ b/3rdparty/glslang/Test/450.vert @@ -22,7 +22,27 @@ out SA outSA; struct SS { float f; S s; }; out SS outSS; +layout(binding = 0) uniform atomic_uint aui; +uint ui; + void foo() { SS::f; + atomicCounterAdd(aui, ui); // ERROR, need 4.6 + atomicCounterSubtract(aui, ui); // ERROR, need 4.6 + atomicCounterMin(aui, ui); // ERROR, need 4.6 + atomicCounterMax(aui, ui); // ERROR, need 4.6 + atomicCounterAnd(aui, ui); // ERROR, need 4.6 + atomicCounterOr(aui, ui); // ERROR, need 4.6 + atomicCounterXor(aui, ui); // ERROR, need 4.6 + atomicCounterExchange(aui, ui); // ERROR, need 4.6 + atomicCounterCompSwap(aui, ui, ui); // ERROR, need 4.6 + + int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; // ERROR, need 4.6 + + bool b1; + anyInvocation(b1); // ERROR, need 4.6 + allInvocations(b1); // ERROR, need 4.6 + allInvocationsEqual(b1); // ERROR, need 4.6 } +; // ERROR: no extraneous semicolons diff --git a/3rdparty/glslang/Test/460.frag b/3rdparty/glslang/Test/460.frag new file mode 100644 index 000000000..43a7c3b38 --- /dev/null +++ b/3rdparty/glslang/Test/460.frag @@ -0,0 +1,17 @@ +#version 460 core + +struct S { + float f; + vec4 v; +}; + +in S s; + +void main() +{ + interpolateAtCentroid(s.v); + bool b1; + b1 = anyInvocation(b1); + b1 = allInvocations(b1); + b1 = allInvocationsEqual(b1); +} diff --git a/3rdparty/glslang/Test/460.vert b/3rdparty/glslang/Test/460.vert new file mode 100644 index 000000000..fd87d8b11 --- /dev/null +++ b/3rdparty/glslang/Test/460.vert @@ -0,0 +1,15 @@ +#version 460 core + +int i; +; // extraneous semicolon okay +float f;;; + +void main() +{ + bool b1; + b1 = anyInvocation(b1); + b1 = allInvocations(b1); + b1 = allInvocationsEqual(b1); +} +; +; diff --git a/3rdparty/glslang/Test/baseResults/450.vert.out b/3rdparty/glslang/Test/baseResults/450.vert.out index d2a05a9d3..64143de56 100644 --- a/3rdparty/glslang/Test/baseResults/450.vert.out +++ b/3rdparty/glslang/Test/baseResults/450.vert.out @@ -1,8 +1,25 @@ 450.vert ERROR: 0:12: 'out' : cannot be bool ERROR: 0:13: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo -ERROR: 0:27: '::' : not supported -ERROR: 3 compilation errors. No code generated. +ERROR: 0:30: '::' : not supported +ERROR: 0:31: 'atomicCounterAdd' : no matching overloaded function found +ERROR: 0:32: 'atomicCounterSubtract' : no matching overloaded function found +ERROR: 0:33: 'atomicCounterMin' : no matching overloaded function found +ERROR: 0:34: 'atomicCounterMax' : no matching overloaded function found +ERROR: 0:35: 'atomicCounterAnd' : no matching overloaded function found +ERROR: 0:36: 'atomicCounterOr' : no matching overloaded function found +ERROR: 0:37: 'atomicCounterXor' : no matching overloaded function found +ERROR: 0:38: 'atomicCounterExchange' : no matching overloaded function found +ERROR: 0:39: 'atomicCounterCompSwap' : no matching overloaded function found +ERROR: 0:41: 'gl_BaseVertex' : undeclared identifier +ERROR: 0:41: 'gl_BaseInstance' : undeclared identifier +ERROR: 0:41: 'gl_DrawID' : undeclared identifier +ERROR: 0:41: '=' : cannot convert from ' temp float' to ' temp int' +ERROR: 0:44: 'anyInvocation' : no matching overloaded function found +ERROR: 0:45: 'allInvocations' : no matching overloaded function found +ERROR: 0:46: 'allInvocationsEqual' : no matching overloaded function found +ERROR: 0:48: 'extraneous semicolon' : not supported for this version or the enabled extensions +ERROR: 20 compilation errors. No code generated. Shader version: 450 @@ -20,8 +37,33 @@ ERROR: node is still EOpNull! 0:9 2 (const int) 0:9 Constant: 0:9 4.500000 -0:25 Function Definition: foo( ( global void) -0:25 Function Parameters: +0:28 Function Definition: foo( ( global void) +0:28 Function Parameters: +0:? Sequence +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:33 Constant: +0:33 0.000000 +0:34 Constant: +0:34 0.000000 +0:35 Constant: +0:35 0.000000 +0:36 Constant: +0:36 0.000000 +0:37 Constant: +0:37 0.000000 +0:38 Constant: +0:38 0.000000 +0:39 Constant: +0:39 0.000000 +0:44 Constant: +0:44 0.000000 +0:45 Constant: +0:45 0.000000 +0:46 Constant: +0:46 0.000000 0:? Linker Objects 0:? 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) 0:? 'outb' ( smooth out bool) @@ -33,6 +75,8 @@ ERROR: node is still EOpNull! 0:? 'outsa' ( smooth out 4-element array of structure{ global float f}) 0:? 'outSA' ( smooth out structure{ global 4-element array of float f}) 0:? 'outSS' ( smooth out structure{ global float f, global structure{ global float f} s}) +0:? 'aui' (layout( binding=0 offset=0) uniform atomic_uint) +0:? 'ui' ( global uint) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) @@ -66,6 +110,8 @@ ERROR: node is still EOpNull! 0:? 'outsa' ( smooth out 4-element array of structure{ global float f}) 0:? 'outSA' ( smooth out structure{ global 4-element array of float f}) 0:? 'outSS' ( smooth out structure{ global float f, global structure{ global float f} s}) +0:? 'aui' (layout( binding=0 offset=0) uniform atomic_uint) +0:? 'ui' ( global uint) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) diff --git a/3rdparty/glslang/Test/baseResults/460.frag.out b/3rdparty/glslang/Test/baseResults/460.frag.out new file mode 100755 index 000000000..883d949b2 --- /dev/null +++ b/3rdparty/glslang/Test/baseResults/460.frag.out @@ -0,0 +1,55 @@ +460.frag +Shader version: 460 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 interpolateAtCentroid ( global 4-component vector of float) +0:12 v: direct index for structure ( global 4-component vector of float) +0:12 's' ( smooth in structure{ global float f, global 4-component vector of float v}) +0:12 Constant: +0:12 1 (const int) +0:14 move second child to first child ( temp bool) +0:14 'b1' ( temp bool) +0:14 anyInvocation ( global bool) +0:14 'b1' ( temp bool) +0:15 move second child to first child ( temp bool) +0:15 'b1' ( temp bool) +0:15 allInvocations ( global bool) +0:15 'b1' ( temp bool) +0:16 move second child to first child ( temp bool) +0:16 'b1' ( temp bool) +0:16 allInvocationsEqual ( global bool) +0:16 'b1' ( temp bool) +0:? Linker Objects +0:? 's' ( smooth in structure{ global float f, global 4-component vector of float v}) + + +Linked fragment stage: + + +Shader version: 460 +0:? Sequence +0:10 Function Definition: main( ( global void) +0:10 Function Parameters: +0:12 Sequence +0:12 interpolateAtCentroid ( global 4-component vector of float) +0:12 v: direct index for structure ( global 4-component vector of float) +0:12 's' ( smooth in structure{ global float f, global 4-component vector of float v}) +0:12 Constant: +0:12 1 (const int) +0:14 move second child to first child ( temp bool) +0:14 'b1' ( temp bool) +0:14 anyInvocation ( global bool) +0:14 'b1' ( temp bool) +0:15 move second child to first child ( temp bool) +0:15 'b1' ( temp bool) +0:15 allInvocations ( global bool) +0:15 'b1' ( temp bool) +0:16 move second child to first child ( temp bool) +0:16 'b1' ( temp bool) +0:16 allInvocationsEqual ( global bool) +0:16 'b1' ( temp bool) +0:? Linker Objects +0:? 's' ( smooth in structure{ global float f, global 4-component vector of float v}) + diff --git a/3rdparty/glslang/Test/baseResults/460.vert.out b/3rdparty/glslang/Test/baseResults/460.vert.out new file mode 100755 index 000000000..8fa659b30 --- /dev/null +++ b/3rdparty/glslang/Test/baseResults/460.vert.out @@ -0,0 +1,51 @@ +460.vert +Shader version: 460 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp bool) +0:10 'b1' ( temp bool) +0:10 anyInvocation ( global bool) +0:10 'b1' ( temp bool) +0:11 move second child to first child ( temp bool) +0:11 'b1' ( temp bool) +0:11 allInvocations ( global bool) +0:11 'b1' ( temp bool) +0:12 move second child to first child ( temp bool) +0:12 'b1' ( temp bool) +0:12 allInvocationsEqual ( global bool) +0:12 'b1' ( temp bool) +0:? Linker Objects +0:? 'i' ( global int) +0:? 'f' ( global float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 460 +0:? Sequence +0:7 Function Definition: main( ( global void) +0:7 Function Parameters: +0:? Sequence +0:10 move second child to first child ( temp bool) +0:10 'b1' ( temp bool) +0:10 anyInvocation ( global bool) +0:10 'b1' ( temp bool) +0:11 move second child to first child ( temp bool) +0:11 'b1' ( temp bool) +0:11 allInvocations ( global bool) +0:11 'b1' ( temp bool) +0:12 move second child to first child ( temp bool) +0:12 'b1' ( temp bool) +0:12 allInvocationsEqual ( global bool) +0:12 'b1' ( temp bool) +0:? Linker Objects +0:? 'i' ( global int) +0:? 'f' ( global float) +0:? 'gl_VertexID' ( gl_VertexId int VertexId) +0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) + diff --git a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out index acb1100fe..916f8328f 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out @@ -128,7 +128,6 @@ Shader version: 500 0:11 Constant: 0:11 3 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? 'Position' (layout( location=0) in 4-component vector of float) 0:? '@entryPointOutput_ClipRect' ( out 4-element array of float ClipDistance) @@ -265,19 +264,18 @@ Shader version: 500 0:11 Constant: 0:11 3 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? 'Position' (layout( location=0) in 4-component vector of float) 0:? '@entryPointOutput_ClipRect' ( out 4-element array of float ClipDistance) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 75 +// Id's are bound by 72 Capability Shader Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 43 50 56 74 + EntryPoint Vertex 4 "main" 43 50 56 Source HLSL 500 Name 4 "main" Name 8 "VS_INPUT" @@ -293,12 +291,9 @@ Shader version: 500 Name 46 "flattenTemp" Name 50 "@entryPointOutput_Position" Name 56 "@entryPointOutput_ClipRect" - Name 72 "VS_OUTPUT" - Name 74 "@entryPointOutput" Decorate 43(Position) Location 0 Decorate 50(@entryPointOutput_Position) BuiltIn Position Decorate 56(@entryPointOutput_ClipRect) BuiltIn ClipDistance - Decorate 74(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -335,9 +330,6 @@ Shader version: 500 59: TypePointer Output 6(float) 64: 16(int) Constant 2 68: 16(int) Constant 3 - 72(VS_OUTPUT): TypeStruct - 73: TypePointer Output 72(VS_OUTPUT) -74(@entryPointOutput): 73(ptr) Variable Output 4(main): 2 Function None 3 5: Label 41(v): 40(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out index 643a67848..3fd39028d 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out @@ -152,7 +152,6 @@ Shader version: 500 0:11 Constant: 0:11 1 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? 'Position' (layout( location=0) in 4-component vector of float) 0:? '@entryPointOutput_ClipRect' ( out 4-element array of float ClipDistance) @@ -313,19 +312,18 @@ Shader version: 500 0:11 Constant: 0:11 1 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? 'Position' (layout( location=0) in 4-component vector of float) 0:? '@entryPointOutput_ClipRect' ( out 4-element array of float ClipDistance) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 76 +// Id's are bound by 73 Capability Shader Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 44 51 57 75 + EntryPoint Vertex 4 "main" 44 51 57 Source HLSL 500 Name 4 "main" Name 8 "VS_INPUT" @@ -341,12 +339,9 @@ Shader version: 500 Name 47 "flattenTemp" Name 51 "@entryPointOutput_Position" Name 57 "@entryPointOutput_ClipRect" - Name 73 "VS_OUTPUT" - Name 75 "@entryPointOutput" Decorate 44(Position) Location 0 Decorate 51(@entryPointOutput_Position) BuiltIn Position Decorate 57(@entryPointOutput_ClipRect) BuiltIn ClipDistance - Decorate 75(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -384,9 +379,6 @@ Shader version: 500 60: TypePointer Output 6(float) 65: 20(int) Constant 2 69: 20(int) Constant 3 - 73(VS_OUTPUT): TypeStruct - 74: TypePointer Output 73(VS_OUTPUT) -75(@entryPointOutput): 74(ptr) Variable Output 4(main): 2 Function None 3 5: Label 42(v): 41(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out index efce79620..9d7375e0a 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out @@ -208,7 +208,6 @@ Shader version: 500 0:8 Constant: 0:8 3 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance) @@ -424,18 +423,17 @@ Shader version: 500 0:8 Constant: 0:8 3 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 89 +// Id's are bound by 86 Capability Shader Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 49 55 88 + EntryPoint Vertex 4 "main" 49 55 Source HLSL 500 Name 4 "main" Name 8 "VS_OUTPUT" @@ -447,11 +445,8 @@ Shader version: 500 Name 46 "flattenTemp" Name 49 "@entryPointOutput_Position" Name 55 "@entryPointOutput_clip1" - Name 86 "VS_OUTPUT" - Name 88 "@entryPointOutput" Decorate 49(@entryPointOutput_Position) BuiltIn Position Decorate 55(@entryPointOutput_clip1) BuiltIn ClipDistance - Decorate 88(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -491,9 +486,6 @@ Shader version: 500 74: 14(int) Constant 5 78: 14(int) Constant 6 82: 14(int) Constant 7 - 86(VS_OUTPUT): TypeStruct - 87: TypePointer Output 86(VS_OUTPUT) -88(@entryPointOutput): 87(ptr) Variable Output 4(main): 2 Function None 3 5: Label 46(flattenTemp): 12(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out index 324320be6..01de52a73 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out @@ -186,7 +186,6 @@ Shader version: 500 0:8 Constant: 0:8 3 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance) @@ -380,18 +379,17 @@ Shader version: 500 0:8 Constant: 0:8 3 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? '@entryPointOutput_clip1' ( out 8-element array of float ClipDistance) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 84 +// Id's are bound by 81 Capability Shader Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 48 54 83 + EntryPoint Vertex 4 "main" 48 54 Source HLSL 500 Name 4 "main" Name 9 "VS_OUTPUT" @@ -403,11 +401,8 @@ Shader version: 500 Name 45 "flattenTemp" Name 48 "@entryPointOutput_Position" Name 54 "@entryPointOutput_clip1" - Name 81 "VS_OUTPUT" - Name 83 "@entryPointOutput" Decorate 48(@entryPointOutput_Position) BuiltIn Position Decorate 54(@entryPointOutput_clip1) BuiltIn ClipDistance - Decorate 83(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -446,9 +441,6 @@ Shader version: 500 69: 15(int) Constant 5 73: 15(int) Constant 6 77: 15(int) Constant 7 - 81(VS_OUTPUT): TypeStruct - 82: TypePointer Output 81(VS_OUTPUT) -83(@entryPointOutput): 82(ptr) Variable Output 4(main): 2 Function None 3 5: Label 45(flattenTemp): 13(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out index 94750b13b..20abcb4cb 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out @@ -114,7 +114,6 @@ Shader version: 500 0:8 Constant: 0:8 2 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance) @@ -236,18 +235,17 @@ Shader version: 500 0:8 Constant: 0:8 2 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? '@entryPointOutput_clip1' ( out 4-element array of float ClipDistance) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 65 +// Id's are bound by 62 Capability Shader Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 41 47 64 + EntryPoint Vertex 4 "main" 41 47 Source HLSL 500 Name 4 "main" Name 9 "VS_OUTPUT" @@ -259,11 +257,8 @@ Shader version: 500 Name 38 "flattenTemp" Name 41 "@entryPointOutput_Position" Name 47 "@entryPointOutput_clip1" - Name 62 "VS_OUTPUT" - Name 64 "@entryPointOutput" Decorate 41(@entryPointOutput_Position) BuiltIn Position Decorate 47(@entryPointOutput_clip1) BuiltIn ClipDistance - Decorate 64(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -295,9 +290,6 @@ Shader version: 500 47(@entryPointOutput_clip1): 46(ptr) Variable Output 50: TypePointer Output 6(float) 58: 15(int) Constant 3 - 62(VS_OUTPUT): TypeStruct - 63: TypePointer Output 62(VS_OUTPUT) -64(@entryPointOutput): 63(ptr) Variable Output 4(main): 2 Function None 3 5: Label 38(flattenTemp): 13(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out index a3502b774..1ab0d0125 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out @@ -91,7 +91,6 @@ Shader version: 500 0:7 3 (const int) 0:? 'clip1' ( temp float) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? 'clip0' ( out 4-element array of float ClipDistance) @@ -190,18 +189,17 @@ Shader version: 500 0:7 3 (const int) 0:? 'clip1' ( temp float) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? 'clip0' ( out 4-element array of float ClipDistance) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 70 +// Id's are bound by 67 Capability Shader Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 39 51 69 + EntryPoint Vertex 4 "main" 39 51 Source HLSL 500 Name 4 "main" Name 11 "VS_OUTPUT" @@ -216,11 +214,8 @@ Shader version: 500 Name 42 "param" Name 43 "param" Name 51 "clip0" - Name 67 "VS_OUTPUT" - Name 69 "@entryPointOutput" Decorate 39(@entryPointOutput_Position) BuiltIn Position Decorate 51(clip0) BuiltIn ClipDistance - Decorate 69(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -253,9 +248,6 @@ Shader version: 500 56: 19(int) Constant 1 60: 19(int) Constant 2 64: 19(int) Constant 3 - 67(VS_OUTPUT): TypeStruct - 68: TypePointer Output 67(VS_OUTPUT) -69(@entryPointOutput): 68(ptr) Variable Output 4(main): 2 Function None 3 5: Label 40(clip0): 8(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out b/3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out index e1a414d80..17094459c 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out @@ -115,7 +115,6 @@ triangle order = none 0:? '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data' (layout( location=2) patch in structure{}) 0:? 'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) @@ -239,18 +238,17 @@ triangle order = none 0:? '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data' (layout( location=2) patch in structure{}) 0:? 'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 91 +// Id's are bound by 88 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 51 55 61 76 81 90 + EntryPoint TessellationEvaluation 4 "main" 51 55 61 76 81 ExecutionMode 4 Triangles Source HLSL 500 Name 4 "main" @@ -278,8 +276,6 @@ triangle order = none Name 81 "@entryPointOutput" Name 83 "param" Name 85 "param" - Name 88 "pcf_in_t" - Name 90 "pcf_data" Decorate 51(i) Location 0 Decorate 55(tesscoord) Patch Decorate 55(tesscoord) BuiltIn TessCoord @@ -288,8 +284,6 @@ triangle order = none Decorate 76(pcf_data_flInsideTessFactor) Patch Decorate 76(pcf_data_flInsideTessFactor) BuiltIn TessLevelInner Decorate 81(@entryPointOutput) Location 0 - Decorate 90(pcf_data) Patch - Decorate 90(pcf_data) Location 2 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -330,9 +324,6 @@ triangle order = none 76(pcf_data_flInsideTessFactor): 75(ptr) Variable Input 80: TypePointer Output 17(gs_in_t) 81(@entryPointOutput): 80(ptr) Variable Output - 88(pcf_in_t): TypeStruct - 89: TypePointer Input 88(pcf_in_t) - 90(pcf_data): 89(ptr) Variable Input 4(main): 2 Function None 3 5: Label 49(i): 48(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out b/3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out index d473b9629..07282aaea 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out @@ -112,7 +112,6 @@ triangle order = none 0:? '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data' (layout( location=2) patch in structure{}) 0:? 'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) @@ -233,18 +232,17 @@ triangle order = none 0:? '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) -0:? 'pcf_data' (layout( location=2) patch in structure{}) 0:? 'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 96 +// Id's are bound by 93 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationEvaluation 4 "main" 54 58 67 81 86 95 + EntryPoint TessellationEvaluation 4 "main" 54 58 67 81 86 ExecutionMode 4 Isolines Source HLSL 500 Name 4 "main" @@ -272,8 +270,6 @@ triangle order = none Name 86 "@entryPointOutput" Name 88 "param" Name 90 "param" - Name 93 "pcf_in_t" - Name 95 "pcf_data" Decorate 54(i) Location 0 Decorate 58(tesscoord) Patch Decorate 58(tesscoord) BuiltIn TessCoord @@ -282,8 +278,6 @@ triangle order = none Decorate 81(pcf_data_flInsideTessFactor) Patch Decorate 81(pcf_data_flInsideTessFactor) BuiltIn TessLevelInner Decorate 86(@entryPointOutput) Location 0 - Decorate 95(pcf_data) Patch - Decorate 95(pcf_data) Location 2 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -326,9 +320,6 @@ triangle order = none 81(pcf_data_flInsideTessFactor): 80(ptr) Variable Input 85: TypePointer Output 19(gs_in_t) 86(@entryPointOutput): 85(ptr) Variable Output - 93(pcf_in_t): TypeStruct - 94: TypePointer Input 93(pcf_in_t) - 95(pcf_data): 94(ptr) Variable Input 4(main): 2 Function None 3 5: Label 52(i): 51(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out b/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out index 7d113936c..bdcdb1f4c 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out @@ -13,14 +13,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 move second child to first child ( temp structure{}) 0:? 'i' ( temp structure{}) -0:? 'i' (layout( location=0) in structure{}) +0:? 'i' ( in structure{}) 0:10 Sequence 0:10 move second child to first child ( temp structure{}) 0:? '@entryPointOutput' ( out structure{}) 0:10 Function Call: @main(struct-ps_in1; ( temp structure{}) 0:? 'i' ( temp structure{}) 0:? Linker Objects -0:? 'i' (layout( location=0) in structure{}) Linked fragment stage: @@ -40,14 +39,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 move second child to first child ( temp structure{}) 0:? 'i' ( temp structure{}) -0:? 'i' (layout( location=0) in structure{}) +0:? 'i' ( in structure{}) 0:10 Sequence 0:10 move second child to first child ( temp structure{}) 0:? '@entryPointOutput' ( out structure{}) 0:10 Function Call: @main(struct-ps_in1; ( temp structure{}) 0:? 'i' ( temp structure{}) 0:? Linker Objects -0:? 'i' (layout( location=0) in structure{}) // Module Version 10000 // Generated by (magic number): 80001 @@ -69,7 +67,6 @@ gl_FragCoord origin is upper left Name 20 "i" Name 23 "@entryPointOutput" Name 24 "param" - Decorate 20(i) Location 0 2: TypeVoid 3: TypeFunction 2 6(ps_in): TypeStruct diff --git a/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out index 64446bd11..b1ea61eb0 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out @@ -15,11 +15,10 @@ Shader version: 500 0:? 'i' ( temp structure{}) 0:? 'i' ( in structure{}) 0:10 move second child to first child ( temp structure{}) -0:? '@entryPointOutput' (layout( location=0) out structure{}) +0:? '@entryPointOutput' ( out structure{}) 0:10 Function Call: @main(struct-vs_in1; ( temp structure{}) 0:? 'i' ( temp structure{}) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) Linked vertex stage: @@ -41,11 +40,10 @@ Shader version: 500 0:? 'i' ( temp structure{}) 0:? 'i' ( in structure{}) 0:10 move second child to first child ( temp structure{}) -0:? '@entryPointOutput' (layout( location=0) out structure{}) +0:? '@entryPointOutput' ( out structure{}) 0:10 Function Call: @main(struct-vs_in1; ( temp structure{}) 0:? 'i' ( temp structure{}) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) // Module Version 10000 // Generated by (magic number): 80001 @@ -66,7 +64,6 @@ Shader version: 500 Name 20 "i" Name 23 "@entryPointOutput" Name 24 "param" - Decorate 23(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6(vs_in): TypeStruct diff --git a/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 46fb13caf..f894cf93d 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -105,7 +105,6 @@ Shader version: 500 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) -0:? '@entryPointOutput' (layout( location=0) out structure{}) Linked vertex stage: @@ -217,17 +216,16 @@ Shader version: 500 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) -0:? '@entryPointOutput' (layout( location=0) out structure{}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 129 +// Id's are bound by 126 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 103 128 + EntryPoint Vertex 4 "main" 103 Source HLSL 500 Name 4 "main" Name 8 "VS_OUTPUT" @@ -256,8 +254,6 @@ Shader version: 500 Name 119 "g_tTex3df4" Name 122 "g_tTex3di4" Name 125 "g_tTex3du4" - Name 126 "VS_OUTPUT" - Name 128 "@entryPointOutput" Decorate 16(g_tTex2df4) DescriptorSet 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 @@ -277,7 +273,6 @@ Shader version: 500 Decorate 119(g_tTex3df4) DescriptorSet 0 Decorate 122(g_tTex3di4) DescriptorSet 0 Decorate 125(g_tTex3du4) DescriptorSet 0 - Decorate 128(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -361,9 +356,6 @@ Shader version: 500 123: TypeImage 45(int) 3D sampled format:Unknown 124: TypePointer UniformConstant 123 125(g_tTex3du4): 124(ptr) Variable UniformConstant - 126(VS_OUTPUT): TypeStruct - 127: TypePointer Output 126(VS_OUTPUT) -128(@entryPointOutput): 127(ptr) Variable Output 4(main): 2 Function None 3 5: Label 104:8(VS_OUTPUT) FunctionCall 10(@main() diff --git a/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out index cb1eae60c..bd1e169f1 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -53,7 +53,6 @@ Shader version: 500 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) -0:? '@entryPointOutput' (layout( location=0) out structure{}) Linked vertex stage: @@ -113,18 +112,17 @@ Shader version: 500 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) -0:? '@entryPointOutput' (layout( location=0) out structure{}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 51 +// Id's are bound by 48 Capability Shader Capability Sampled1D Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 42 50 + EntryPoint Vertex 4 "main" 42 Source HLSL 500 Name 4 "main" Name 8 "VS_OUTPUT" @@ -138,14 +136,11 @@ Shader version: 500 Name 33 "vsout" Name 42 "@entryPointOutput_Pos" Name 47 "g_sSamp" - Name 48 "VS_OUTPUT" - Name 50 "@entryPointOutput" Decorate 17(g_tTex1df4) DescriptorSet 0 Decorate 17(g_tTex1df4) Binding 0 Decorate 42(@entryPointOutput_Pos) BuiltIn Position Decorate 47(g_sSamp) DescriptorSet 0 Decorate 47(g_sSamp) Binding 0 - Decorate 50(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -169,9 +164,6 @@ Shader version: 500 45: TypeSampler 46: TypePointer UniformConstant 45 47(g_sSamp): 46(ptr) Variable UniformConstant - 48(VS_OUTPUT): TypeStruct - 49: TypePointer Output 48(VS_OUTPUT) -50(@entryPointOutput): 49(ptr) Variable Output 4(main): 2 Function None 3 5: Label 43:8(VS_OUTPUT) FunctionCall 10(@main() diff --git a/3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out b/3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out index 3e1ad58b4..6965ae645 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out @@ -107,7 +107,6 @@ vertex spacing = equal_spacing 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'm_cpid' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) @@ -222,17 +221,16 @@ vertex spacing = equal_spacing 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'm_cpid' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 93 +// Id's are bound by 90 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 40 44 48 66 72 92 + EntryPoint TessellationControl 4 "main" 40 44 48 66 72 ExecutionMode 4 OutputVertices 4 ExecutionMode 4 Isolines ExecutionMode 4 SpacingEqual @@ -262,16 +260,12 @@ vertex spacing = equal_spacing Name 67 "param" Name 72 "@patchConstantOutput_edges" Name 82 "output" - Name 90 "HS_CONSTANT_OUT" - Name 92 "@patchConstantOutput" Decorate 40(ip) Location 0 Decorate 44(m_cpid) BuiltIn InvocationId Decorate 48(@entryPointOutput) Location 0 Decorate 66(pid) BuiltIn PrimitiveId Decorate 72(@patchConstantOutput_edges) Patch Decorate 72(@patchConstantOutput_edges) BuiltIn TessLevelOuter - Decorate 92(@patchConstantOutput) Patch - Decorate 92(@patchConstantOutput) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -313,9 +307,6 @@ vertex spacing = equal_spacing 78: 29(int) Constant 1 83: 6(float) Constant 1073741824 85: 6(float) Constant 1090519040 -90(HS_CONSTANT_OUT): TypeStruct - 91: TypePointer Output 90(HS_CONSTANT_OUT) -92(@patchConstantOutput): 91(ptr) Variable Output 4(main): 2 Function None 3 5: Label 38(ip): 12(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out b/3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out index d32da52ce..899d93ae3 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out @@ -105,7 +105,6 @@ vertex spacing = equal_spacing 0:? 'InvocationId' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) @@ -218,17 +217,16 @@ vertex spacing = equal_spacing 0:? 'InvocationId' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 95 +// Id's are bound by 92 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 42 46 48 64 66 74 94 + EntryPoint TessellationControl 4 "main" 42 46 48 64 66 74 ExecutionMode 4 OutputVertices 4 ExecutionMode 4 Isolines ExecutionMode 4 SpacingEqual @@ -258,8 +256,6 @@ vertex spacing = equal_spacing Name 69 "param" Name 74 "@patchConstantOutput_edges" Name 84 "output" - Name 92 "HS_CONSTANT_OUT" - Name 94 "@patchConstantOutput" Decorate 42(ip) Location 0 Decorate 46(@entryPointOutput) Location 0 Decorate 48(InvocationId) BuiltIn InvocationId @@ -267,8 +263,6 @@ vertex spacing = equal_spacing Decorate 66(pos) BuiltIn Position Decorate 74(@patchConstantOutput_edges) Patch Decorate 74(@patchConstantOutput_edges) BuiltIn TessLevelOuter - Decorate 94(@patchConstantOutput) Patch - Decorate 94(@patchConstantOutput) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -314,9 +308,6 @@ vertex spacing = equal_spacing 80: 31(int) Constant 1 85: 6(float) Constant 1073741824 87: 6(float) Constant 1090519040 -92(HS_CONSTANT_OUT): TypeStruct - 93: TypePointer Output 92(HS_CONSTANT_OUT) -94(@patchConstantOutput): 93(ptr) Variable Output 4(main): 2 Function None 3 5: Label 40(ip): 12(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.hull.3.tesc.out b/3rdparty/glslang/Test/baseResults/hlsl.hull.3.tesc.out index c8b7a73a0..c0f12d4fb 100755 --- a/3rdparty/glslang/Test/baseResults/hlsl.hull.3.tesc.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.hull.3.tesc.out @@ -105,7 +105,6 @@ vertex spacing = equal_spacing 0:? 'InvocationId' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) @@ -218,17 +217,16 @@ vertex spacing = equal_spacing 0:? 'InvocationId' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_edges' ( patch out 4-element array of float TessLevelOuter) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 95 +// Id's are bound by 92 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 42 46 48 64 66 74 94 + EntryPoint TessellationControl 4 "main" 42 46 48 64 66 74 ExecutionMode 4 OutputVertices 4 ExecutionMode 4 Triangles ExecutionMode 4 SpacingEqual @@ -259,8 +257,6 @@ vertex spacing = equal_spacing Name 69 "param" Name 74 "@patchConstantOutput_edges" Name 84 "output" - Name 92 "HS_CONSTANT_OUT" - Name 94 "@patchConstantOutput" Decorate 42(ip) Location 0 Decorate 46(@entryPointOutput) Location 0 Decorate 48(InvocationId) BuiltIn InvocationId @@ -268,8 +264,6 @@ vertex spacing = equal_spacing Decorate 66(pos) BuiltIn Position Decorate 74(@patchConstantOutput_edges) Patch Decorate 74(@patchConstantOutput_edges) BuiltIn TessLevelOuter - Decorate 94(@patchConstantOutput) Patch - Decorate 94(@patchConstantOutput) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -315,9 +309,6 @@ vertex spacing = equal_spacing 80: 31(int) Constant 1 85: 6(float) Constant 1073741824 87: 6(float) Constant 1090519040 -92(HS_CONSTANT_OUT): TypeStruct - 93: TypePointer Output 92(HS_CONSTANT_OUT) -94(@patchConstantOutput): 93(ptr) Variable Output 4(main): 2 Function None 3 5: Label 40(ip): 12(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out b/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out index 3d2ff3db6..08329bcc2 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out @@ -192,7 +192,6 @@ triangle order = cw 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner) @@ -393,18 +392,17 @@ triangle order = cw 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 127 +// Id's are bound by 124 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 41 45 48 94 108 126 + EntryPoint TessellationControl 4 "main" 41 45 48 94 108 ExecutionMode 4 OutputVertices 3 ExecutionMode 4 Triangles ExecutionMode 4 SpacingFractionalOdd @@ -445,8 +443,6 @@ triangle order = cw Name 94 "@patchConstantOutput_tfactor" Name 108 "@patchConstantOutput_flInFactor" Name 112 "o" - Name 124 "hs_pcf_t" - Name 126 "@patchConstantOutput" Decorate 41(i) Location 0 Decorate 45(cpid) BuiltIn InvocationId Decorate 48(@entryPointOutput) Location 0 @@ -454,8 +450,6 @@ triangle order = cw Decorate 94(@patchConstantOutput_tfactor) BuiltIn TessLevelOuter Decorate 108(@patchConstantOutput_flInFactor) Patch Decorate 108(@patchConstantOutput_flInFactor) BuiltIn TessLevelInner - Decorate 126(@patchConstantOutput) Patch - Decorate 126(@patchConstantOutput) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -501,9 +495,6 @@ triangle order = cw 107: TypePointer Output 106 108(@patchConstantOutput_flInFactor): 107(ptr) Variable Output 119: 6(float) Constant 1082130432 - 124(hs_pcf_t): TypeStruct - 125: TypePointer Output 124(hs_pcf_t) -126(@patchConstantOutput): 125(ptr) Variable Output 4(main): 2 Function None 3 5: Label 39(i): 12(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out b/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out index 29ab61dd8..b95d65f3e 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out @@ -201,7 +201,6 @@ triangle order = cw 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner) @@ -411,18 +410,17 @@ triangle order = cw 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) -0:? '@patchConstantOutput' (layout( location=1) patch out structure{}) 0:? '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 129 +// Id's are bound by 126 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 42 46 49 96 110 128 + EntryPoint TessellationControl 4 "main" 42 46 49 96 110 ExecutionMode 4 OutputVertices 3 ExecutionMode 4 Triangles ExecutionMode 4 SpacingFractionalOdd @@ -464,8 +462,6 @@ triangle order = cw Name 96 "@patchConstantOutput_tfactor" Name 110 "@patchConstantOutput_flInFactor" Name 114 "o" - Name 126 "hs_pcf_t" - Name 128 "@patchConstantOutput" Decorate 42(i) Location 0 Decorate 46(cpid) BuiltIn InvocationId Decorate 49(@entryPointOutput) Location 0 @@ -473,8 +469,6 @@ triangle order = cw Decorate 96(@patchConstantOutput_tfactor) BuiltIn TessLevelOuter Decorate 110(@patchConstantOutput_flInFactor) Patch Decorate 110(@patchConstantOutput_flInFactor) BuiltIn TessLevelInner - Decorate 128(@patchConstantOutput) Patch - Decorate 128(@patchConstantOutput) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -520,9 +514,6 @@ triangle order = cw 109: TypePointer Output 108 110(@patchConstantOutput_flInFactor): 109(ptr) Variable Output 121: 6(float) Constant 1082130432 - 126(hs_pcf_t): TypeStruct - 127: TypePointer Output 126(hs_pcf_t) -128(@patchConstantOutput): 127(ptr) Variable Output 4(main): 2 Function None 3 5: Label 40(i): 12(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out index c3b7dc218..99d0652b4 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -221,7 +221,6 @@ Shader version: 500 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) -0:? '@entryPointOutput' (layout( location=0) out structure{}) Linked vertex stage: @@ -449,18 +448,17 @@ Shader version: 500 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) -0:? '@entryPointOutput' (layout( location=0) out structure{}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 174 +// Id's are bound by 171 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 129 173 + EntryPoint Vertex 4 "main" 129 Source HLSL 500 Name 4 "main" Name 8 "VS_OUTPUT" @@ -500,8 +498,6 @@ Shader version: 500 Name 164 "g_tTexcdf4a" Name 167 "g_tTexcdi4a" Name 170 "g_tTexcdu4a" - Name 171 "VS_OUTPUT" - Name 173 "@entryPointOutput" Decorate 14(g_tTex1df4) DescriptorSet 0 Decorate 14(g_tTex1df4) Binding 0 MemberDecorate 20($Global) 0 Offset 0 @@ -537,7 +533,6 @@ Shader version: 500 Decorate 164(g_tTexcdf4a) DescriptorSet 0 Decorate 167(g_tTexcdi4a) DescriptorSet 0 Decorate 170(g_tTexcdu4a) DescriptorSet 0 - Decorate 173(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -636,9 +631,6 @@ Shader version: 500 168: TypeImage 24(int) Cube array sampled format:Unknown 169: TypePointer UniformConstant 168 170(g_tTexcdu4a): 169(ptr) Variable UniformConstant - 171(VS_OUTPUT): TypeStruct - 172: TypePointer Output 171(VS_OUTPUT) -173(@entryPointOutput): 172(ptr) Variable Output 4(main): 2 Function None 3 5: Label 130:8(VS_OUTPUT) FunctionCall 10(@main() diff --git a/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index a93cbdffd..4d8a3ca7f 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -242,7 +242,6 @@ Shader version: 500 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) -0:? '@entryPointOutput' (layout( location=0) out structure{}) Linked vertex stage: @@ -491,17 +490,16 @@ Shader version: 500 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) -0:? '@entryPointOutput' (layout( location=0) out structure{}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 169 +// Id's are bound by 166 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 162 168 + EntryPoint Vertex 4 "main" 162 Source HLSL 500 Name 4 "main" Name 8 "VS_OUTPUT" @@ -535,8 +533,6 @@ Shader version: 500 Name 153 "vsout" Name 162 "@entryPointOutput_Pos" Name 165 "g_tTex1df4a" - Name 166 "VS_OUTPUT" - Name 168 "@entryPointOutput" Decorate 16(g_tTex1df4) DescriptorSet 0 Decorate 16(g_tTex1df4) Binding 0 Decorate 20(g_sSamp) DescriptorSet 0 @@ -555,7 +551,6 @@ Shader version: 500 Decorate 162(@entryPointOutput_Pos) BuiltIn Position Decorate 165(g_tTex1df4a) DescriptorSet 0 Decorate 165(g_tTex1df4a) Binding 1 - Decorate 168(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -649,9 +644,6 @@ Shader version: 500 161: TypePointer Output 7(fvec4) 162(@entryPointOutput_Pos): 161(ptr) Variable Output 165(g_tTex1df4a): 15(ptr) Variable UniformConstant - 166(VS_OUTPUT): TypeStruct - 167: TypePointer Output 166(VS_OUTPUT) -168(@entryPointOutput): 167(ptr) Variable Output 4(main): 2 Function None 3 5: Label 163:8(VS_OUTPUT) FunctionCall 10(@main() diff --git a/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 5b2f95029..0e430c0f8 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -188,7 +188,6 @@ Shader version: 500 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) -0:? '@entryPointOutput' (layout( location=0) out structure{}) Linked vertex stage: @@ -383,17 +382,16 @@ Shader version: 500 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) -0:? '@entryPointOutput' (layout( location=0) out structure{}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 165 +// Id's are bound by 162 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 158 164 + EntryPoint Vertex 4 "main" 158 Source HLSL 500 Name 4 "main" Name 8 "VS_OUTPUT" @@ -427,8 +425,6 @@ Shader version: 500 Name 149 "vsout" Name 158 "@entryPointOutput_Pos" Name 161 "g_tTex1df4a" - Name 162 "VS_OUTPUT" - Name 164 "@entryPointOutput" Decorate 16(g_tTex1df4) DescriptorSet 0 Decorate 16(g_tTex1df4) Binding 0 Decorate 20(g_sSamp) DescriptorSet 0 @@ -447,7 +443,6 @@ Shader version: 500 Decorate 158(@entryPointOutput_Pos) BuiltIn Position Decorate 161(g_tTex1df4a) DescriptorSet 0 Decorate 161(g_tTex1df4a) Binding 1 - Decorate 164(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -537,9 +532,6 @@ Shader version: 500 157: TypePointer Output 7(fvec4) 158(@entryPointOutput_Pos): 157(ptr) Variable Output 161(g_tTex1df4a): 15(ptr) Variable UniformConstant - 162(VS_OUTPUT): TypeStruct - 163: TypePointer Output 162(VS_OUTPUT) -164(@entryPointOutput): 163(ptr) Variable Output 4(main): 2 Function None 3 5: Label 159:8(VS_OUTPUT) FunctionCall 10(@main() diff --git a/3rdparty/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out b/3rdparty/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out index 2f010f5e0..9cb61ca0a 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out @@ -34,42 +34,78 @@ output primitive = triangle_strip 0:? Constant: 0:? 5.000000 0:? 6.000000 -0:30 Sequence -0:30 Sequence -0:30 move second child to first child ( temp 4-component vector of float) -0:? 'ts_psIn_pos' ( out 4-component vector of float Position) -0:30 pos: direct index for structure ( temp 4-component vector of float) -0:30 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 move second child to first child ( temp 2-component vector of float) -0:30 tc: direct index for structure ( temp 2-component vector of float) -0:30 psIn: direct index for structure ( temp structure{ temp 2-component vector of float tc}) -0:30 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 tc: direct index for structure ( temp 2-component vector of float) -0:30 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 move second child to first child ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:30 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 1 (const int) +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 m0_array: direct index for structure ( temp 2-element array of float) +0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:29 Constant: +0:29 1 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 2.300000 +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 m0_array: direct index for structure ( temp 2-element array of float) 0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:30 Constant: 0:30 1 (const int) -0:30 EmitVertex ( temp void) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 2.300000 +0:31 move second child to first child ( temp int) +0:31 m1: direct index for structure ( temp int) +0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 2 (const int) +0:33 Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:? 'ts_psIn_pos' ( out 4-component vector of float Position) +0:33 pos: direct index for structure ( temp 4-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 move second child to first child ( temp 2-component vector of float) +0:33 tc: direct index for structure ( temp 2-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 2-component vector of float tc}) +0:33 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 tc: direct index for structure ( temp 2-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 move second child to first child ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 EmitVertex ( temp void) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence @@ -201,42 +237,78 @@ output primitive = triangle_strip 0:? Constant: 0:? 5.000000 0:? 6.000000 -0:30 Sequence -0:30 Sequence -0:30 move second child to first child ( temp 4-component vector of float) -0:? 'ts_psIn_pos' ( out 4-component vector of float Position) -0:30 pos: direct index for structure ( temp 4-component vector of float) -0:30 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 move second child to first child ( temp 2-component vector of float) -0:30 tc: direct index for structure ( temp 2-component vector of float) -0:30 psIn: direct index for structure ( temp structure{ temp 2-component vector of float tc}) -0:30 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 0 (const int) -0:30 tc: direct index for structure ( temp 2-component vector of float) -0:30 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) -0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 0 (const int) -0:30 Constant: -0:30 1 (const int) -0:30 move second child to first child ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) -0:30 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) -0:30 Constant: -0:30 1 (const int) +0:29 move second child to first child ( temp float) +0:29 direct index ( temp float) +0:29 m0_array: direct index for structure ( temp 2-element array of float) +0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:29 Constant: +0:29 1 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 2.300000 +0:30 move second child to first child ( temp float) +0:30 direct index ( temp float) +0:30 m0_array: direct index for structure ( temp 2-element array of float) 0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:30 Constant: 0:30 1 (const int) -0:30 EmitVertex ( temp void) +0:30 Constant: +0:30 0 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 2.300000 +0:31 move second child to first child ( temp int) +0:31 m1: direct index for structure ( temp int) +0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 2 (const int) +0:33 Sequence +0:33 Sequence +0:33 move second child to first child ( temp 4-component vector of float) +0:? 'ts_psIn_pos' ( out 4-component vector of float Position) +0:33 pos: direct index for structure ( temp 4-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 move second child to first child ( temp 2-component vector of float) +0:33 tc: direct index for structure ( temp 2-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 2-component vector of float tc}) +0:33 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 0 (const int) +0:33 tc: direct index for structure ( temp 2-component vector of float) +0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 0 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 move second child to first child ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) +0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) +0:33 Constant: +0:33 1 (const int) +0:33 EmitVertex ( temp void) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence @@ -331,12 +403,12 @@ output primitive = triangle_strip // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 99 +// Id's are bound by 105 Capability Geometry 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 41 48 67 75 + EntryPoint Geometry 4 "main" 48 55 74 82 ExecutionMode 4 Triangles ExecutionMode 4 Invocations 1 ExecutionMode 4 OutputTriangleStrip @@ -356,28 +428,28 @@ output primitive = triangle_strip Name 21 "tin" Name 22 "ts" Name 25 "o" - Name 41 "ts_psIn_pos" - Name 44 "PS_IN" - MemberName 44(PS_IN) 0 "tc" - Name 45 "STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO" - MemberName 45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 0 "m0_array" - MemberName 45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 1 "m1" - Name 46 "GS_OUT" - MemberName 46(GS_OUT) 0 "psIn" - MemberName 46(GS_OUT) 1 "contains_no_builtin_io" - Name 48 "ts" - Name 64 "tin" - Name 67 "tin_pos" - Name 72 "PS_IN" - MemberName 72(PS_IN) 0 "tc" - Name 75 "tin" - Name 93 "ts" - Name 94 "param" - Name 96 "param" - Decorate 41(ts_psIn_pos) BuiltIn Position - Decorate 48(ts) Location 0 - Decorate 67(tin_pos) BuiltIn Position - Decorate 75(tin) Location 0 + Name 48 "ts_psIn_pos" + Name 51 "PS_IN" + MemberName 51(PS_IN) 0 "tc" + Name 52 "STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO" + MemberName 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 0 "m0_array" + MemberName 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 1 "m1" + Name 53 "GS_OUT" + MemberName 53(GS_OUT) 0 "psIn" + MemberName 53(GS_OUT) 1 "contains_no_builtin_io" + Name 55 "ts" + Name 71 "tin" + Name 74 "tin_pos" + Name 79 "PS_IN" + MemberName 79(PS_IN) 0 "tc" + Name 82 "tin" + Name 99 "ts" + Name 100 "param" + Name 102 "param" + Decorate 48(ts_psIn_pos) BuiltIn Position + Decorate 55(ts) Location 0 + Decorate 74(tin_pos) BuiltIn Position + Decorate 82(tin) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -407,63 +479,66 @@ output primitive = triangle_strip 36: 6(float) Constant 1086324736 37: 8(fvec2) ConstantComposite 35 36 38: TypePointer Function 8(fvec2) - 40: TypePointer Output 7(fvec4) - 41(ts_psIn_pos): 40(ptr) Variable Output - 44(PS_IN): TypeStruct 8(fvec2) -45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO): TypeStruct 15 16(int) - 46(GS_OUT): TypeStruct 44(PS_IN) 45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) - 47: TypePointer Output 46(GS_OUT) - 48(ts): 47(ptr) Variable Output - 51: TypePointer Output 8(fvec2) - 53: TypePointer Function 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) - 56: TypePointer Output 45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) - 59: TypePointer Output 15 - 62: TypePointer Output 16(int) - 65: TypeArray 7(fvec4) 11 - 66: TypePointer Input 65 - 67(tin_pos): 66(ptr) Variable Input - 68: TypePointer Input 7(fvec4) - 72(PS_IN): TypeStruct 8(fvec2) - 73: TypeArray 72(PS_IN) 11 - 74: TypePointer Input 73 - 75(tin): 74(ptr) Variable Input - 76: TypePointer Input 8(fvec2) - 86: 16(int) Constant 2 + 40: 6(float) Constant 1075000115 + 41: TypePointer Function 6(float) + 44: 16(int) Constant 2 + 45: TypePointer Function 16(int) + 47: TypePointer Output 7(fvec4) + 48(ts_psIn_pos): 47(ptr) Variable Output + 51(PS_IN): TypeStruct 8(fvec2) +52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO): TypeStruct 15 16(int) + 53(GS_OUT): TypeStruct 51(PS_IN) 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) + 54: TypePointer Output 53(GS_OUT) + 55(ts): 54(ptr) Variable Output + 58: TypePointer Output 8(fvec2) + 60: TypePointer Function 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) + 63: TypePointer Output 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) + 66: TypePointer Output 15 + 69: TypePointer Output 16(int) + 72: TypeArray 7(fvec4) 11 + 73: TypePointer Input 72 + 74(tin_pos): 73(ptr) Variable Input + 75: TypePointer Input 7(fvec4) + 79(PS_IN): TypeStruct 8(fvec2) + 80: TypeArray 79(PS_IN) 11 + 81: TypePointer Input 80 + 82(tin): 81(ptr) Variable Input + 83: TypePointer Input 8(fvec2) 4(main): 2 Function None 3 5: Label - 64(tin): 13(ptr) Variable Function - 93(ts): 19(ptr) Variable Function - 94(param): 13(ptr) Variable Function - 96(param): 19(ptr) Variable Function - 69: 68(ptr) AccessChain 67(tin_pos) 26 - 70: 7(fvec4) Load 69 - 71: 32(ptr) AccessChain 64(tin) 26 26 - Store 71 70 - 77: 76(ptr) AccessChain 75(tin) 26 26 - 78: 8(fvec2) Load 77 - 79: 38(ptr) AccessChain 64(tin) 26 34 - Store 79 78 - 80: 68(ptr) AccessChain 67(tin_pos) 34 - 81: 7(fvec4) Load 80 - 82: 32(ptr) AccessChain 64(tin) 34 26 - Store 82 81 - 83: 76(ptr) AccessChain 75(tin) 34 26 - 84: 8(fvec2) Load 83 - 85: 38(ptr) AccessChain 64(tin) 34 34 - Store 85 84 - 87: 68(ptr) AccessChain 67(tin_pos) 86 + 71(tin): 13(ptr) Variable Function + 99(ts): 19(ptr) Variable Function + 100(param): 13(ptr) Variable Function + 102(param): 19(ptr) Variable Function + 76: 75(ptr) AccessChain 74(tin_pos) 26 + 77: 7(fvec4) Load 76 + 78: 32(ptr) AccessChain 71(tin) 26 26 + Store 78 77 + 84: 83(ptr) AccessChain 82(tin) 26 26 + 85: 8(fvec2) Load 84 + 86: 38(ptr) AccessChain 71(tin) 26 34 + Store 86 85 + 87: 75(ptr) AccessChain 74(tin_pos) 34 88: 7(fvec4) Load 87 - 89: 32(ptr) AccessChain 64(tin) 86 26 + 89: 32(ptr) AccessChain 71(tin) 34 26 Store 89 88 - 90: 76(ptr) AccessChain 75(tin) 86 26 + 90: 83(ptr) AccessChain 82(tin) 34 26 91: 8(fvec2) Load 90 - 92: 38(ptr) AccessChain 64(tin) 86 34 + 92: 38(ptr) AccessChain 71(tin) 34 34 Store 92 91 - 95: 12 Load 64(tin) - Store 94(param) 95 - 97: 2 FunctionCall 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;) 94(param) 96(param) - 98: 18(GS_OUT) Load 96(param) - Store 93(ts) 98 + 93: 75(ptr) AccessChain 74(tin_pos) 44 + 94: 7(fvec4) Load 93 + 95: 32(ptr) AccessChain 71(tin) 44 26 + Store 95 94 + 96: 83(ptr) AccessChain 82(tin) 44 26 + 97: 8(fvec2) Load 96 + 98: 38(ptr) AccessChain 71(tin) 44 34 + Store 98 97 + 101: 12 Load 71(tin) + Store 100(param) 101 + 103: 2 FunctionCall 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;) 100(param) 102(param) + 104: 18(GS_OUT) Load 102(param) + Store 99(ts) 104 Return FunctionEnd 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;): 2 Function None 20 @@ -475,22 +550,28 @@ output primitive = triangle_strip Store 33 31 39: 38(ptr) AccessChain 25(o) 26 34 Store 39 37 - 42: 32(ptr) AccessChain 25(o) 26 26 - 43: 7(fvec4) Load 42 - Store 41(ts_psIn_pos) 43 - 49: 38(ptr) AccessChain 25(o) 26 34 - 50: 8(fvec2) Load 49 - 52: 51(ptr) AccessChain 48(ts) 26 26 - Store 52 50 - 54: 53(ptr) AccessChain 25(o) 34 - 55:17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) Load 54 - 57: 56(ptr) AccessChain 48(ts) 34 - 58: 15 CompositeExtract 55 0 - 60: 59(ptr) AccessChain 57 26 - Store 60 58 - 61: 16(int) CompositeExtract 55 1 - 63: 62(ptr) AccessChain 57 34 - Store 63 61 + 42: 41(ptr) AccessChain 25(o) 34 26 26 + Store 42 40 + 43: 41(ptr) AccessChain 25(o) 34 26 34 + Store 43 40 + 46: 45(ptr) AccessChain 25(o) 34 34 + Store 46 44 + 49: 32(ptr) AccessChain 25(o) 26 26 + 50: 7(fvec4) Load 49 + Store 48(ts_psIn_pos) 50 + 56: 38(ptr) AccessChain 25(o) 26 34 + 57: 8(fvec2) Load 56 + 59: 58(ptr) AccessChain 55(ts) 26 26 + Store 59 57 + 61: 60(ptr) AccessChain 25(o) 34 + 62:17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) Load 61 + 64: 63(ptr) AccessChain 55(ts) 34 + 65: 15 CompositeExtract 62 0 + 67: 66(ptr) AccessChain 64 26 + Store 67 65 + 68: 16(int) CompositeExtract 62 1 + 70: 69(ptr) AccessChain 64 34 + Store 70 68 EmitVertex Return FunctionEnd diff --git a/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out b/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out index c552675b8..a8eb4465f 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out @@ -90,8 +90,6 @@ output primitive = triangle_strip 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 0:? 'ts' ( temp structure{ temp 4-component vector of float pos}) 0:? Linker Objects -0:? 'i' (layout( location=0) in 3-element array of structure{}) -0:? 'ts' (layout( location=0) out structure{}) Linked geometry stage: @@ -188,17 +186,15 @@ output primitive = triangle_strip 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 0:? 'ts' ( temp structure{ temp 4-component vector of float pos}) 0:? Linker Objects -0:? 'i' (layout( location=0) in 3-element array of structure{}) -0:? 'ts' (layout( location=0) out structure{}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 74 +// Id's are bound by 67 Capability Geometry 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Geometry 4 "main" 40 49 70 73 + EntryPoint Geometry 4 "main" 40 49 ExecutionMode 4 Triangles ExecutionMode 4 Invocations 1 ExecutionMode 4 OutputTriangleStrip @@ -220,14 +216,8 @@ output primitive = triangle_strip Name 61 "ts" Name 62 "param" Name 64 "param" - Name 67 "PS_IN" - Name 70 "i" - Name 71 "GS_OUT" - Name 73 "ts" Decorate 40(ts_pos) BuiltIn Position Decorate 49(i_pos) BuiltIn Position - Decorate 70(i) Location 0 - Decorate 73(ts) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -254,13 +244,6 @@ output primitive = triangle_strip 49(i_pos): 48(ptr) Variable Input 50: TypePointer Input 7(fvec4) 57: 20(int) Constant 2 - 67(PS_IN): TypeStruct - 68: TypeArray 67(PS_IN) 10 - 69: TypePointer Input 68 - 70(i): 69(ptr) Variable Input - 71(GS_OUT): TypeStruct - 72: TypePointer Output 71(GS_OUT) - 73(ts): 72(ptr) Variable Output 4(main): 2 Function None 3 5: Label 46(i): 12(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out index 05dcb2691..fbff6b901 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out @@ -42,7 +42,6 @@ Shader version: 500 0:16 Constant: 0:16 0 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? 'Pos_in' (layout( location=0) in 4-component vector of float) 0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) @@ -93,18 +92,17 @@ Shader version: 500 0:16 Constant: 0:16 0 (const int) 0:? Linker Objects -0:? '@entryPointOutput' (layout( location=0) out structure{}) 0:? 'Pos_in' (layout( location=0) in 4-component vector of float) 0:? 'Pos_loose' (layout( location=1) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 48 +// Id's are bound by 45 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 31 35 38 47 + EntryPoint Vertex 4 "main" 31 35 38 Source HLSL 500 Name 4 "main" Name 8 "VS_INPUT" @@ -122,12 +120,9 @@ Shader version: 500 Name 38 "@entryPointOutput_Pos" Name 39 "param" Name 41 "param" - Name 45 "VS_OUTPUT" - Name 47 "@entryPointOutput" Decorate 31(Pos_in) Location 0 Decorate 35(Pos_loose) Location 1 Decorate 38(@entryPointOutput_Pos) BuiltIn Position - Decorate 47(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -145,9 +140,6 @@ Shader version: 500 35(Pos_loose): 30(ptr) Variable Input 37: TypePointer Output 7(fvec4) 38(@entryPointOutput_Pos): 37(ptr) Variable Output - 45(VS_OUTPUT): TypeStruct - 46: TypePointer Output 45(VS_OUTPUT) -47(@entryPointOutput): 46(ptr) Variable Output 4(main): 2 Function None 3 5: Label 29(vsin): 9(ptr) Variable Function diff --git a/3rdparty/glslang/Test/baseResults/hlsl.structin.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.structin.vert.out index 8378de216..ff6b37aee 100755 --- a/3rdparty/glslang/Test/baseResults/hlsl.structin.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.structin.vert.out @@ -1,15 +1,15 @@ hlsl.structin.vert Shader version: 500 0:? Sequence -0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Function Parameters: 0:8 'd' ( in 4-component vector of float) -0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 'e' ( in 4-component vector of float) 0:? Sequence 0:11 move second child to first child ( temp 4-component vector of float) 0:11 b: direct index for structure ( temp 4-component vector of float) -0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:11 Constant: 0:11 2 (const int) 0:11 add ( temp 4-component vector of float) @@ -18,31 +18,66 @@ Shader version: 500 0:11 add ( temp 4-component vector of float) 0:11 direct index ( temp 4-component vector of float) 0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:11 Constant: 0:11 0 (const int) 0:11 Constant: 0:11 1 (const int) 0:11 direct index ( temp 4-component vector of float) 0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:11 Constant: 0:11 0 (const int) 0:11 Constant: 0:11 0 (const int) 0:11 Construct vec4 ( temp 4-component vector of float) -0:11 Convert uint to float ( temp float) -0:11 direct index ( temp uint) -0:11 coord: direct index for structure ( temp 2-component vector of uint) -0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:11 Constant: -0:11 1 (const int) +0:11 direct index ( temp float) +0:11 coord: direct index for structure ( temp 4-component vector of float) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:11 Constant: -0:11 0 (const int) +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) 0:11 'd' ( in 4-component vector of float) 0:11 'e' ( in 4-component vector of float) -0:13 Branch: Return with expression -0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:12 move second child to first child ( temp 4-component vector of float) +0:12 coord: direct index for structure ( temp 4-component vector of float) +0:12 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1.000000 +0:12 1.000000 +0:12 1.000000 +0:12 1.000000 +0:13 move second child to first child ( temp 4-component vector of float) +0:13 direct index ( temp 4-component vector of float) +0:13 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2.000000 +0:13 2.000000 +0:13 2.000000 +0:13 2.000000 +0:14 move second child to first child ( temp 4-component vector of float) +0:14 direct index ( temp 4-component vector of float) +0:14 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:14 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 3.000000 +0:14 3.000000 +0:14 3.000000 +0:14 3.000000 +0:16 Branch: Return with expression +0:16 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Function Definition: main( ( temp void) 0:8 Function Parameters: 0:? Sequence @@ -53,7 +88,7 @@ Shader version: 500 0:8 move second child to first child ( temp 4-component vector of float) 0:8 direct index ( temp 4-component vector of float) 0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: @@ -62,21 +97,21 @@ Shader version: 500 0:8 move second child to first child ( temp 4-component vector of float) 0:8 direct index ( temp 4-component vector of float) 0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const int) 0:? 'm[1]' (layout( location=2) in 4-component vector of float) -0:8 move second child to first child ( temp 2-component vector of uint) -0:8 coord: direct index for structure ( temp 2-component vector of uint) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 move second child to first child ( temp 4-component vector of float) +0:8 coord: direct index for structure ( temp 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 1 (const int) -0:? 'coord' (layout( location=3) in 2-component vector of uint) +0:? 'coord' (layout( location=3) in 4-component vector of float) 0:8 move second child to first child ( temp 4-component vector of float) 0:8 b: direct index for structure ( temp 4-component vector of float) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 2 (const int) 0:? 'b' (layout( location=4) in 4-component vector of float) @@ -84,47 +119,44 @@ Shader version: 500 0:? 'e' ( temp 4-component vector of float) 0:? 'e' (layout( location=5) in 4-component vector of float) 0:8 Sequence -0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:? 'd' ( temp 4-component vector of float) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:? 'e' ( temp 4-component vector of float) 0:8 move second child to first child ( temp 2-element array of 4-component vector of float) 0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b}) 0:8 Constant: 0:8 0 (const int) 0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 0 (const int) -0:8 move second child to first child ( temp 2-component vector of uint) -0:8 coord: direct index for structure ( temp 2-component vector of uint) -0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:8 Constant: -0:8 1 (const int) -0:8 coord: direct index for structure ( temp 2-component vector of uint) -0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput_coord' ( out 4-component vector of float Position) +0:8 coord: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 1 (const int) 0:8 move second child to first child ( temp 4-component vector of float) -0:8 b: direct index for structure ( temp 4-component vector of float) -0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 b: direct index for structure ( smooth temp 4-component vector of float) +0:8 '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b}) 0:8 Constant: -0:8 2 (const int) +0:8 1 (const int) 0:8 b: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 2 (const int) 0:? Linker Objects -0:? '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b}) 0:? 'd' (layout( location=0) in 4-component vector of float) 0:? 'm[0]' (layout( location=1) in 4-component vector of float) 0:? 'm[1]' (layout( location=2) in 4-component vector of float) 0:? 'm[0]' (layout( location=1) in 4-component vector of float) 0:? 'm[1]' (layout( location=2) in 4-component vector of float) -0:? 'coord' (layout( location=3) in 2-component vector of uint) +0:? 'coord' (layout( location=3) in 4-component vector of float) 0:? 'b' (layout( location=4) in 4-component vector of float) 0:? 'e' (layout( location=5) in 4-component vector of float) @@ -134,15 +166,15 @@ Linked vertex stage: Shader version: 500 0:? Sequence -0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Function Parameters: 0:8 'd' ( in 4-component vector of float) -0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 'e' ( in 4-component vector of float) 0:? Sequence 0:11 move second child to first child ( temp 4-component vector of float) 0:11 b: direct index for structure ( temp 4-component vector of float) -0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:11 Constant: 0:11 2 (const int) 0:11 add ( temp 4-component vector of float) @@ -151,31 +183,66 @@ Shader version: 500 0:11 add ( temp 4-component vector of float) 0:11 direct index ( temp 4-component vector of float) 0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:11 Constant: 0:11 0 (const int) 0:11 Constant: 0:11 1 (const int) 0:11 direct index ( temp 4-component vector of float) 0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:11 Constant: 0:11 0 (const int) 0:11 Constant: 0:11 0 (const int) 0:11 Construct vec4 ( temp 4-component vector of float) -0:11 Convert uint to float ( temp float) -0:11 direct index ( temp uint) -0:11 coord: direct index for structure ( temp 2-component vector of uint) -0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:11 Constant: -0:11 1 (const int) +0:11 direct index ( temp float) +0:11 coord: direct index for structure ( temp 4-component vector of float) +0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:11 Constant: -0:11 0 (const int) +0:11 1 (const int) +0:11 Constant: +0:11 0 (const int) 0:11 'd' ( in 4-component vector of float) 0:11 'e' ( in 4-component vector of float) -0:13 Branch: Return with expression -0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:12 move second child to first child ( temp 4-component vector of float) +0:12 coord: direct index for structure ( temp 4-component vector of float) +0:12 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:12 Constant: +0:12 1 (const int) +0:12 Constant: +0:12 1.000000 +0:12 1.000000 +0:12 1.000000 +0:12 1.000000 +0:13 move second child to first child ( temp 4-component vector of float) +0:13 direct index ( temp 4-component vector of float) +0:13 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 2.000000 +0:13 2.000000 +0:13 2.000000 +0:13 2.000000 +0:14 move second child to first child ( temp 4-component vector of float) +0:14 direct index ( temp 4-component vector of float) +0:14 m: direct index for structure ( temp 2-element array of 4-component vector of float) +0:14 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:14 Constant: +0:14 0 (const int) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 3.000000 +0:14 3.000000 +0:14 3.000000 +0:14 3.000000 +0:16 Branch: Return with expression +0:16 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Function Definition: main( ( temp void) 0:8 Function Parameters: 0:? Sequence @@ -186,7 +253,7 @@ Shader version: 500 0:8 move second child to first child ( temp 4-component vector of float) 0:8 direct index ( temp 4-component vector of float) 0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: @@ -195,21 +262,21 @@ Shader version: 500 0:8 move second child to first child ( temp 4-component vector of float) 0:8 direct index ( temp 4-component vector of float) 0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const int) 0:? 'm[1]' (layout( location=2) in 4-component vector of float) -0:8 move second child to first child ( temp 2-component vector of uint) -0:8 coord: direct index for structure ( temp 2-component vector of uint) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 move second child to first child ( temp 4-component vector of float) +0:8 coord: direct index for structure ( temp 4-component vector of float) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 1 (const int) -0:? 'coord' (layout( location=3) in 2-component vector of uint) +0:? 'coord' (layout( location=3) in 4-component vector of float) 0:8 move second child to first child ( temp 4-component vector of float) 0:8 b: direct index for structure ( temp 4-component vector of float) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 2 (const int) 0:? 'b' (layout( location=4) in 4-component vector of float) @@ -217,94 +284,92 @@ Shader version: 500 0:? 'e' ( temp 4-component vector of float) 0:? 'e' (layout( location=5) in 4-component vector of float) 0:8 Sequence -0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) +0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:? 'd' ( temp 4-component vector of float) -0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:? 'e' ( temp 4-component vector of float) 0:8 move second child to first child ( temp 2-element array of 4-component vector of float) 0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b}) 0:8 Constant: 0:8 0 (const int) 0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 0 (const int) -0:8 move second child to first child ( temp 2-component vector of uint) -0:8 coord: direct index for structure ( temp 2-component vector of uint) -0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) -0:8 Constant: -0:8 1 (const int) -0:8 coord: direct index for structure ( temp 2-component vector of uint) -0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 move second child to first child ( temp 4-component vector of float) +0:? '@entryPointOutput_coord' ( out 4-component vector of float Position) +0:8 coord: direct index for structure ( temp 4-component vector of float) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 1 (const int) 0:8 move second child to first child ( temp 4-component vector of float) -0:8 b: direct index for structure ( temp 4-component vector of float) -0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 b: direct index for structure ( smooth temp 4-component vector of float) +0:8 '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b}) 0:8 Constant: -0:8 2 (const int) +0:8 1 (const int) 0:8 b: direct index for structure ( temp 4-component vector of float) -0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b}) 0:8 Constant: 0:8 2 (const int) 0:? Linker Objects -0:? '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:? '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b}) 0:? 'd' (layout( location=0) in 4-component vector of float) 0:? 'm[0]' (layout( location=1) in 4-component vector of float) 0:? 'm[1]' (layout( location=2) in 4-component vector of float) 0:? 'm[0]' (layout( location=1) in 4-component vector of float) 0:? 'm[1]' (layout( location=2) in 4-component vector of float) -0:? 'coord' (layout( location=3) in 2-component vector of uint) +0:? 'coord' (layout( location=3) in 4-component vector of float) 0:? 'b' (layout( location=4) in 4-component vector of float) 0:? 'e' (layout( location=5) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 92 +// Id's are bound by 96 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 48 51 54 58 62 66 78 + EntryPoint Vertex 4 "main" 55 58 61 64 67 71 83 90 Source HLSL 500 Name 4 "main" - Name 13 "VI" - MemberName 13(VI) 0 "m" - MemberName 13(VI) 1 "coord" - MemberName 13(VI) 2 "b" - Name 19 "@main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4;" - Name 16 "d" - Name 17 "vi" - Name 18 "e" - Name 21 "local" - Name 46 "d" - Name 48 "d" - Name 50 "vi" - Name 51 "m[0]" - Name 54 "m[1]" - Name 58 "coord" - Name 62 "b" - Name 65 "e" - Name 66 "e" - Name 68 "flattenTemp" - Name 69 "param" - Name 71 "param" - Name 73 "param" - Name 76 "VI" - MemberName 76(VI) 0 "m" - MemberName 76(VI) 1 "coord" - MemberName 76(VI) 2 "b" - Name 78 "@entryPointOutput" - Decorate 48(d) Location 0 - Decorate 51(m[0]) Location 1 - Decorate 54(m[1]) Location 2 - Decorate 58(coord) Location 3 - Decorate 62(b) Location 4 - Decorate 66(e) Location 5 - Decorate 78(@entryPointOutput) BuiltIn Position + Name 12 "VI" + MemberName 12(VI) 0 "m" + MemberName 12(VI) 1 "coord" + MemberName 12(VI) 2 "b" + Name 18 "@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;" + Name 15 "d" + Name 16 "vi" + Name 17 "e" + Name 20 "local" + Name 53 "d" + Name 55 "d" + Name 57 "vi" + Name 58 "m[0]" + Name 61 "m[1]" + Name 64 "coord" + Name 67 "b" + Name 70 "e" + Name 71 "e" + Name 73 "flattenTemp" + Name 74 "param" + Name 76 "param" + Name 78 "param" + Name 81 "VI" + MemberName 81(VI) 0 "m" + MemberName 81(VI) 1 "b" + Name 83 "@entryPointOutput" + Name 90 "@entryPointOutput_coord" + Decorate 55(d) Location 0 + Decorate 58(m[0]) Location 1 + Decorate 61(m[1]) Location 2 + Decorate 64(coord) Location 3 + Decorate 67(b) Location 4 + Decorate 71(e) Location 5 + Decorate 83(@entryPointOutput) Location 0 + Decorate 90(@entryPointOutput_coord) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -313,101 +378,108 @@ Shader version: 500 9: TypeInt 32 0 10: 9(int) Constant 2 11: TypeArray 7(fvec4) 10 - 12: TypeVector 9(int) 2 - 13(VI): TypeStruct 11 12(ivec2) 7(fvec4) - 14: TypePointer Function 13(VI) - 15: TypeFunction 13(VI) 8(ptr) 14(ptr) 8(ptr) - 22: TypeInt 32 1 - 23: 22(int) Constant 2 - 24: 22(int) Constant 0 - 25: 22(int) Constant 1 - 31: 9(int) Constant 0 - 32: TypePointer Function 9(int) - 47: TypePointer Input 7(fvec4) - 48(d): 47(ptr) Variable Input - 51(m[0]): 47(ptr) Variable Input - 54(m[1]): 47(ptr) Variable Input - 57: TypePointer Input 12(ivec2) - 58(coord): 57(ptr) Variable Input - 60: TypePointer Function 12(ivec2) - 62(b): 47(ptr) Variable Input - 66(e): 47(ptr) Variable Input - 76(VI): TypeStruct 11 12(ivec2) 7(fvec4) - 77: TypePointer Output 76(VI) -78(@entryPointOutput): 77(ptr) Variable Output - 79: TypePointer Function 11 - 82: TypePointer Output 11 - 86: TypePointer Output 12(ivec2) - 90: TypePointer Output 7(fvec4) + 12(VI): TypeStruct 11 7(fvec4) 7(fvec4) + 13: TypePointer Function 12(VI) + 14: TypeFunction 12(VI) 8(ptr) 13(ptr) 8(ptr) + 21: TypeInt 32 1 + 22: 21(int) Constant 2 + 23: 21(int) Constant 0 + 24: 21(int) Constant 1 + 30: 9(int) Constant 0 + 31: TypePointer Function 6(float) + 41: 6(float) Constant 1065353216 + 42: 7(fvec4) ConstantComposite 41 41 41 41 + 44: 6(float) Constant 1073741824 + 45: 7(fvec4) ConstantComposite 44 44 44 44 + 47: 6(float) Constant 1077936128 + 48: 7(fvec4) ConstantComposite 47 47 47 47 + 54: TypePointer Input 7(fvec4) + 55(d): 54(ptr) Variable Input + 58(m[0]): 54(ptr) Variable Input + 61(m[1]): 54(ptr) Variable Input + 64(coord): 54(ptr) Variable Input + 67(b): 54(ptr) Variable Input + 71(e): 54(ptr) Variable Input + 81(VI): TypeStruct 11 7(fvec4) + 82: TypePointer Output 81(VI) +83(@entryPointOutput): 82(ptr) Variable Output + 84: TypePointer Function 11 + 87: TypePointer Output 11 + 89: TypePointer Output 7(fvec4) +90(@entryPointOutput_coord): 89(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 46(d): 8(ptr) Variable Function - 50(vi): 14(ptr) Variable Function - 65(e): 8(ptr) Variable Function - 68(flattenTemp): 14(ptr) Variable Function - 69(param): 8(ptr) Variable Function - 71(param): 14(ptr) Variable Function - 73(param): 8(ptr) Variable Function - 49: 7(fvec4) Load 48(d) - Store 46(d) 49 - 52: 7(fvec4) Load 51(m[0]) - 53: 8(ptr) AccessChain 50(vi) 24 24 - Store 53 52 - 55: 7(fvec4) Load 54(m[1]) - 56: 8(ptr) AccessChain 50(vi) 24 25 - Store 56 55 - 59: 12(ivec2) Load 58(coord) - 61: 60(ptr) AccessChain 50(vi) 25 - Store 61 59 - 63: 7(fvec4) Load 62(b) - 64: 8(ptr) AccessChain 50(vi) 23 - Store 64 63 - 67: 7(fvec4) Load 66(e) - Store 65(e) 67 - 70: 7(fvec4) Load 46(d) - Store 69(param) 70 - 72: 13(VI) Load 50(vi) - Store 71(param) 72 - 74: 7(fvec4) Load 65(e) - Store 73(param) 74 - 75: 13(VI) FunctionCall 19(@main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4;) 69(param) 71(param) 73(param) - Store 68(flattenTemp) 75 - 80: 79(ptr) AccessChain 68(flattenTemp) 24 - 81: 11 Load 80 - 83: 82(ptr) AccessChain 78(@entryPointOutput) 24 - Store 83 81 - 84: 60(ptr) AccessChain 68(flattenTemp) 25 - 85: 12(ivec2) Load 84 - 87: 86(ptr) AccessChain 78(@entryPointOutput) 25 - Store 87 85 - 88: 8(ptr) AccessChain 68(flattenTemp) 23 - 89: 7(fvec4) Load 88 - 91: 90(ptr) AccessChain 78(@entryPointOutput) 23 - Store 91 89 + 53(d): 8(ptr) Variable Function + 57(vi): 13(ptr) Variable Function + 70(e): 8(ptr) Variable Function + 73(flattenTemp): 13(ptr) Variable Function + 74(param): 8(ptr) Variable Function + 76(param): 13(ptr) Variable Function + 78(param): 8(ptr) Variable Function + 56: 7(fvec4) Load 55(d) + Store 53(d) 56 + 59: 7(fvec4) Load 58(m[0]) + 60: 8(ptr) AccessChain 57(vi) 23 23 + Store 60 59 + 62: 7(fvec4) Load 61(m[1]) + 63: 8(ptr) AccessChain 57(vi) 23 24 + Store 63 62 + 65: 7(fvec4) Load 64(coord) + 66: 8(ptr) AccessChain 57(vi) 24 + Store 66 65 + 68: 7(fvec4) Load 67(b) + 69: 8(ptr) AccessChain 57(vi) 22 + Store 69 68 + 72: 7(fvec4) Load 71(e) + Store 70(e) 72 + 75: 7(fvec4) Load 53(d) + Store 74(param) 75 + 77: 12(VI) Load 57(vi) + Store 76(param) 77 + 79: 7(fvec4) Load 70(e) + Store 78(param) 79 + 80: 12(VI) FunctionCall 18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;) 74(param) 76(param) 78(param) + Store 73(flattenTemp) 80 + 85: 84(ptr) AccessChain 73(flattenTemp) 23 + 86: 11 Load 85 + 88: 87(ptr) AccessChain 83(@entryPointOutput) 23 + Store 88 86 + 91: 8(ptr) AccessChain 73(flattenTemp) 24 + 92: 7(fvec4) Load 91 + Store 90(@entryPointOutput_coord) 92 + 93: 8(ptr) AccessChain 73(flattenTemp) 22 + 94: 7(fvec4) Load 93 + 95: 89(ptr) AccessChain 83(@entryPointOutput) 24 + Store 95 94 Return FunctionEnd -19(@main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4;): 13(VI) Function None 15 - 16(d): 8(ptr) FunctionParameter - 17(vi): 14(ptr) FunctionParameter - 18(e): 8(ptr) FunctionParameter - 20: Label - 21(local): 14(ptr) Variable Function - 26: 8(ptr) AccessChain 17(vi) 24 25 - 27: 7(fvec4) Load 26 - 28: 8(ptr) AccessChain 17(vi) 24 24 - 29: 7(fvec4) Load 28 - 30: 7(fvec4) FAdd 27 29 - 33: 32(ptr) AccessChain 17(vi) 25 31 - 34: 9(int) Load 33 - 35: 6(float) ConvertUToF 34 - 36: 7(fvec4) CompositeConstruct 35 35 35 35 - 37: 7(fvec4) FAdd 30 36 - 38: 7(fvec4) Load 16(d) +18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;): 12(VI) Function None 14 + 15(d): 8(ptr) FunctionParameter + 16(vi): 13(ptr) FunctionParameter + 17(e): 8(ptr) FunctionParameter + 19: Label + 20(local): 13(ptr) Variable Function + 25: 8(ptr) AccessChain 16(vi) 23 24 + 26: 7(fvec4) Load 25 + 27: 8(ptr) AccessChain 16(vi) 23 23 + 28: 7(fvec4) Load 27 + 29: 7(fvec4) FAdd 26 28 + 32: 31(ptr) AccessChain 16(vi) 24 30 + 33: 6(float) Load 32 + 34: 7(fvec4) CompositeConstruct 33 33 33 33 + 35: 7(fvec4) FAdd 29 34 + 36: 7(fvec4) Load 15(d) + 37: 7(fvec4) FAdd 35 36 + 38: 7(fvec4) Load 17(e) 39: 7(fvec4) FAdd 37 38 - 40: 7(fvec4) Load 18(e) - 41: 7(fvec4) FAdd 39 40 - 42: 8(ptr) AccessChain 21(local) 23 - Store 42 41 - 43: 13(VI) Load 21(local) - ReturnValue 43 + 40: 8(ptr) AccessChain 20(local) 22 + Store 40 39 + 43: 8(ptr) AccessChain 20(local) 24 + Store 43 42 + 46: 8(ptr) AccessChain 20(local) 23 23 + Store 46 45 + 49: 8(ptr) AccessChain 20(local) 23 24 + Store 49 48 + 50: 12(VI) Load 20(local) + ReturnValue 50 FunctionEnd diff --git a/3rdparty/glslang/Test/baseResults/spv.460.comp.out b/3rdparty/glslang/Test/baseResults/spv.460.comp.out new file mode 100755 index 000000000..b9037b97c --- /dev/null +++ b/3rdparty/glslang/Test/baseResults/spv.460.comp.out @@ -0,0 +1,33 @@ +spv.460.comp +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 15 + + Capability Shader + Capability SubgroupVoteKHR + Extension "SPV_KHR_subgroup_vote" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 460 + Name 4 "main" + Name 8 "b1" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypePointer Function 6(bool) + 4(main): 2 Function None 3 + 5: Label + 8(b1): 7(ptr) Variable Function + 9: 6(bool) Load 8(b1) + 10: 6(bool) SubgroupAnyKHR 9 + Store 8(b1) 10 + 11: 6(bool) Load 8(b1) + 12: 6(bool) SubgroupAllKHR 11 + Store 8(b1) 12 + 13: 6(bool) Load 8(b1) + 14: 6(bool) SubgroupAllEqualKHR 13 + Store 8(b1) 14 + Return + FunctionEnd diff --git a/3rdparty/glslang/Test/baseResults/spv.460.frag.out b/3rdparty/glslang/Test/baseResults/spv.460.frag.out new file mode 100755 index 000000000..4e827a00b --- /dev/null +++ b/3rdparty/glslang/Test/baseResults/spv.460.frag.out @@ -0,0 +1,51 @@ +spv.460.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 32 + + Capability Shader + Capability AtomicStorage + Capability AtomicStorageOps + Extension "SPV_KHR_shader_atomic_counter_ops" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginLowerLeft + Source GLSL 460 + Name 4 "main" + Name 8 "aui" + Name 10 "ui" + Decorate 8(aui) Offset 0 + Decorate 8(aui) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer AtomicCounter 6(int) + 8(aui): 7(ptr) Variable AtomicCounter + 9: TypePointer Private 6(int) + 10(ui): 9(ptr) Variable Private + 12: 6(int) Constant 1 + 13: 6(int) Constant 0 + 4(main): 2 Function None 3 + 5: Label + 11: 6(int) Load 10(ui) + 14: 6(int) AtomicIAdd 8(aui) 12 13 11 + 15: 6(int) Load 10(ui) + 16: 6(int) AtomicISub 8(aui) 12 13 15 + 17: 6(int) Load 10(ui) + 18: 6(int) AtomicUMin 8(aui) 12 13 17 + 19: 6(int) Load 10(ui) + 20: 6(int) AtomicUMax 8(aui) 12 13 19 + 21: 6(int) Load 10(ui) + 22: 6(int) AtomicAnd 8(aui) 12 13 21 + 23: 6(int) Load 10(ui) + 24: 6(int) AtomicOr 8(aui) 12 13 23 + 25: 6(int) Load 10(ui) + 26: 6(int) AtomicXor 8(aui) 12 13 25 + 27: 6(int) Load 10(ui) + 28: 6(int) AtomicExchange 8(aui) 12 13 27 + 29: 6(int) Load 10(ui) + 30: 6(int) Load 10(ui) + 31: 6(int) AtomicCompareExchange 8(aui) 12 13 13 30 29 + Return + FunctionEnd diff --git a/3rdparty/glslang/Test/baseResults/spv.460.vert.out b/3rdparty/glslang/Test/baseResults/spv.460.vert.out new file mode 100755 index 000000000..6d57d07ed --- /dev/null +++ b/3rdparty/glslang/Test/baseResults/spv.460.vert.out @@ -0,0 +1,45 @@ +spv.460.vert +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 20 + + Capability Shader + Capability DrawParameters + Extension "SPV_KHR_shader_draw_parameters" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 10 12 15 18 19 + Source GLSL 460 + Name 4 "main" + Name 8 "a" + Name 10 "gl_BaseVertex" + Name 12 "gl_BaseInstance" + Name 15 "gl_DrawID" + Name 18 "gl_VertexID" + Name 19 "gl_InstanceID" + Decorate 10(gl_BaseVertex) BuiltIn BaseVertex + Decorate 12(gl_BaseInstance) BuiltIn BaseInstance + Decorate 15(gl_DrawID) BuiltIn DrawIndex + Decorate 18(gl_VertexID) BuiltIn VertexId + Decorate 19(gl_InstanceID) BuiltIn InstanceId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypePointer Input 6(int) +10(gl_BaseVertex): 9(ptr) Variable Input +12(gl_BaseInstance): 9(ptr) Variable Input + 15(gl_DrawID): 9(ptr) Variable Input + 18(gl_VertexID): 9(ptr) Variable Input +19(gl_InstanceID): 9(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(a): 7(ptr) Variable Function + 11: 6(int) Load 10(gl_BaseVertex) + 13: 6(int) Load 12(gl_BaseInstance) + 14: 6(int) IAdd 11 13 + 16: 6(int) Load 15(gl_DrawID) + 17: 6(int) IAdd 14 16 + Store 8(a) 17 + Return + FunctionEnd diff --git a/3rdparty/glslang/Test/hlsl.struct.split.nested.geom b/3rdparty/glslang/Test/hlsl.struct.split.nested.geom index 03bf38f3e..8bcc5b994 100644 --- a/3rdparty/glslang/Test/hlsl.struct.split.nested.geom +++ b/3rdparty/glslang/Test/hlsl.struct.split.nested.geom @@ -1,8 +1,8 @@ struct STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO { - float m0_array[2]; - int m1; + float m0_array[2] : mysemA; + int m1 : mysemB; }; struct PS_IN @@ -26,6 +26,9 @@ void main(triangle PS_IN tin[3], inout TriangleStream ts ) o.psIn.pos = float4(1,2,3,4); o.psIn.tc = float2(5,6); + o.contains_no_builtin_io.m0_array[0] = 2.3; + o.contains_no_builtin_io.m0_array[1] = 2.3; + o.contains_no_builtin_io.m1 = 2; ts.Append(o); } diff --git a/3rdparty/glslang/Test/hlsl.structin.vert b/3rdparty/glslang/Test/hlsl.structin.vert index 43d0cfd0b..20a26dd9e 100644 --- a/3rdparty/glslang/Test/hlsl.structin.vert +++ b/3rdparty/glslang/Test/hlsl.structin.vert @@ -1,14 +1,17 @@ struct VI { - float4 m[2]; - uint2 coord; - linear float4 b; + float4 m[2] : mysemA; + float4 coord : SV_POSITION; + linear float4 b : mysemB; }; -VI main(float4 d, VI vi, float4 e) : SV_POSITION +VI main(float4 d : mysem, VI vi, float4 e : mysem) { VI local; - local.b = vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e; + local.b = vi.m[1] + vi.m[0] + (float4)vi.coord.x + d + e; + local.coord = (float4)1; + local.m[0] = (float4)2; + local.m[1] = (float4)3; return local; } diff --git a/3rdparty/glslang/Test/spv.460.comp b/3rdparty/glslang/Test/spv.460.comp new file mode 100644 index 000000000..eb671a38b --- /dev/null +++ b/3rdparty/glslang/Test/spv.460.comp @@ -0,0 +1,9 @@ +#version 460 + +void main() +{ + bool b1; + b1 = anyInvocation(b1); + b1 = allInvocations(b1); + b1 = allInvocationsEqual(b1); +} diff --git a/3rdparty/glslang/Test/spv.460.frag b/3rdparty/glslang/Test/spv.460.frag new file mode 100644 index 000000000..9eb8bf46f --- /dev/null +++ b/3rdparty/glslang/Test/spv.460.frag @@ -0,0 +1,17 @@ +#version 460 core + +layout(binding = 0) uniform atomic_uint aui; +uint ui; + +void main() +{ + atomicCounterAdd(aui, ui); + atomicCounterSubtract(aui, ui); + atomicCounterMin(aui, ui); + atomicCounterMax(aui, ui); + atomicCounterAnd(aui, ui); + atomicCounterOr(aui, ui); + atomicCounterXor(aui, ui); + atomicCounterExchange(aui, ui); + atomicCounterCompSwap(aui, ui, ui); +} diff --git a/3rdparty/glslang/Test/spv.460.vert b/3rdparty/glslang/Test/spv.460.vert new file mode 100644 index 000000000..72d4e775f --- /dev/null +++ b/3rdparty/glslang/Test/spv.460.vert @@ -0,0 +1,6 @@ +#version 460 + +void main() +{ + int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; +} diff --git a/3rdparty/glslang/glslang/Include/Types.h b/3rdparty/glslang/glslang/Include/Types.h index 72c13881d..18448c86c 100644 --- a/3rdparty/glslang/glslang/Include/Types.h +++ b/3rdparty/glslang/glslang/Include/Types.h @@ -1370,15 +1370,12 @@ public: virtual bool isImage() const { return basicType == EbtSampler && getSampler().isImage(); } virtual bool isSubpass() const { return basicType == EbtSampler && getSampler().isSubpass(); } - virtual bool isBuiltInInterstageIO(EShLanguage language) const - { - return isPerVertexAndBuiltIn(language) || isLooseAndBuiltIn(language); - } + virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; } - // Return true if this is an interstage IO builtin - virtual bool isPerVertexAndBuiltIn(EShLanguage language) const + // Return true if this is a per-vertex built-in + virtual bool isPerVertexBuiltIn(EShLanguage language) const { - if (language == EShLangFragment) + if (getQualifier().builtIn == EbvNone || language == EShLangFragment) return false; // Any non-fragment stage @@ -1401,15 +1398,6 @@ public: } } - // Return true if this is a loose builtin - virtual bool isLooseAndBuiltIn(EShLanguage language) const - { - if (getQualifier().builtIn == EbvNone) - return false; - - return !isPerVertexAndBuiltIn(language); - } - // return true if this type contains any subtype which satisfies the given predicate. template bool contains(P predicate) const @@ -1451,10 +1439,10 @@ public: return contains([](const TType* t) { return t->isOpaque(); } ); } - // Recursively checks if the type contains an interstage IO builtin - virtual bool containsBuiltInInterstageIO(EShLanguage language) const + // Recursively checks if the type contains a built-in variable + virtual bool containsBuiltIn() const { - return contains([language](const TType* t) { return t->isBuiltInInterstageIO(language); } ); + return contains([](const TType* t) { return t->isBuiltIn(); } ); } virtual bool containsNonOpaque() const diff --git a/3rdparty/glslang/glslang/Include/intermediate.h b/3rdparty/glslang/glslang/Include/intermediate.h index 0922d125a..e289efd42 100644 --- a/3rdparty/glslang/glslang/Include/intermediate.h +++ b/3rdparty/glslang/glslang/Include/intermediate.h @@ -420,6 +420,15 @@ enum TOperator { EOpAtomicCounterIncrement, EOpAtomicCounterDecrement, EOpAtomicCounter, + EOpAtomicCounterAdd, + EOpAtomicCounterSubtract, + EOpAtomicCounterMin, + EOpAtomicCounterMax, + EOpAtomicCounterAnd, + EOpAtomicCounterOr, + EOpAtomicCounterXor, + EOpAtomicCounterExchange, + EOpAtomicCounterCompSwap, EOpAny, EOpAll, diff --git a/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp b/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp index 5cd167e04..1beff7713 100644 --- a/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp @@ -1375,9 +1375,23 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV if ((profile != EEsProfile && version >= 300) || (profile == EEsProfile && version >= 310)) { commonBuiltins.append( - "uint atomicCounterIncrement(atomic_uint x);" - "uint atomicCounterDecrement(atomic_uint x);" - "uint atomicCounter(atomic_uint x);" + "uint atomicCounterIncrement(atomic_uint);" + "uint atomicCounterDecrement(atomic_uint);" + "uint atomicCounter(atomic_uint);" + + "\n"); + } + if (profile != EEsProfile && version >= 460) { + commonBuiltins.append( + "uint atomicCounterAdd(atomic_uint, uint);" + "uint atomicCounterSubtract(atomic_uint, uint);" + "uint atomicCounterMin(atomic_uint, uint);" + "uint atomicCounterMax(atomic_uint, uint);" + "uint atomicCounterAnd(atomic_uint, uint);" + "uint atomicCounterOr(atomic_uint, uint);" + "uint atomicCounterXor(atomic_uint, uint);" + "uint atomicCounterExchange(atomic_uint, uint);" + "uint atomicCounterCompSwap(atomic_uint, uint, uint);" "\n"); } @@ -1562,7 +1576,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } - // GL_ARB_shader_group_vote + // GL_ARB_shader_group_vote if (profile != EEsProfile && version >= 430) { commonBuiltins.append( "bool anyInvocationARB(bool);" @@ -1572,6 +1586,15 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } + if (profile != EEsProfile && version >= 460) { + commonBuiltins.append( + "bool anyInvocation(bool);" + "bool allInvocations(bool);" + "bool allInvocationsEqual(bool);" + + "\n"); + } + #ifdef AMD_EXTENSIONS // GL_AMD_shader_ballot if (profile != EEsProfile && version >= 450) { @@ -3402,6 +3425,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "in int gl_DrawIDARB;" ); } + if (version >= 460) { + stageBuiltins[EShLangVertex].append( + "in int gl_BaseVertex;" + "in int gl_BaseInstance;" + "in int gl_DrawID;" + ); + } #ifdef NV_EXTENSIONS if (version >= 450) @@ -5216,16 +5246,19 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion switch(language) { case EShLangVertex: if (profile != EEsProfile) { - symbolTable.setVariableExtensions("gl_BaseVertexARB", 1, &E_GL_ARB_shader_draw_parameters); - symbolTable.setVariableExtensions("gl_BaseInstanceARB", 1, &E_GL_ARB_shader_draw_parameters); - symbolTable.setVariableExtensions("gl_DrawIDARB", 1, &E_GL_ARB_shader_draw_parameters); - - BuiltInVariable("gl_BaseVertexARB", EbvBaseVertex, symbolTable); - BuiltInVariable("gl_BaseInstanceARB", EbvBaseInstance, symbolTable); - BuiltInVariable("gl_DrawIDARB", EbvDrawId, symbolTable); - } - - if (profile != EEsProfile) { + if (version >= 440) { + symbolTable.setVariableExtensions("gl_BaseVertexARB", 1, &E_GL_ARB_shader_draw_parameters); + symbolTable.setVariableExtensions("gl_BaseInstanceARB", 1, &E_GL_ARB_shader_draw_parameters); + symbolTable.setVariableExtensions("gl_DrawIDARB", 1, &E_GL_ARB_shader_draw_parameters); + BuiltInVariable("gl_BaseVertexARB", EbvBaseVertex, symbolTable); + BuiltInVariable("gl_BaseInstanceARB", EbvBaseInstance, symbolTable); + BuiltInVariable("gl_DrawIDARB", EbvDrawId, symbolTable); + } + if (version >= 460) { + BuiltInVariable("gl_BaseVertex", EbvBaseVertex, symbolTable); + BuiltInVariable("gl_BaseInstance", EbvBaseInstance, symbolTable); + BuiltInVariable("gl_DrawID", EbvDrawId, symbolTable); + } symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot); symbolTable.setVariableExtensions("gl_SubGroupInvocationARB", 1, &E_GL_ARB_shader_ballot); symbolTable.setVariableExtensions("gl_SubGroupEqMaskARB", 1, &E_GL_ARB_shader_ballot); @@ -5249,9 +5282,11 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion // Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable); - symbolTable.setFunctionExtensions("anyInvocationARB", 1, &E_GL_ARB_shader_group_vote); - symbolTable.setFunctionExtensions("allInvocationsARB", 1, &E_GL_ARB_shader_group_vote); - symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote); + if (version >= 430) { + symbolTable.setFunctionExtensions("anyInvocationARB", 1, &E_GL_ARB_shader_group_vote); + symbolTable.setFunctionExtensions("allInvocationsARB", 1, &E_GL_ARB_shader_group_vote); + symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote); + } } #ifdef AMD_EXTENSIONS @@ -5909,6 +5944,18 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("atomicCounterDecrement", EOpAtomicCounterDecrement); symbolTable.relateToOperator("atomicCounter", EOpAtomicCounter); + if (profile != EEsProfile && version >= 460) { + symbolTable.relateToOperator("atomicCounterAdd", EOpAtomicCounterAdd); + symbolTable.relateToOperator("atomicCounterSubtract", EOpAtomicCounterSubtract); + symbolTable.relateToOperator("atomicCounterMin", EOpAtomicCounterMin); + symbolTable.relateToOperator("atomicCounterMax", EOpAtomicCounterMax); + symbolTable.relateToOperator("atomicCounterAnd", EOpAtomicCounterAnd); + symbolTable.relateToOperator("atomicCounterOr", EOpAtomicCounterOr); + symbolTable.relateToOperator("atomicCounterXor", EOpAtomicCounterXor); + symbolTable.relateToOperator("atomicCounterExchange", EOpAtomicCounterExchange); + symbolTable.relateToOperator("atomicCounterCompSwap", EOpAtomicCounterCompSwap); + } + symbolTable.relateToOperator("fma", EOpFma); symbolTable.relateToOperator("frexp", EOpFrexp); symbolTable.relateToOperator("ldexp", EOpLdexp); @@ -6051,10 +6098,16 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("readInvocationARB", EOpReadInvocation); symbolTable.relateToOperator("readFirstInvocationARB", EOpReadFirstInvocation); - symbolTable.relateToOperator("anyInvocationARB", EOpAnyInvocation); - symbolTable.relateToOperator("allInvocationsARB", EOpAllInvocations); - symbolTable.relateToOperator("allInvocationsEqualARB", EOpAllInvocationsEqual); - + if (version >= 430) { + symbolTable.relateToOperator("anyInvocationARB", EOpAnyInvocation); + symbolTable.relateToOperator("allInvocationsARB", EOpAllInvocations); + symbolTable.relateToOperator("allInvocationsEqualARB", EOpAllInvocationsEqual); + } + if (version >= 460) { + symbolTable.relateToOperator("anyInvocation", EOpAnyInvocation); + symbolTable.relateToOperator("allInvocations", EOpAllInvocations); + symbolTable.relateToOperator("allInvocationsEqual", EOpAllInvocationsEqual); + } #ifdef AMD_EXTENSIONS symbolTable.relateToOperator("minInvocationsAMD", EOpMinInvocations); symbolTable.relateToOperator("maxInvocationsAMD", EOpMaxInvocations); diff --git a/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp b/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp index 2d8ac4865..d2964e4d2 100644 --- a/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp @@ -116,7 +116,7 @@ TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& // Local mapping functions for making arrays of symbol tables.... -const int VersionCount = 16; // index range in MapVersionToIndex +const int VersionCount = 17; // index range in MapVersionToIndex int MapVersionToIndex(int version) { @@ -140,6 +140,7 @@ int MapVersionToIndex(int version) case 450: index = 14; break; case 500: index = 0; break; // HLSL case 320: index = 15; break; + case 460: index = 16; break; default: assert(0); break; } @@ -516,6 +517,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo case 430: break; case 440: break; case 450: break; + case 460: break; // unknown version default: diff --git a/3rdparty/glslang/glslang/MachineIndependent/glslang.y b/3rdparty/glslang/glslang/MachineIndependent/glslang.y index fd1566fae..cd6df7b0d 100644 --- a/3rdparty/glslang/glslang/MachineIndependent/glslang.y +++ b/3rdparty/glslang/glslang/MachineIndependent/glslang.y @@ -2872,8 +2872,10 @@ translation_unit parseContext.intermediate.setTreeRoot($$); } | translation_unit external_declaration { - $$ = parseContext.intermediate.growAggregate($1, $2); - parseContext.intermediate.setTreeRoot($$); + if ($2 != nullptr) { + $$ = parseContext.intermediate.growAggregate($1, $2); + parseContext.intermediate.setTreeRoot($$); + } } ; @@ -2884,6 +2886,11 @@ external_declaration | declaration { $$ = $1; } + | SEMICOLON { + parseContext.requireProfile($1.loc, ~EEsProfile, "extraneous semicolon"); + parseContext.profileRequires($1.loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); + $$ = nullptr; + } ; function_definition diff --git a/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp b/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp index 54a927cc9..c6bae9ffb 100644 --- a/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp @@ -730,18 +730,18 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 273 +#define YYFINAL 274 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6608 +#define YYLAST 6614 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 298 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 100 /* YYNRULES -- Number of rules. */ -#define YYNRULES 449 +#define YYNRULES 450 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 581 +#define YYNSTATES 582 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -861,7 +861,8 @@ static const yytype_uint16 yyrline[] = 2636, 2639, 2647, 2655, 2666, 2667, 2671, 2678, 2682, 2690, 2694, 2707, 2707, 2727, 2730, 2736, 2748, 2760, 2760, 2775, 2775, 2791, 2791, 2812, 2815, 2821, 2824, 2830, 2834, 2841, - 2846, 2851, 2858, 2861, 2870, 2874, 2881, 2884, 2890, 2890 + 2846, 2851, 2858, 2861, 2870, 2874, 2883, 2886, 2889, 2897, + 2897 }; #endif @@ -1003,10 +1004,10 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -522 +#define YYPACT_NINF -525 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-522))) + (!!((Yystate) == (-525))) #define YYTABLE_NINF -407 @@ -1017,65 +1018,65 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 2618, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -224, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -217, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -214, -522, -522, -522, - -522, -522, -522, -522, -261, -522, -215, -213, -184, -182, - 4254, -196, -522, -122, -522, -522, -522, -522, 3177, -522, - -522, -522, -129, -522, -522, 574, -522, -522, -90, -48, - -125, -522, 6375, -232, -522, -522, -117, -522, 4254, -522, - -522, -522, 4254, -75, -74, -522, -240, -183, -522, -522, - -522, 4759, -108, -522, -522, -522, -179, -522, -114, -175, - -522, -522, 4254, -113, -522, -216, 866, -522, -522, -522, - -522, -129, -222, -522, 5033, -193, -522, -71, -522, -158, - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, 5855, 5855, 5855, -522, -522, -522, -522, -522, -522, - -522, -227, -522, -522, -522, -102, -164, 6115, -100, -522, - 5855, -145, -199, -195, -226, -128, -124, -120, -116, -82, - -83, -225, -96, -522, 5307, -522, -59, 5855, -522, -48, - 4254, 4254, -58, 3450, -522, -522, -522, -99, -98, -522, - -87, -86, -95, 5581, -84, 5855, -88, -79, -80, -522, - -522, -191, -522, -522, -156, -522, -213, -78, -522, -522, - -522, -522, 1158, -522, -522, -522, -522, -522, -522, -108, - 5033, -190, 5033, -522, -522, 5033, 4254, -522, -57, -522, - -522, -522, -163, -522, -522, 5855, -41, -522, -522, 5855, - -73, -522, -522, -522, 5855, 5855, 5855, 5855, 5855, 5855, - 5855, 5855, 5855, 5855, 5855, 5855, 5855, 5855, 5855, 5855, - 5855, 5855, 5855, -522, -522, -522, -76, -522, -522, -522, - -522, 3718, -58, -129, -143, -522, -522, -522, -522, -522, - 1450, -522, 5855, -522, -522, -142, 5855, -178, -522, -522, - -522, 1450, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -522, 5855, 5855, -522, -522, -522, -522, 5033, - -522, -131, -522, 3986, -522, -522, -72, -77, -522, -522, - -522, -522, -522, -145, -145, -199, -199, -195, -195, -195, - -195, -226, -226, -128, -124, -120, -116, -82, -83, 5855, - -522, -522, -141, -108, -58, -522, -37, 2326, -161, -522, - -160, -522, 2886, 1450, -522, -522, -522, -522, 4485, -522, - -522, -127, -522, -522, -68, -522, -522, 2886, -70, -522, - -77, -30, 4254, -63, -66, -522, -522, 5855, 5855, -522, - -69, -61, 188, -55, 2034, -522, -54, -64, 1742, -522, - -522, -159, 5855, 1742, -70, -522, -522, 1450, 5033, -522, - -522, -522, -56, -77, -522, -522, 1450, -53, -522, -522, - -522 + 2619, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -243, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -228, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -215, -525, -525, -525, + -525, -525, -525, -525, -525, -157, -525, -216, -218, -205, + -141, 4260, -165, -525, -94, -525, -525, -525, -525, 3183, + -525, -525, -525, -117, -525, -525, 575, -525, -525, -80, + -48, -114, -525, 6381, -242, -525, -525, -113, -525, 4260, + -525, -525, -525, 4260, -75, -74, -525, -235, -190, -525, + -525, -525, 4765, -108, -525, -525, -525, -186, -525, -112, + -178, -525, -525, 4260, -115, -525, -226, 867, -525, -525, + -525, -525, -117, -229, -525, 5039, -224, -525, -71, -525, + -158, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, 5861, 5861, 5861, -525, -525, -525, -525, -525, + -525, -525, -223, -525, -525, -525, -102, -177, 6121, -100, + -525, 5861, -204, -171, -132, -221, -199, -124, -120, -111, + -84, -83, -233, -98, -525, 5313, -525, -60, 5861, -525, + -48, 4260, 4260, -59, 3456, -525, -525, -525, -99, -97, + -525, -90, -88, -96, 5587, -85, 5861, -92, -79, -81, + -525, -525, -191, -525, -525, -153, -525, -218, -78, -525, + -525, -525, -525, 1159, -525, -525, -525, -525, -525, -525, + -108, 5039, -193, 5039, -525, -525, 5039, 4260, -525, -47, + -525, -525, -525, -176, -525, -525, 5861, -42, -525, -525, + 5861, -73, -525, -525, -525, 5861, 5861, 5861, 5861, 5861, + 5861, 5861, 5861, 5861, 5861, 5861, 5861, 5861, 5861, 5861, + 5861, 5861, 5861, 5861, -525, -525, -525, -76, -525, -525, + -525, -525, 3724, -59, -117, -152, -525, -525, -525, -525, + -525, 1451, -525, 5861, -525, -525, -143, 5861, -180, -525, + -525, -525, 1451, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, 5861, 5861, -525, -525, -525, -525, + 5039, -525, -133, -525, 3992, -525, -525, -72, -77, -525, + -525, -525, -525, -525, -204, -204, -171, -171, -132, -132, + -132, -132, -221, -221, -199, -124, -120, -111, -84, -83, + 5861, -525, -525, -142, -108, -59, -525, -37, 2327, -175, + -525, -163, -525, 2892, 1451, -525, -525, -525, -525, 4491, + -525, -525, -129, -525, -525, -68, -525, -525, 2892, -70, + -525, -77, -32, 4260, -63, -66, -525, -525, 5861, 5861, + -525, -69, -61, 188, -58, 2035, -525, -56, -57, 1743, + -525, -525, -161, 5861, 1743, -70, -525, -525, 1451, 5039, + -525, -525, -525, -67, -77, -525, -525, 1451, -54, -525, + -525, -525 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1104,74 +1105,74 @@ static const yytype_uint16 yydefact[] = 365, 366, 367, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 0, 175, 369, 128, - 139, 370, 371, 372, 0, 447, 0, 448, 0, 105, - 104, 0, 116, 121, 146, 145, 143, 147, 0, 140, - 142, 126, 169, 144, 368, 0, 444, 446, 0, 0, - 0, 375, 0, 0, 93, 90, 0, 103, 0, 112, - 106, 114, 0, 115, 0, 91, 122, 0, 96, 141, - 127, 0, 170, 1, 445, 167, 0, 138, 136, 0, - 134, 373, 0, 0, 94, 0, 0, 449, 107, 111, - 113, 109, 117, 108, 0, 123, 99, 0, 97, 0, - 2, 10, 11, 4, 5, 6, 7, 8, 9, 13, - 12, 0, 0, 0, 171, 39, 38, 40, 37, 3, - 15, 33, 17, 22, 23, 0, 0, 27, 0, 41, - 0, 45, 48, 51, 56, 59, 61, 63, 65, 67, - 69, 71, 0, 31, 0, 166, 0, 0, 133, 0, - 0, 0, 0, 0, 377, 92, 95, 0, 0, 429, - 0, 0, 0, 0, 0, 0, 0, 0, 401, 410, - 414, 41, 74, 87, 0, 390, 0, 126, 393, 412, - 392, 391, 0, 394, 395, 396, 397, 398, 399, 110, - 0, 118, 0, 385, 125, 0, 0, 101, 0, 98, - 34, 35, 0, 19, 20, 0, 0, 25, 24, 0, - 175, 28, 30, 36, 0, 0, 0, 0, 0, 0, + 355, 356, 357, 358, 359, 360, 0, 175, 369, 448, + 128, 139, 370, 371, 372, 0, 447, 0, 449, 0, + 105, 104, 0, 116, 121, 146, 145, 143, 147, 0, + 140, 142, 126, 169, 144, 368, 0, 444, 446, 0, + 0, 0, 375, 0, 0, 93, 90, 0, 103, 0, + 112, 106, 114, 0, 115, 0, 91, 122, 0, 96, + 141, 127, 0, 170, 1, 445, 167, 0, 138, 136, + 0, 134, 373, 0, 0, 94, 0, 0, 450, 107, + 111, 113, 109, 117, 108, 0, 123, 99, 0, 97, + 0, 2, 10, 11, 4, 5, 6, 7, 8, 9, + 13, 12, 0, 0, 0, 171, 39, 38, 40, 37, + 3, 15, 33, 17, 22, 23, 0, 0, 27, 0, + 41, 0, 45, 48, 51, 56, 59, 61, 63, 65, + 67, 69, 71, 0, 31, 0, 166, 0, 0, 133, + 0, 0, 0, 0, 0, 377, 92, 95, 0, 0, + 429, 0, 0, 0, 0, 0, 0, 0, 0, 401, + 410, 414, 41, 74, 87, 0, 390, 0, 126, 393, + 412, 392, 391, 0, 394, 395, 396, 397, 398, 399, + 110, 0, 118, 0, 385, 125, 0, 0, 101, 0, + 98, 34, 35, 0, 19, 20, 0, 0, 25, 24, + 0, 175, 28, 30, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 72, 172, 173, 0, 168, 89, 137, - 135, 0, 0, 383, 0, 381, 376, 378, 440, 439, - 0, 431, 0, 443, 441, 0, 0, 0, 426, 427, - 400, 0, 77, 78, 80, 79, 82, 83, 84, 85, - 86, 81, 76, 0, 0, 415, 411, 413, 120, 0, - 388, 0, 124, 0, 102, 14, 0, 21, 18, 29, - 42, 43, 44, 47, 46, 49, 50, 54, 55, 52, - 53, 57, 58, 60, 62, 64, 66, 68, 70, 0, - 174, 374, 0, 384, 0, 379, 0, 0, 0, 442, - 0, 425, 0, 402, 75, 88, 119, 386, 0, 100, - 16, 0, 380, 382, 0, 434, 433, 436, 408, 421, - 419, 0, 0, 0, 0, 387, 389, 0, 0, 435, - 0, 0, 418, 0, 0, 416, 0, 0, 0, 403, - 73, 0, 437, 0, 408, 407, 409, 423, 0, 405, - 428, 404, 0, 438, 432, 417, 424, 0, 420, 430, - 422 + 0, 0, 0, 0, 72, 172, 173, 0, 168, 89, + 137, 135, 0, 0, 383, 0, 381, 376, 378, 440, + 439, 0, 431, 0, 443, 441, 0, 0, 0, 426, + 427, 400, 0, 77, 78, 80, 79, 82, 83, 84, + 85, 86, 81, 76, 0, 0, 415, 411, 413, 120, + 0, 388, 0, 124, 0, 102, 14, 0, 21, 18, + 29, 42, 43, 44, 47, 46, 49, 50, 54, 55, + 52, 53, 57, 58, 60, 62, 64, 66, 68, 70, + 0, 174, 374, 0, 384, 0, 379, 0, 0, 0, + 442, 0, 425, 0, 402, 75, 88, 119, 386, 0, + 100, 16, 0, 380, 382, 0, 434, 433, 436, 408, + 421, 419, 0, 0, 0, 0, 387, 389, 0, 0, + 435, 0, 0, 418, 0, 0, 416, 0, 0, 0, + 403, 73, 0, 437, 0, 408, 407, 409, 423, 0, + 405, 428, 404, 0, 438, 432, 417, 424, 0, 420, + 430, 422 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -522, -522, -522, -522, -522, -522, -522, -522, -522, -522, - -522, -522, -103, -522, -267, -266, -296, -270, -211, -210, - -218, -209, -208, -212, -522, -259, -522, -291, -522, -309, - -522, 5, -522, -522, -522, 6, -522, -522, -522, -40, - -34, -36, -522, -522, -498, -522, -522, -522, -522, -118, - -522, -229, -236, -522, -522, 0, -245, -522, 1, -522, - -522, -522, -335, -343, -207, -285, -379, -522, -284, -375, - -521, -321, -522, -522, -329, -328, -522, -522, -16, -447, - -275, -522, -522, -294, -522, -522, -522, -522, -522, -522, - -522, -522, -522, -522, -522, -522, -522, 2, -522, -522 + -525, -525, -525, -525, -525, -525, -525, -525, -525, -525, + -525, -525, -103, -525, -278, -274, -297, -273, -214, -211, + -210, -212, -209, -208, -525, -261, -525, -292, -525, -308, + -525, 4, -525, -525, -525, 5, -525, -525, -525, -41, + -38, -39, -525, -525, -504, -525, -525, -525, -525, -123, + -525, -230, -237, -525, -525, 0, -246, -525, 1, -525, + -525, -525, -337, -342, -207, -286, -378, -525, -285, -376, + -524, -322, -525, -525, -330, -327, -525, -525, -22, -452, + -275, -525, -525, -298, -525, -525, -525, -525, -525, -525, + -525, -525, -525, -525, -525, -525, -525, -2, -525, -525 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 319, 320, 321, 486, 322, 323, 324, 325, 326, - 327, 328, 371, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 372, 509, 373, 473, 374, - 439, 375, 226, 396, 299, 376, 228, 229, 230, 259, - 260, 261, 231, 232, 233, 234, 235, 236, 279, 280, - 237, 238, 239, 240, 276, 343, 272, 242, 243, 244, - 350, 282, 353, 354, 444, 445, 394, 481, 378, 379, - 380, 381, 461, 544, 570, 552, 553, 554, 571, 382, - 383, 384, 555, 543, 385, 556, 577, 386, 387, 522, - 450, 517, 537, 550, 551, 388, 245, 246, 247, 256 + -1, 320, 321, 322, 487, 323, 324, 325, 326, 327, + 328, 329, 372, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 373, 510, 374, 474, 375, + 440, 376, 227, 397, 300, 377, 229, 230, 231, 260, + 261, 262, 232, 233, 234, 235, 236, 237, 280, 281, + 238, 239, 240, 241, 277, 344, 273, 243, 244, 245, + 351, 283, 354, 355, 445, 446, 395, 482, 379, 380, + 381, 382, 462, 545, 571, 553, 554, 555, 572, 383, + 384, 385, 556, 544, 386, 557, 578, 387, 388, 523, + 451, 518, 538, 551, 552, 389, 246, 247, 248, 257 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1179,324 +1180,239 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 241, 262, 269, 393, 402, 225, 227, 477, 285, 277, - 447, 478, 342, 480, 523, 441, 482, 253, 250, 403, - 404, 295, 421, 422, 541, 293, 269, 271, 432, 262, - 221, 222, 223, 566, 294, 271, 411, 569, -32, 541, - 405, 248, 569, 284, 406, 271, 389, 391, 249, 419, - 420, 344, 390, 351, 455, 251, 457, 423, 424, 356, - 254, 483, 255, 433, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 344, 516, 264, 344, 417, 265, - 418, 395, 257, 472, 479, 436, 296, 345, 438, 297, - 258, 348, 298, 346, 474, 521, 487, 349, 447, 393, - 526, 393, 408, 485, 393, 538, 539, 572, 409, 474, - 266, 474, 474, 474, 398, 269, 474, 399, 489, 475, - 576, 351, 425, 426, 351, 497, 498, 499, 500, 514, - 474, 514, 515, 519, 532, 414, 415, 416, 271, 527, - 447, 528, 275, 518, 281, 474, 547, 520, 477, 546, - 493, 494, 286, 495, 496, 501, 502, 291, 292, 344, - 347, 397, 355, 427, 407, 412, 428, 351, 329, 429, - 430, 431, 434, 437, 443, 484, 448, 449, 451, 452, - 453, 456, 524, 525, 278, 458, 459, -31, 393, 578, - 460, 488, 510, -26, 534, 474, 530, 548, 513, -406, - 531, 477, 557, 558, 559, 563, 562, 564, 400, 401, - 568, 505, 351, 540, 368, 567, 503, 580, 504, 579, - 508, 506, 289, 507, 288, 252, 290, 413, 540, 533, - 263, 440, 565, 535, 574, 512, 575, 393, 270, 561, - 287, 329, 536, 549, 329, 241, 0, 274, 0, 0, - 225, 227, 283, 573, 351, 0, 560, 0, 263, 0, - 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, - 0, 0, 352, 0, 0, 0, 377, 0, 0, 0, - 0, 0, 0, 542, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 269, 0, 542, 0, - 0, 490, 491, 492, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 242, 263, 270, 394, 226, 228, 403, 478, 286, 278, + 524, 343, 448, 479, 442, 481, 254, 251, 483, 542, + 433, 296, 249, 404, 405, 272, 270, 422, 423, 263, + 294, 567, 272, 285, 542, 570, 412, 250, 272, 295, + 570, 345, -32, 345, 406, 391, 390, 392, 407, 357, + 396, 426, 427, 352, 252, 434, 456, 256, 458, 255, + 484, 258, 424, 425, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 345, 517, 415, 416, 417, 297, + 346, 480, 298, 473, 437, 299, 347, 439, 349, 409, + 486, 539, 475, 522, 350, 410, 475, 475, 488, 394, + 448, 394, 527, 540, 394, 573, 418, 265, 419, 475, + 266, 475, 420, 421, 399, 270, 577, 400, 490, 475, + 515, 352, 476, 516, 352, 498, 499, 500, 501, 475, + 515, 259, 520, 533, 222, 223, 224, 528, 267, 529, + 494, 495, 448, 475, 548, 519, 496, 497, 478, 521, + 272, 547, 276, 502, 503, 282, 287, 292, 293, 345, + 356, 398, 348, 428, 408, 413, 429, 352, 431, 330, + 435, 432, 438, 444, 430, 452, 449, 453, 450, 454, + 457, 459, 525, 526, 279, 485, 460, -31, 394, 461, + 489, 579, 511, -26, 535, 475, 531, 549, 514, -406, + 558, 478, 532, 559, 560, 564, 563, 565, 580, 401, + 402, 369, 352, 568, 504, 541, 581, 569, 505, 507, + 506, 289, 290, 508, 291, 509, 253, 441, 414, 534, + 541, 264, 566, 536, 575, 288, 513, 394, 576, 271, + 550, 562, 330, 537, 275, 330, 242, 0, 0, 0, + 226, 228, 0, 284, 352, 574, 561, 0, 0, 264, + 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, + 0, 0, 0, 353, 0, 0, 0, 378, 0, 0, + 0, 0, 0, 543, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 270, 0, 543, 0, + 0, 0, 491, 492, 493, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 353, 443, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 352, 442, 0, 352, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 377, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 352, 0, 0, 0, + 0, 0, 0, 378, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, - 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, + 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 377, 0, 0, - 0, 0, 377, 377, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 377, 0, 0, - 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 377, 0, 0, 0, 377, 0, - 0, 0, 0, 377, 0, 0, 0, 377, 0, 0, - 0, 0, 0, 0, 273, 0, 377, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 0, 0, 218, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, + 0, 0, 0, 378, 378, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, + 0, 0, 0, 271, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 378, 0, 0, 0, 378, + 0, 0, 0, 0, 378, 0, 0, 0, 378, 0, + 0, 0, 0, 0, 0, 274, 0, 378, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 358, 359, 360, 0, 361, 362, 363, + 364, 365, 366, 367, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 368, 301, + 218, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 0, 0, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 219, 220, 221, 222, 223, 224, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 357, 358, 359, 0, 360, 361, 362, 363, - 364, 365, 366, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 367, 300, 218, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 0, 0, 311, 312, 0, 0, 0, 0, 0, 0, + 0, 0, 314, 0, 0, 0, 369, 370, 0, 0, + 0, 0, 371, 316, 317, 318, 319, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, + 224, 225, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 358, 359, 360, 0, 361, + 362, 363, 364, 365, 366, 367, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 368, 301, 218, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 0, 0, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 368, 369, 0, 0, 0, - 0, 370, 315, 316, 317, 318, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 219, 220, 221, 222, 223, - 224, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 357, 358, 359, 0, 360, 361, - 362, 363, 364, 365, 366, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 367, - 300, 218, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 0, 0, 311, 312, 0, 0, 0, 0, + 0, 0, 0, 0, 314, 0, 0, 0, 369, 477, + 0, 0, 0, 0, 371, 316, 317, 318, 319, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 220, 221, + 222, 223, 224, 225, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 358, 359, 360, + 0, 361, 362, 363, 364, 365, 366, 367, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 368, 301, 218, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 0, 0, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 0, 368, 476, 0, - 0, 0, 0, 370, 315, 316, 317, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 219, 220, 221, - 222, 223, 224, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 357, 358, 359, 0, - 360, 361, 362, 363, 364, 365, 366, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 367, 300, 218, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 0, 0, 311, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, + 369, 0, 0, 0, 0, 0, 371, 316, 317, 318, + 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 220, 221, 222, 223, 224, 225, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 358, + 359, 360, 0, 361, 362, 363, 364, 365, 366, 367, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 368, 301, 218, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 0, 0, 312, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 371, 316, + 317, 318, 319, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 220, 221, 222, 223, 224, 225, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 358, 359, 360, 0, 361, 362, 363, 364, 365, + 366, 367, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 368, 301, 218, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, + 0, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 313, 0, 0, 0, 368, - 0, 0, 0, 0, 0, 370, 315, 316, 317, 318, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 219, - 220, 221, 222, 223, 224, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 357, 358, - 359, 0, 360, 361, 362, 363, 364, 365, 366, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 367, 300, 218, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 0, 0, 311, 312, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 0, 286, 0, 0, 0, 0, 0, 370, 315, 316, - 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 219, 220, 221, 222, 223, 224, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 357, 358, 359, 0, 360, 361, 362, 363, 364, 365, - 366, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 367, 300, 218, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 0, 0, - 311, 312, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 370, - 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 219, 220, 221, 222, 223, 224, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 0, 300, 218, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 0, 0, 311, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 370, 315, 316, 317, 318, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 219, 220, 221, 222, 223, - 224, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 0, - 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 0, 0, 0, 219, 220, 221, - 222, 223, 224, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 0, 300, 218, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 0, 0, 311, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 315, 316, 317, 318, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 219, 220, 221, 222, 223, + 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 371, 316, 317, 318, 319, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 220, 221, 222, 223, 224, 225, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 15, 16, 17, 18, 19, @@ -1519,68 +1435,100 @@ static const yytype_int16 yytable[] = 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 0, 267, - 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 210, 211, 212, 213, 214, 215, 216, 217, 0, 301, + 218, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 0, 0, 312, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 371, 316, 317, 318, 319, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 220, 221, 222, 223, + 224, 225, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 268, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 219, 220, 221, 222, - 223, 0, 0, 0, 0, 0, 0, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 0, 0, 218, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 219, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 220, 221, + 222, 223, 224, 225, 0, 0, 0, 0, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 0, 301, 218, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 0, 0, 312, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 316, 317, + 318, 319, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 220, 221, 222, 223, 224, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 0, 268, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 446, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 0, 0, 0, 0, 0, 219, - 220, 221, 222, 223, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 0, - 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 511, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 269, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 0, 0, 0, 219, 220, 221, - 222, 223, 0, 14, 15, 16, 17, 18, 19, 20, + 12, 13, 220, 221, 222, 223, 224, 0, 0, 0, + 0, 0, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, @@ -1604,9 +1552,9 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 529, 1, 2, 3, + 0, 0, 0, 0, 0, 0, 447, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 0, 0, 0, 0, 0, 219, 220, 221, 222, 223, + 0, 0, 0, 0, 0, 220, 221, 222, 223, 224, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, @@ -1628,12 +1576,93 @@ static const yytype_int16 yytable[] = 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 0, 0, 218, 0, 0, - 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 512, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, + 0, 0, 0, 220, 221, 222, 223, 224, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 0, 0, 218, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 530, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, + 0, 220, 221, 222, 223, 224, 0, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 0, 0, 218, 0, 0, 0, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, + 221, 222, 223, 224, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 0, 0, 0, 0, 0, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 0, 301, 218, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 0, 0, 312, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, + 393, 546, 0, 0, 0, 0, 0, 316, 317, 318, + 319, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 219, 220, 221, 222, 223, 50, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 0, 0, 0, 0, 0, 73, 74, 75, 76, 77, 78, 79, 80, 81, @@ -1650,12 +1679,12 @@ static const yytype_int16 yytable[] = 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 0, 300, 218, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, - 0, 311, 312, 0, 0, 0, 0, 0, 0, 0, + 212, 213, 214, 215, 216, 217, 0, 301, 218, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 0, + 0, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 0, 0, 0, 392, 545, 0, 0, 0, 0, - 0, 315, 316, 317, 318, 4, 5, 6, 7, 8, + 314, 0, 0, 315, 0, 0, 0, 0, 0, 0, + 0, 316, 317, 318, 319, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, @@ -1678,11 +1707,11 @@ static const yytype_int16 yytable[] = 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 0, 300, 218, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 0, 0, 311, 312, 0, 0, 0, + 0, 301, 218, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 0, 0, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 313, 0, 0, 314, 0, 0, - 0, 0, 0, 0, 0, 315, 316, 317, 318, 4, + 0, 0, 0, 0, 314, 0, 0, 0, 393, 0, + 0, 0, 0, 0, 0, 316, 317, 318, 319, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, @@ -1705,12 +1734,12 @@ static const yytype_int16 yytable[] = 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 0, 300, 218, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 0, 0, 311, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, - 0, 0, 392, 0, 0, 0, 0, 0, 0, 315, - 316, 317, 318, 4, 5, 6, 7, 8, 9, 10, + 214, 215, 216, 217, 0, 301, 218, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 0, 0, 312, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, + 0, 436, 0, 0, 0, 0, 0, 0, 0, 316, + 317, 318, 319, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, @@ -1732,12 +1761,12 @@ static const yytype_int16 yytable[] = 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 0, 300, - 218, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 0, 0, 311, 312, 0, 0, 0, 0, 0, + 210, 211, 212, 213, 214, 215, 216, 217, 0, 301, + 218, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 0, 0, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 313, 0, 0, 435, 0, 0, 0, 0, - 0, 0, 0, 315, 316, 317, 318, 4, 5, 6, + 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 455, 316, 317, 318, 319, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, @@ -1760,408 +1789,296 @@ static const yytype_int16 yytable[] = 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 0, 300, 218, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 0, 0, 311, 312, 0, + 216, 217, 0, 301, 218, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 0, 0, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 454, 315, 316, 317, - 318, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 0, 0, 0, 0, - 0, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 0, 300, 218, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, - 0, 311, 312, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 314, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 316, 317, 318, + 319, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 315, 316, 317, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 0, 0, 0, 0, - 0, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 410, 0, 300, 218, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 0, - 0, 311, 312, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 0, 0, 0, 0, 0, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 411, 0, 301, 218, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 0, 0, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 315, 316, 317, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 0, 0, 0, 0, - 0, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 0, 0, 218 + 0, 0, 0, 0, 0, 0, 314, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 316, 317, 318, + 319, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 0, 0, 0, 0, 0, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 0, 0, 218 }; static const yytype_int16 yycheck[] = { - 0, 230, 238, 294, 313, 0, 0, 382, 253, 57, - 353, 390, 271, 392, 461, 350, 395, 232, 232, 246, - 247, 266, 248, 249, 522, 265, 262, 267, 253, 258, - 291, 292, 293, 554, 274, 267, 327, 558, 265, 537, - 267, 265, 563, 275, 271, 267, 291, 292, 265, 244, - 245, 267, 274, 282, 363, 269, 365, 283, 284, 275, - 275, 396, 275, 288, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 267, 450, 272, 267, 277, 275, - 279, 274, 266, 274, 274, 344, 269, 266, 347, 272, - 272, 266, 275, 272, 272, 273, 405, 272, 441, 390, - 479, 392, 266, 266, 395, 266, 266, 266, 272, 272, - 232, 272, 272, 272, 272, 351, 272, 275, 409, 275, - 567, 350, 250, 251, 353, 421, 422, 423, 424, 272, - 272, 272, 275, 275, 275, 280, 281, 282, 267, 270, - 483, 272, 232, 452, 269, 272, 273, 456, 523, 528, - 417, 418, 269, 419, 420, 425, 426, 232, 232, 267, - 274, 232, 275, 287, 266, 265, 286, 396, 271, 285, - 252, 254, 268, 232, 232, 232, 275, 275, 265, 265, - 275, 265, 473, 474, 232, 273, 265, 265, 479, 568, - 270, 232, 268, 266, 231, 272, 268, 265, 443, 269, - 509, 576, 232, 266, 270, 266, 275, 19, 311, 312, - 274, 429, 441, 522, 269, 269, 427, 270, 428, 275, - 432, 430, 262, 431, 258, 224, 262, 330, 537, 514, - 230, 349, 553, 517, 563, 442, 564, 528, 238, 548, - 256, 344, 517, 537, 347, 245, -1, 245, -1, -1, - 245, 245, 252, 562, 483, -1, 547, -1, 258, -1, - -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 568, -1, -1, - -1, -1, 282, -1, -1, -1, 286, -1, -1, -1, - -1, -1, -1, 522, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 542, -1, 537, -1, - -1, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 0, 231, 239, 295, 0, 0, 314, 383, 254, 57, + 462, 272, 354, 391, 351, 393, 232, 232, 396, 523, + 253, 267, 265, 246, 247, 267, 263, 248, 249, 259, + 265, 555, 267, 275, 538, 559, 328, 265, 267, 274, + 564, 267, 265, 267, 267, 274, 292, 293, 271, 275, + 274, 250, 251, 283, 269, 288, 364, 275, 366, 275, + 397, 266, 283, 284, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 267, 451, 280, 281, 282, 269, + 266, 274, 272, 274, 345, 275, 272, 348, 266, 266, + 266, 266, 272, 273, 272, 272, 272, 272, 406, 391, + 442, 393, 480, 266, 396, 266, 277, 272, 279, 272, + 275, 272, 244, 245, 272, 352, 568, 275, 410, 272, + 272, 351, 275, 275, 354, 422, 423, 424, 425, 272, + 272, 272, 275, 275, 291, 292, 293, 270, 232, 272, + 418, 419, 484, 272, 273, 453, 420, 421, 524, 457, + 267, 529, 232, 426, 427, 269, 269, 232, 232, 267, + 275, 232, 274, 287, 266, 265, 286, 397, 252, 272, + 268, 254, 232, 232, 285, 265, 275, 265, 275, 275, + 265, 273, 474, 475, 232, 232, 265, 265, 480, 270, + 232, 569, 268, 266, 231, 272, 268, 265, 444, 269, + 232, 577, 510, 266, 270, 266, 275, 19, 275, 312, + 313, 269, 442, 269, 428, 523, 270, 274, 429, 431, + 430, 259, 263, 432, 263, 433, 225, 350, 331, 515, + 538, 231, 554, 518, 564, 257, 443, 529, 565, 239, + 538, 549, 345, 518, 246, 348, 246, -1, -1, -1, + 246, 246, -1, 253, 484, 563, 548, -1, -1, 259, + -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 569, -1, -1, + -1, -1, -1, 283, -1, -1, -1, 287, -1, -1, + -1, -1, -1, 523, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 543, -1, 538, -1, + -1, -1, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 351, 352, -1, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 350, 351, -1, 353, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 382, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 396, -1, -1, -1, + -1, -1, -1, 383, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 441, -1, -1, -1, -1, -1, -1, -1, -1, - 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 461, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 442, -1, -1, -1, -1, -1, -1, -1, + -1, 451, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 483, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 484, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 517, -1, -1, - -1, -1, 522, 523, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 537, -1, -1, - -1, -1, 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 554, -1, -1, -1, 558, -1, - -1, -1, -1, 563, -1, -1, -1, 567, -1, -1, - -1, -1, -1, -1, 0, -1, 576, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, -1, -1, 233, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, + -1, -1, -1, 523, 524, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 538, -1, + -1, -1, -1, 543, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 555, -1, -1, -1, 559, + -1, -1, -1, -1, 564, -1, -1, -1, 568, -1, + -1, -1, -1, -1, -1, 0, -1, 577, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 289, 290, 291, 292, 293, 294, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, -1, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 289, 290, 291, 292, 293, 294, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, -1, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, + -1, -1, 265, -1, -1, -1, 269, 270, -1, -1, + -1, -1, 275, 276, 277, 278, 279, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 289, 290, 291, 292, + 293, 294, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, -1, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 265, -1, -1, -1, 269, 270, -1, -1, -1, - -1, 275, 276, 277, 278, 279, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 289, 290, 291, 292, 293, - 294, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, -1, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, -1, -1, 246, 247, -1, -1, -1, -1, + -1, -1, -1, -1, 265, -1, -1, -1, 269, 270, + -1, -1, -1, -1, 275, 276, 277, 278, 279, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 289, 290, + 291, 292, 293, 294, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 265, -1, -1, -1, 269, 270, -1, - -1, -1, -1, 275, 276, 277, 278, 279, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 289, 290, 291, - 292, 293, 294, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, -1, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, -1, -1, 246, 247, -1, -1, + -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, + 269, -1, -1, -1, -1, -1, 275, 276, 277, 278, + 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 289, 290, 291, 292, 293, 294, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, -1, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, -1, -1, 246, + 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, + -1, -1, 269, -1, -1, -1, -1, -1, 275, 276, + 277, 278, 279, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 289, 290, 291, 292, 293, 294, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, -1, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, + -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 265, -1, -1, -1, 269, - -1, -1, -1, -1, -1, 275, 276, 277, 278, 279, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, - 290, 291, 292, 293, 294, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, -1, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, -1, -1, 246, 247, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, - -1, 269, -1, -1, -1, -1, -1, 275, 276, 277, - 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 289, 290, 291, 292, 293, 294, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, -1, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, -1, -1, - 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 275, - 276, 277, 278, 279, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 289, 290, 291, 292, 293, 294, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, -1, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 275, 276, 277, 278, 279, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 289, 290, 291, 292, 293, - 294, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, - -1, 233, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, -1, -1, -1, -1, -1, 289, 290, 291, - 292, 293, 294, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, -1, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 276, 277, 278, 279, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 289, 290, 291, 292, 293, + 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 275, 276, 277, 278, 279, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 289, 290, 291, 292, 293, 294, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, 28, 29, 30, 31, 32, @@ -2185,67 +2102,99 @@ static const yytype_int16 yycheck[] = 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, 232, - 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 275, 276, 277, 278, 279, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 289, 290, 291, 292, + 293, 294, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 275, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 289, 290, 291, 292, - 293, -1, -1, -1, -1, -1, -1, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, -1, -1, 233, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 275, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 289, 290, + 291, 292, 293, 294, -1, -1, -1, -1, -1, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, -1, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, -1, -1, 246, 247, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 265, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 276, 277, + 278, 279, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 289, 290, 291, 292, 293, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, -1, 232, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 270, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, -1, -1, -1, -1, -1, 289, - 290, 291, 292, 293, -1, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, - -1, 233, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 270, 3, + -1, -1, -1, -1, -1, -1, -1, -1, 275, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, -1, -1, -1, -1, -1, 289, 290, 291, - 292, 293, -1, 27, 28, 29, 30, 31, 32, 33, + 14, 15, 289, 290, 291, 292, 293, -1, -1, -1, + -1, -1, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, @@ -2293,12 +2242,93 @@ static const yytype_int16 yycheck[] = 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, -1, -1, 233, -1, -1, - -1, 6, 7, 8, 9, 10, 11, 12, 13, 14, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 270, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, + -1, -1, -1, 289, 290, 291, 292, 293, -1, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, -1, -1, 233, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 270, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, + -1, 289, 290, 291, 292, 293, -1, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, -1, -1, 233, -1, -1, -1, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, + 290, 291, 292, 293, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, -1, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, -1, -1, 246, 247, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, + 269, 270, -1, -1, -1, -1, -1, 276, 277, 278, + 279, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 289, 290, 291, 292, 293, 63, 64, + -1, -1, -1, -1, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, @@ -2319,7 +2349,7 @@ static const yytype_int16 yycheck[] = 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 265, -1, -1, -1, 269, 270, -1, -1, -1, -1, + 265, -1, -1, 268, -1, -1, -1, -1, -1, -1, -1, 276, 277, 278, 279, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, @@ -2346,7 +2376,7 @@ static const yytype_int16 yycheck[] = -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 265, -1, -1, 268, -1, -1, + -1, -1, -1, -1, 265, -1, -1, -1, 269, -1, -1, -1, -1, -1, -1, 276, 277, 278, 279, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -2374,7 +2404,7 @@ static const yytype_int16 yycheck[] = 237, 238, 239, 240, 241, 242, 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, -1, - -1, -1, 269, -1, -1, -1, -1, -1, -1, 276, + -1, 268, -1, -1, -1, -1, -1, -1, -1, 276, 277, 278, 279, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, @@ -2401,8 +2431,8 @@ static const yytype_int16 yycheck[] = 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 265, -1, -1, 268, -1, -1, -1, -1, - -1, -1, -1, 276, 277, 278, 279, 6, 7, 8, + -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 275, 276, 277, 278, 279, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, @@ -2428,83 +2458,56 @@ static const yytype_int16 yycheck[] = 229, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 265, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 275, 276, 277, 278, - 279, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, -1, -1, -1, -1, - -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, -1, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, - -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 265, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 276, 277, 278, + 279, -1, -1, -1, -1, -1, -1, -1, -1, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 265, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 276, 277, 278, 279, -1, -1, -1, -1, -1, - -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, -1, -1, -1, -1, - -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, -1, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, -1, - -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, -1, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, -1, -1, 246, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 265, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 276, 277, 278, 279, -1, -1, -1, -1, -1, - -1, -1, -1, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, -1, -1, -1, -1, - -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, -1, -1, 233 + -1, -1, -1, -1, -1, -1, 265, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 276, 277, 278, + 279, -1, -1, -1, -1, -1, -1, -1, -1, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, -1, -1, 233 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2532,44 +2535,44 @@ static const yytype_uint16 yystos[] = 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 233, 289, - 290, 291, 292, 293, 294, 329, 330, 333, 334, 335, - 336, 340, 341, 342, 343, 344, 345, 348, 349, 350, - 351, 353, 355, 356, 357, 394, 395, 396, 265, 265, - 232, 269, 356, 232, 275, 275, 397, 266, 272, 337, - 338, 339, 349, 353, 272, 275, 232, 232, 275, 350, - 353, 267, 354, 0, 395, 232, 352, 57, 232, 346, - 347, 269, 359, 353, 275, 354, 269, 376, 338, 337, - 339, 232, 232, 265, 274, 354, 269, 272, 275, 332, - 232, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 246, 247, 265, 268, 276, 277, 278, 279, 299, - 300, 301, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 353, 267, 266, 272, 274, 266, 272, - 358, 349, 353, 360, 361, 275, 275, 16, 17, 18, - 20, 21, 22, 23, 24, 25, 26, 231, 269, 270, - 275, 310, 323, 325, 327, 329, 333, 353, 366, 367, - 368, 369, 377, 378, 379, 382, 385, 386, 393, 354, - 274, 354, 269, 325, 364, 274, 331, 232, 272, 275, - 310, 310, 327, 246, 247, 267, 271, 266, 266, 272, - 230, 325, 265, 310, 280, 281, 282, 277, 279, 244, - 245, 248, 249, 283, 284, 250, 251, 287, 286, 285, - 252, 254, 253, 288, 268, 268, 323, 232, 323, 328, - 347, 360, 353, 232, 362, 363, 270, 361, 275, 275, - 388, 265, 265, 275, 275, 327, 265, 327, 273, 265, - 270, 370, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 274, 326, 272, 275, 270, 367, 364, 274, - 364, 365, 364, 360, 232, 266, 302, 327, 232, 325, - 310, 310, 310, 312, 312, 313, 313, 314, 314, 314, - 314, 315, 315, 316, 317, 318, 319, 320, 321, 324, - 268, 270, 362, 354, 272, 275, 367, 389, 327, 275, - 327, 273, 387, 377, 325, 325, 364, 270, 272, 270, - 268, 327, 275, 363, 231, 366, 378, 390, 266, 266, - 327, 342, 349, 381, 371, 270, 364, 273, 265, 381, - 391, 392, 373, 374, 375, 380, 383, 232, 266, 270, - 325, 327, 275, 266, 19, 369, 368, 269, 274, 368, - 372, 376, 266, 327, 372, 373, 377, 384, 364, 275, - 270 + 223, 224, 225, 226, 227, 228, 229, 230, 233, 275, + 289, 290, 291, 292, 293, 294, 329, 330, 333, 334, + 335, 336, 340, 341, 342, 343, 344, 345, 348, 349, + 350, 351, 353, 355, 356, 357, 394, 395, 396, 265, + 265, 232, 269, 356, 232, 275, 275, 397, 266, 272, + 337, 338, 339, 349, 353, 272, 275, 232, 232, 275, + 350, 353, 267, 354, 0, 395, 232, 352, 57, 232, + 346, 347, 269, 359, 353, 275, 354, 269, 376, 338, + 337, 339, 232, 232, 265, 274, 354, 269, 272, 275, + 332, 232, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 246, 247, 265, 268, 276, 277, 278, 279, + 299, 300, 301, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 353, 267, 266, 272, 274, 266, + 272, 358, 349, 353, 360, 361, 275, 275, 16, 17, + 18, 20, 21, 22, 23, 24, 25, 26, 231, 269, + 270, 275, 310, 323, 325, 327, 329, 333, 353, 366, + 367, 368, 369, 377, 378, 379, 382, 385, 386, 393, + 354, 274, 354, 269, 325, 364, 274, 331, 232, 272, + 275, 310, 310, 327, 246, 247, 267, 271, 266, 266, + 272, 230, 325, 265, 310, 280, 281, 282, 277, 279, + 244, 245, 248, 249, 283, 284, 250, 251, 287, 286, + 285, 252, 254, 253, 288, 268, 268, 323, 232, 323, + 328, 347, 360, 353, 232, 362, 363, 270, 361, 275, + 275, 388, 265, 265, 275, 275, 327, 265, 327, 273, + 265, 270, 370, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 274, 326, 272, 275, 270, 367, 364, + 274, 364, 365, 364, 360, 232, 266, 302, 327, 232, + 325, 310, 310, 310, 312, 312, 313, 313, 314, 314, + 314, 314, 315, 315, 316, 317, 318, 319, 320, 321, + 324, 268, 270, 362, 354, 272, 275, 367, 389, 327, + 275, 327, 273, 387, 377, 325, 325, 364, 270, 272, + 270, 268, 327, 275, 363, 231, 366, 378, 390, 266, + 266, 327, 342, 349, 381, 371, 270, 364, 273, 265, + 381, 391, 392, 373, 374, 375, 380, 383, 232, 266, + 270, 325, 327, 275, 266, 19, 369, 368, 269, 274, + 368, 372, 376, 266, 327, 372, 373, 377, 384, 364, + 275, 270 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -2619,7 +2622,8 @@ static const yytype_uint16 yyr1[] = 376, 376, 377, 377, 378, 378, 379, 380, 380, 381, 381, 383, 382, 384, 384, 385, 385, 387, 386, 388, 386, 389, 386, 390, 390, 391, 391, 392, 392, 393, - 393, 393, 393, 393, 394, 394, 395, 395, 397, 396 + 393, 393, 393, 393, 394, 394, 395, 395, 395, 397, + 396 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2669,7 +2673,8 @@ static const yytype_uint8 yyr2[] = 2, 3, 1, 2, 1, 2, 5, 3, 1, 1, 4, 0, 8, 0, 1, 3, 2, 0, 6, 0, 8, 0, 7, 1, 1, 1, 0, 2, 3, 2, - 2, 2, 3, 2, 1, 2, 1, 1, 0, 3 + 2, 2, 3, 2, 1, 2, 1, 1, 1, 0, + 3 }; @@ -3356,7 +3361,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); } -#line 3360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3365 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 3: @@ -3364,7 +3369,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3373 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 4: @@ -3372,7 +3377,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } -#line 3376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 5: @@ -3381,7 +3386,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } -#line 3385 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3390 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 6: @@ -3390,7 +3395,7 @@ yyreduce: parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); } -#line 3394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 7: @@ -3399,7 +3404,7 @@ yyreduce: parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); } -#line 3403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 8: @@ -3410,7 +3415,7 @@ yyreduce: (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); #endif } -#line 3414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 9: @@ -3421,7 +3426,7 @@ yyreduce: (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); #endif } -#line 3425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 10: @@ -3429,7 +3434,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } -#line 3433 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 11: @@ -3438,7 +3443,7 @@ yyreduce: parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); } -#line 3442 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 12: @@ -3449,7 +3454,7 @@ yyreduce: (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true); #endif } -#line 3453 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 13: @@ -3457,7 +3462,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } -#line 3461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 14: @@ -3467,7 +3472,7 @@ yyreduce: if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } -#line 3471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 15: @@ -3475,7 +3480,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 16: @@ -3483,7 +3488,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); } -#line 3487 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3492 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 17: @@ -3491,7 +3496,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 18: @@ -3499,7 +3504,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); } -#line 3503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 19: @@ -3509,7 +3514,7 @@ yyreduce: parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); } -#line 3513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 20: @@ -3519,7 +3524,7 @@ yyreduce: parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); } -#line 3523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 21: @@ -3528,7 +3533,7 @@ yyreduce: parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3532 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 22: @@ -3537,7 +3542,7 @@ yyreduce: (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); delete (yyvsp[0].interm).function; } -#line 3541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 23: @@ -3545,7 +3550,7 @@ yyreduce: { (yyval.interm) = (yyvsp[0].interm); } -#line 3549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3554 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 24: @@ -3554,7 +3559,7 @@ yyreduce: (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 3558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 25: @@ -3563,7 +3568,7 @@ yyreduce: (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 3567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 26: @@ -3571,7 +3576,7 @@ yyreduce: { (yyval.interm) = (yyvsp[-1].interm); } -#line 3575 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 27: @@ -3579,7 +3584,7 @@ yyreduce: { (yyval.interm) = (yyvsp[0].interm); } -#line 3583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 28: @@ -3591,7 +3596,7 @@ yyreduce: (yyval.interm).function = (yyvsp[-1].interm).function; (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); } -#line 3595 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 29: @@ -3603,7 +3608,7 @@ yyreduce: (yyval.interm).function = (yyvsp[-2].interm).function; (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); } -#line 3607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 30: @@ -3611,7 +3616,7 @@ yyreduce: { (yyval.interm) = (yyvsp[-1].interm); } -#line 3615 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 31: @@ -3621,7 +3626,7 @@ yyreduce: (yyval.interm).intermNode = 0; (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } -#line 3625 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 32: @@ -3653,7 +3658,7 @@ yyreduce: (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); } } -#line 3657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3662 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 33: @@ -3664,7 +3669,7 @@ yyreduce: if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } -#line 3668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3673 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 34: @@ -3673,7 +3678,7 @@ yyreduce: parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); } -#line 3677 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 35: @@ -3682,7 +3687,7 @@ yyreduce: parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); } -#line 3686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 36: @@ -3703,38 +3708,38 @@ yyreduce: (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } -#line 3707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 37: #line 472 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } -#line 3713 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 38: #line 473 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } -#line 3719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 39: #line 474 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } -#line 3725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 40: #line 475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } -#line 3732 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 41: #line 481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3743 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 42: @@ -3744,7 +3749,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3753 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 43: @@ -3754,7 +3759,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 44: @@ -3765,13 +3770,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 45: #line 501 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 46: @@ -3781,7 +3786,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3785 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3790 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 47: @@ -3791,13 +3796,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3800 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 48: #line 515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 49: @@ -3808,7 +3813,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 50: @@ -3819,13 +3824,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 51: #line 531 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 52: @@ -3835,7 +3840,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 3839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3844 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 53: @@ -3845,7 +3850,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 3849 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 54: @@ -3855,7 +3860,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 3859 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 55: @@ -3865,13 +3870,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 3869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 56: #line 555 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3880 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 57: @@ -3884,7 +3889,7 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 3888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3893 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 58: @@ -3897,13 +3902,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 3901 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 59: #line 575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 60: @@ -3914,13 +3919,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3923 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 61: #line 585 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 62: @@ -3931,13 +3936,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 63: #line 595 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 64: @@ -3948,13 +3953,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 3952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 65: #line 605 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 66: @@ -3964,13 +3969,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 3968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 67: #line 614 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 68: @@ -3980,13 +3985,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 3984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 69: #line 623 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 3995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 70: @@ -3996,13 +4001,13 @@ yyreduce: if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } -#line 4000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 71: #line 632 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4011 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 72: @@ -4010,7 +4015,7 @@ yyreduce: { ++parseContext.controlFlowNestingLevel; } -#line 4014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 73: @@ -4027,13 +4032,13 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } -#line 4031 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 74: #line 651 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4037 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 75: @@ -4050,7 +4055,7 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } } -#line 4054 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 76: @@ -4059,7 +4064,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAssign; } -#line 4063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 77: @@ -4068,7 +4073,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpMulAssign; } -#line 4072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 78: @@ -4077,7 +4082,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpDivAssign; } -#line 4081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: @@ -4087,7 +4092,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpModAssign; } -#line 4091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: @@ -4096,7 +4101,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAddAssign; } -#line 4100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4105 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: @@ -4105,7 +4110,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpSubAssign; } -#line 4109 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4114 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: @@ -4114,7 +4119,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } -#line 4118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: @@ -4123,7 +4128,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } -#line 4127 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4132 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: @@ -4132,7 +4137,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; } -#line 4136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: @@ -4141,7 +4146,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } -#line 4145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: @@ -4150,7 +4155,7 @@ yyreduce: parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } -#line 4154 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: @@ -4158,7 +4163,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: @@ -4171,7 +4176,7 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } -#line 4175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: @@ -4180,7 +4185,7 @@ yyreduce: parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 4184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: @@ -4190,7 +4195,7 @@ yyreduce: (yyval.interm.intermNode) = 0; // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } -#line 4194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: @@ -4200,7 +4205,7 @@ yyreduce: (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; } -#line 4204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: @@ -4213,7 +4218,7 @@ yyreduce: parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } -#line 4217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: @@ -4222,7 +4227,7 @@ yyreduce: parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); (yyval.interm.intermNode) = 0; } -#line 4226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: @@ -4231,7 +4236,7 @@ yyreduce: parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } -#line 4235 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: @@ -4240,7 +4245,7 @@ yyreduce: parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); (yyval.interm.intermNode) = 0; } -#line 4244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: @@ -4250,7 +4255,7 @@ yyreduce: parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); (yyval.interm.intermNode) = 0; } -#line 4254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 97: @@ -4260,7 +4265,7 @@ yyreduce: parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } -#line 4264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 98: @@ -4271,13 +4276,13 @@ yyreduce: parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); (yyval.interm.intermNode) = 0; } -#line 4275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: #line 785 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 4281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: @@ -4291,7 +4296,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[-5].interm.type).loc; (yyval.interm).typeList = (yyvsp[-1].interm.typeList); } -#line 4295 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4300 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: @@ -4300,7 +4305,7 @@ yyreduce: (yyval.interm.identifierList) = new TIdentifierList; (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 4304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: @@ -4309,7 +4314,7 @@ yyreduce: (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } -#line 4313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: @@ -4318,7 +4323,7 @@ yyreduce: (yyval.interm).function = (yyvsp[-1].interm.function); (yyval.interm).loc = (yyvsp[0].lex).loc; } -#line 4322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 104: @@ -4326,7 +4331,7 @@ yyreduce: { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 4330 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4335 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 105: @@ -4334,7 +4339,7 @@ yyreduce: { (yyval.interm.function) = (yyvsp[0].interm.function); } -#line 4338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 106: @@ -4347,7 +4352,7 @@ yyreduce: else delete (yyvsp[0].interm).param.type; } -#line 4351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 107: @@ -4369,7 +4374,7 @@ yyreduce: (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); } } -#line 4373 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 108: @@ -4388,7 +4393,7 @@ yyreduce: function = new TFunction((yyvsp[-1].lex).string, type); (yyval.interm.function) = function; } -#line 4392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 109: @@ -4408,7 +4413,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).param = param; } -#line 4412 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 110: @@ -4430,7 +4435,7 @@ yyreduce: (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).param = param; } -#line 4434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: @@ -4446,7 +4451,7 @@ yyreduce: parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } -#line 4450 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: @@ -4458,7 +4463,7 @@ yyreduce: parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 4462 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: @@ -4473,7 +4478,7 @@ yyreduce: parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } -#line 4477 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4482 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: @@ -4485,7 +4490,7 @@ yyreduce: parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 4489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: @@ -4496,7 +4501,7 @@ yyreduce: if ((yyvsp[0].interm.type).arraySizes) parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); } -#line 4500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: @@ -4504,7 +4509,7 @@ yyreduce: { (yyval.interm) = (yyvsp[0].interm); } -#line 4508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: @@ -4513,7 +4518,7 @@ yyreduce: (yyval.interm) = (yyvsp[-2].interm); parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); } -#line 4517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: @@ -4522,7 +4527,7 @@ yyreduce: (yyval.interm) = (yyvsp[-3].interm); parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); } -#line 4526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: @@ -4532,7 +4537,7 @@ yyreduce: TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } -#line 4536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: @@ -4542,7 +4547,7 @@ yyreduce: TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } -#line 4546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: @@ -4552,7 +4557,7 @@ yyreduce: (yyval.interm).intermNode = 0; parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); } -#line 4556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: @@ -4562,7 +4567,7 @@ yyreduce: (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); } -#line 4566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: @@ -4572,7 +4577,7 @@ yyreduce: (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); } -#line 4576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 124: @@ -4582,7 +4587,7 @@ yyreduce: TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } -#line 4586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 125: @@ -4592,7 +4597,7 @@ yyreduce: TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } -#line 4596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 126: @@ -4608,7 +4613,7 @@ yyreduce: parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } -#line 4612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 127: @@ -4637,7 +4642,7 @@ yyreduce: (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } -#line 4641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 128: @@ -4648,7 +4653,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.invariant = true; } -#line 4652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 129: @@ -4660,7 +4665,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.smooth = true; } -#line 4664 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 130: @@ -4672,7 +4677,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.flat = true; } -#line 4676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4681 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: @@ -4684,7 +4689,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nopersp = true; } -#line 4688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: @@ -4698,7 +4703,7 @@ yyreduce: (yyval.interm.type).qualifier.explicitInterp = true; #endif } -#line 4702 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: @@ -4706,7 +4711,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[-1].interm.type); } -#line 4710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: @@ -4714,7 +4719,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: @@ -4724,7 +4729,7 @@ yyreduce: (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } -#line 4728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: @@ -4733,7 +4738,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); } -#line 4737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: @@ -4742,7 +4747,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[-2].lex).loc); parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); } -#line 4746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: @@ -4752,7 +4757,7 @@ yyreduce: TString strShared("shared"); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); } -#line 4756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: @@ -4763,7 +4768,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.noContraction = true; } -#line 4767 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: @@ -4771,7 +4776,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4775 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: @@ -4784,7 +4789,7 @@ yyreduce: (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } -#line 4788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4793 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: @@ -4792,7 +4797,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: @@ -4800,7 +4805,7 @@ yyreduce: { (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: @@ -4809,7 +4814,7 @@ yyreduce: parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4813 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: @@ -4818,7 +4823,7 @@ yyreduce: // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4822 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4827 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: @@ -4827,7 +4832,7 @@ yyreduce: // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4831 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 147: @@ -4836,7 +4841,7 @@ yyreduce: // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } -#line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 148: @@ -4845,7 +4850,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant } -#line 4849 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 149: @@ -4862,7 +4867,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 4866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4871 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 150: @@ -4881,7 +4886,7 @@ yyreduce: else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 4885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: @@ -4891,7 +4896,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqInOut; } -#line 4895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: @@ -4902,7 +4907,7 @@ yyreduce: // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqIn; } -#line 4906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4911 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: @@ -4913,7 +4918,7 @@ yyreduce: // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqOut; } -#line 4917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: @@ -4925,7 +4930,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.centroid = true; } -#line 4929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: @@ -4936,7 +4941,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.patch = true; } -#line 4940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4945 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: @@ -4946,7 +4951,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.sample = true; } -#line 4950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: @@ -4956,7 +4961,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 4960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: @@ -4966,7 +4971,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqBuffer; } -#line 4970 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: @@ -4979,7 +4984,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } -#line 4983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: @@ -4988,7 +4993,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.coherent = true; } -#line 4992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 4997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: @@ -4997,7 +5002,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.volatil = true; } -#line 5001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: @@ -5006,7 +5011,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.restrict = true; } -#line 5010 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: @@ -5015,7 +5020,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.readonly = true; } -#line 5019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: @@ -5024,7 +5029,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.writeonly = true; } -#line 5028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5033 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: @@ -5035,7 +5040,7 @@ yyreduce: parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[0].lex).loc); } -#line 5039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: @@ -5046,7 +5051,7 @@ yyreduce: parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[-3].lex).loc); } -#line 5050 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: @@ -5054,7 +5059,7 @@ yyreduce: { // TODO } -#line 5058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 168: @@ -5064,7 +5069,7 @@ yyreduce: // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } -#line 5068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5073 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 169: @@ -5073,7 +5078,7 @@ yyreduce: (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } -#line 5077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 170: @@ -5084,7 +5089,7 @@ yyreduce: (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; } -#line 5088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 171: @@ -5094,7 +5099,7 @@ yyreduce: (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } -#line 5098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 172: @@ -5107,7 +5112,7 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 5111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 173: @@ -5116,7 +5121,7 @@ yyreduce: (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } -#line 5120 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5125 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: @@ -5128,7 +5133,7 @@ yyreduce: parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 5132 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: @@ -5137,7 +5142,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } -#line 5141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: @@ -5146,7 +5151,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 5150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: @@ -5156,7 +5161,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } -#line 5160 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5165 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: @@ -5168,7 +5173,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat16; #endif } -#line 5172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: @@ -5177,7 +5182,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 5181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: @@ -5187,7 +5192,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } -#line 5191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: @@ -5197,7 +5202,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; } -#line 5201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: @@ -5207,7 +5212,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; } -#line 5211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: @@ -5219,7 +5224,7 @@ yyreduce: (yyval.interm.type).basicType = EbtInt16; #endif } -#line 5223 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: @@ -5231,7 +5236,7 @@ yyreduce: (yyval.interm.type).basicType = EbtUint16; #endif } -#line 5235 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: @@ -5240,7 +5245,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; } -#line 5244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: @@ -5250,7 +5255,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } -#line 5254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: @@ -5260,7 +5265,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } -#line 5264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: @@ -5270,7 +5275,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } -#line 5274 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: @@ -5281,7 +5286,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } -#line 5285 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5290 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: @@ -5292,7 +5297,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } -#line 5296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: @@ -5303,7 +5308,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } -#line 5307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: @@ -5316,7 +5321,7 @@ yyreduce: (yyval.interm.type).setVector(2); #endif } -#line 5320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: @@ -5329,7 +5334,7 @@ yyreduce: (yyval.interm.type).setVector(3); #endif } -#line 5333 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: @@ -5342,7 +5347,7 @@ yyreduce: (yyval.interm.type).setVector(4); #endif } -#line 5346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: @@ -5352,7 +5357,7 @@ yyreduce: (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(2); } -#line 5356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: @@ -5362,7 +5367,7 @@ yyreduce: (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(3); } -#line 5366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: @@ -5372,7 +5377,7 @@ yyreduce: (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(4); } -#line 5376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: @@ -5382,7 +5387,7 @@ yyreduce: (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } -#line 5386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: @@ -5392,7 +5397,7 @@ yyreduce: (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } -#line 5396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: @@ -5402,7 +5407,7 @@ yyreduce: (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } -#line 5406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: @@ -5413,7 +5418,7 @@ yyreduce: (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(2); } -#line 5417 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5422 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: @@ -5424,7 +5429,7 @@ yyreduce: (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(3); } -#line 5428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5433 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: @@ -5435,7 +5440,7 @@ yyreduce: (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(4); } -#line 5439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: @@ -5448,7 +5453,7 @@ yyreduce: (yyval.interm.type).setVector(2); #endif } -#line 5452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: @@ -5461,7 +5466,7 @@ yyreduce: (yyval.interm.type).setVector(3); #endif } -#line 5465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5470 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: @@ -5474,7 +5479,7 @@ yyreduce: (yyval.interm.type).setVector(4); #endif } -#line 5478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5483 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: @@ -5485,7 +5490,7 @@ yyreduce: (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } -#line 5489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: @@ -5496,7 +5501,7 @@ yyreduce: (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } -#line 5500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: @@ -5507,7 +5512,7 @@ yyreduce: (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } -#line 5511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: @@ -5518,7 +5523,7 @@ yyreduce: (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(2); } -#line 5522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5527 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: @@ -5529,7 +5534,7 @@ yyreduce: (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(3); } -#line 5533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: @@ -5540,7 +5545,7 @@ yyreduce: (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(4); } -#line 5544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: @@ -5553,7 +5558,7 @@ yyreduce: (yyval.interm.type).setVector(2); #endif } -#line 5557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 214: @@ -5566,7 +5571,7 @@ yyreduce: (yyval.interm.type).setVector(3); #endif } -#line 5570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5575 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 215: @@ -5579,7 +5584,7 @@ yyreduce: (yyval.interm.type).setVector(4); #endif } -#line 5583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 216: @@ -5589,7 +5594,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 5593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5598 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 217: @@ -5599,7 +5604,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 5603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 218: @@ -5609,7 +5614,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 5613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 219: @@ -5619,7 +5624,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } -#line 5623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 220: @@ -5629,7 +5634,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } -#line 5633 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 221: @@ -5639,7 +5644,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } -#line 5643 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 222: @@ -5649,7 +5654,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } -#line 5653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 223: @@ -5659,7 +5664,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } -#line 5663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 224: @@ -5669,7 +5674,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } -#line 5673 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 225: @@ -5679,7 +5684,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } -#line 5683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 226: @@ -5689,7 +5694,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } -#line 5693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 227: @@ -5699,7 +5704,7 @@ yyreduce: (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } -#line 5703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: @@ -5710,7 +5715,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 5714 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: @@ -5721,7 +5726,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 5725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 230: @@ -5732,7 +5737,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 5736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: @@ -5743,7 +5748,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 5747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: @@ -5754,7 +5759,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } -#line 5758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5763 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: @@ -5765,7 +5770,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } -#line 5769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: @@ -5776,7 +5781,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } -#line 5780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5785 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: @@ -5787,7 +5792,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 5791 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: @@ -5798,7 +5803,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } -#line 5802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5807 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: @@ -5809,7 +5814,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } -#line 5813 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: @@ -5820,7 +5825,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } -#line 5824 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: @@ -5831,7 +5836,7 @@ yyreduce: (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 5835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: @@ -5844,7 +5849,7 @@ yyreduce: (yyval.interm.type).setMatrix(2, 2); #endif } -#line 5848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: @@ -5857,7 +5862,7 @@ yyreduce: (yyval.interm.type).setMatrix(3, 3); #endif } -#line 5861 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: @@ -5870,7 +5875,7 @@ yyreduce: (yyval.interm.type).setMatrix(4, 4); #endif } -#line 5874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: @@ -5883,7 +5888,7 @@ yyreduce: (yyval.interm.type).setMatrix(2, 2); #endif } -#line 5887 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 244: @@ -5896,7 +5901,7 @@ yyreduce: (yyval.interm.type).setMatrix(2, 3); #endif } -#line 5900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 245: @@ -5909,7 +5914,7 @@ yyreduce: (yyval.interm.type).setMatrix(2, 4); #endif } -#line 5913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: @@ -5922,7 +5927,7 @@ yyreduce: (yyval.interm.type).setMatrix(3, 2); #endif } -#line 5926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5931 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: @@ -5935,7 +5940,7 @@ yyreduce: (yyval.interm.type).setMatrix(3, 3); #endif } -#line 5939 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5944 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: @@ -5948,7 +5953,7 @@ yyreduce: (yyval.interm.type).setMatrix(3, 4); #endif } -#line 5952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: @@ -5961,7 +5966,7 @@ yyreduce: (yyval.interm.type).setMatrix(4, 2); #endif } -#line 5965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5970 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 250: @@ -5974,7 +5979,7 @@ yyreduce: (yyval.interm.type).setMatrix(4, 3); #endif } -#line 5978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5983 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 251: @@ -5987,7 +5992,7 @@ yyreduce: (yyval.interm.type).setMatrix(4, 4); #endif } -#line 5991 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 5996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: @@ -5997,7 +6002,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAtomicUint; } -#line 6001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: @@ -6007,7 +6012,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } -#line 6011 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 254: @@ -6017,7 +6022,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } -#line 6021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 255: @@ -6027,7 +6032,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } -#line 6031 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: @@ -6037,7 +6042,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } -#line 6041 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: @@ -6047,7 +6052,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } -#line 6051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: @@ -6057,7 +6062,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } -#line 6061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: @@ -6067,7 +6072,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } -#line 6071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 260: @@ -6077,7 +6082,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } -#line 6081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: @@ -6087,7 +6092,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } -#line 6091 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: @@ -6097,7 +6102,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } -#line 6101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 263: @@ -6107,7 +6112,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } -#line 6111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: @@ -6117,7 +6122,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } -#line 6121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: @@ -6127,7 +6132,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } -#line 6131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 266: @@ -6137,7 +6142,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D); } -#line 6141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: @@ -6147,7 +6152,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D); } -#line 6151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: @@ -6157,7 +6162,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd3D); } -#line 6161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: @@ -6167,7 +6172,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube); } -#line 6171 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 270: @@ -6177,7 +6182,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } -#line 6181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: @@ -6187,7 +6192,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } -#line 6191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: @@ -6197,7 +6202,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } -#line 6201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 273: @@ -6207,7 +6212,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D); } -#line 6211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 274: @@ -6217,7 +6222,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D); } -#line 6221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 275: @@ -6227,7 +6232,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd3D); } -#line 6231 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 276: @@ -6237,7 +6242,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube); } -#line 6241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 277: @@ -6247,7 +6252,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } -#line 6251 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: @@ -6257,7 +6262,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } -#line 6261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: @@ -6267,7 +6272,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } -#line 6271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: @@ -6277,7 +6282,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } -#line 6281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: @@ -6287,7 +6292,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } -#line 6291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: @@ -6297,7 +6302,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdRect); } -#line 6301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 283: @@ -6307,7 +6312,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdRect); } -#line 6311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 284: @@ -6317,7 +6322,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); } -#line 6321 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: @@ -6327,7 +6332,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); } -#line 6331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: @@ -6337,7 +6342,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); } -#line 6341 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: @@ -6347,7 +6352,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); } -#line 6351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: @@ -6357,7 +6362,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); } -#line 6361 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 289: @@ -6367,7 +6372,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); } -#line 6371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 290: @@ -6377,7 +6382,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); } -#line 6381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: @@ -6387,7 +6392,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); } -#line 6391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: @@ -6397,7 +6402,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); } -#line 6401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: @@ -6407,7 +6412,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(false); } -#line 6411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 294: @@ -6417,7 +6422,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(true); } -#line 6421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 295: @@ -6427,7 +6432,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); } -#line 6431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 296: @@ -6437,7 +6442,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } -#line 6441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 297: @@ -6447,7 +6452,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } -#line 6451 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 298: @@ -6457,7 +6462,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } -#line 6461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 299: @@ -6467,7 +6472,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); } -#line 6471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 300: @@ -6477,7 +6482,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } -#line 6481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 301: @@ -6487,7 +6492,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); } -#line 6491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 302: @@ -6497,7 +6502,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); } -#line 6501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 303: @@ -6507,7 +6512,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } -#line 6511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 304: @@ -6517,7 +6522,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } -#line 6521 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 305: @@ -6527,7 +6532,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } -#line 6531 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 306: @@ -6537,7 +6542,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); } -#line 6541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 307: @@ -6547,7 +6552,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } -#line 6551 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 308: @@ -6557,7 +6562,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } -#line 6561 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 309: @@ -6567,7 +6572,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); } -#line 6571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 310: @@ -6577,7 +6582,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } -#line 6581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 311: @@ -6587,7 +6592,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } -#line 6591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 312: @@ -6597,7 +6602,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } -#line 6601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 313: @@ -6607,7 +6612,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); } -#line 6611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 314: @@ -6617,7 +6622,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } -#line 6621 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 315: @@ -6627,7 +6632,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } -#line 6631 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 316: @@ -6637,7 +6642,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); } -#line 6641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 317: @@ -6647,7 +6652,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); } -#line 6651 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 318: @@ -6657,7 +6662,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); } -#line 6661 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 319: @@ -6667,7 +6672,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); } -#line 6671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 320: @@ -6677,7 +6682,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); } -#line 6681 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 321: @@ -6687,7 +6692,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); } -#line 6691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 322: @@ -6697,7 +6702,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); } -#line 6701 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 323: @@ -6707,7 +6712,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); } -#line 6711 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 324: @@ -6717,7 +6722,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); } -#line 6721 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 325: @@ -6727,7 +6732,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); } -#line 6731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 326: @@ -6737,7 +6742,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); } -#line 6741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 327: @@ -6747,7 +6752,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); } -#line 6751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 328: @@ -6757,7 +6762,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); } -#line 6761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 329: @@ -6767,7 +6772,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); } -#line 6771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 330: @@ -6777,7 +6782,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); } -#line 6781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 331: @@ -6787,7 +6792,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); } -#line 6791 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 332: @@ -6797,7 +6802,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); } -#line 6801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: @@ -6807,7 +6812,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); } -#line 6811 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6816 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 334: @@ -6817,7 +6822,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); } -#line 6821 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 335: @@ -6827,7 +6832,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); } -#line 6831 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 336: @@ -6837,7 +6842,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); } -#line 6841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 337: @@ -6847,7 +6852,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); } -#line 6851 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 338: @@ -6857,7 +6862,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); } -#line 6861 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 339: @@ -6867,7 +6872,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); } -#line 6871 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 340: @@ -6877,7 +6882,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); } -#line 6881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 341: @@ -6887,7 +6892,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); } -#line 6891 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 342: @@ -6897,7 +6902,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); } -#line 6901 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 343: @@ -6907,7 +6912,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); } -#line 6911 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 344: @@ -6917,7 +6922,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); } -#line 6921 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 345: @@ -6927,7 +6932,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); } -#line 6931 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 346: @@ -6937,7 +6942,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); } -#line 6941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 347: @@ -6947,7 +6952,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); } -#line 6951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 348: @@ -6957,7 +6962,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); } -#line 6961 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 349: @@ -6967,7 +6972,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); } -#line 6971 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 350: @@ -6977,7 +6982,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); } -#line 6981 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 351: @@ -6987,7 +6992,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); } -#line 6991 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 6996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 352: @@ -6997,7 +7002,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); } -#line 7001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 353: @@ -7007,7 +7012,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); } -#line 7011 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 354: @@ -7017,7 +7022,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); } -#line 7021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 355: @@ -7027,7 +7032,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); } -#line 7031 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 356: @@ -7037,7 +7042,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); } -#line 7041 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 357: @@ -7047,7 +7052,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); } -#line 7051 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 358: @@ -7057,7 +7062,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); } -#line 7061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 359: @@ -7067,7 +7072,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); } -#line 7071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 360: @@ -7077,7 +7082,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); } -#line 7081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 361: @@ -7088,7 +7093,7 @@ yyreduce: (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } -#line 7092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 362: @@ -7099,7 +7104,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } -#line 7103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 363: @@ -7110,7 +7115,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } -#line 7114 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 364: @@ -7121,7 +7126,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } -#line 7125 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 365: @@ -7132,7 +7137,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } -#line 7136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 366: @@ -7143,7 +7148,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } -#line 7147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7152 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 367: @@ -7154,7 +7159,7 @@ yyreduce: (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } -#line 7158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7163 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 368: @@ -7164,7 +7169,7 @@ yyreduce: (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } -#line 7168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 369: @@ -7182,7 +7187,7 @@ yyreduce: } else parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } -#line 7186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 370: @@ -7192,7 +7197,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } -#line 7196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7201 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 371: @@ -7202,7 +7207,7 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); } -#line 7206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7211 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 372: @@ -7212,13 +7217,13 @@ yyreduce: (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); } -#line 7216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 373: #line 2440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 7222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7227 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 374: @@ -7234,13 +7239,13 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 7238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 375: #line 2451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 7244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 376: @@ -7252,7 +7257,7 @@ yyreduce: (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 7256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 377: @@ -7260,7 +7265,7 @@ yyreduce: { (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } -#line 7264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 378: @@ -7275,7 +7280,7 @@ yyreduce: (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } -#line 7279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7284 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 379: @@ -7298,7 +7303,7 @@ yyreduce: (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); } } -#line 7302 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 380: @@ -7324,7 +7329,7 @@ yyreduce: (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); } } -#line 7328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7333 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 381: @@ -7333,7 +7338,7 @@ yyreduce: (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 7337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 382: @@ -7341,7 +7346,7 @@ yyreduce: { (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } -#line 7345 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7350 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 383: @@ -7351,7 +7356,7 @@ yyreduce: (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); } -#line 7355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 384: @@ -7364,7 +7369,7 @@ yyreduce: (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[0].interm).arraySizes); } -#line 7368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7373 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 385: @@ -7372,7 +7377,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 7376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 386: @@ -7383,7 +7388,7 @@ yyreduce: parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); } -#line 7387 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 387: @@ -7394,7 +7399,7 @@ yyreduce: parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } -#line 7398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 388: @@ -7402,7 +7407,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } -#line 7406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 389: @@ -7410,73 +7415,73 @@ yyreduce: { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } -#line 7414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 390: #line 2572 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7420 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 391: #line 2576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 392: #line 2577 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7432 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7437 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 393: #line 2583 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7443 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 394: #line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 395: #line 2585 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7450 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7455 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 396: #line 2586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7461 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 397: #line 2587 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7462 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 398: #line 2588 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7473 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 399: #line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 400: #line 2593 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 7480 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 401: @@ -7485,7 +7490,7 @@ yyreduce: parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } -#line 7489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 402: @@ -7494,7 +7499,7 @@ yyreduce: parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 7498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 403: @@ -7504,19 +7509,19 @@ yyreduce: (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); } -#line 7508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 404: #line 2610 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7514 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 405: #line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 406: @@ -7524,7 +7529,7 @@ yyreduce: { ++parseContext.controlFlowNestingLevel; } -#line 7528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 407: @@ -7533,7 +7538,7 @@ yyreduce: --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7537 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7542 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 408: @@ -7543,7 +7548,7 @@ yyreduce: ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7552 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 409: @@ -7554,7 +7559,7 @@ yyreduce: --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 410: @@ -7562,7 +7567,7 @@ yyreduce: { (yyval.interm.intermNode) = 0; } -#line 7566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7571 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 411: @@ -7572,7 +7577,7 @@ yyreduce: (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); } -#line 7576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 412: @@ -7585,7 +7590,7 @@ yyreduce: (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 7589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7594 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 413: @@ -7598,19 +7603,19 @@ yyreduce: } else (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } -#line 7602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7607 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 414: #line 2666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } -#line 7608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 415: #line 2667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } -#line 7614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 416: @@ -7619,7 +7624,7 @@ yyreduce: parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); } -#line 7623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 417: @@ -7628,7 +7633,7 @@ yyreduce: (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } -#line 7632 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 418: @@ -7637,7 +7642,7 @@ yyreduce: (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 7641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 419: @@ -7646,7 +7651,7 @@ yyreduce: (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); } -#line 7650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7655 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 420: @@ -7661,7 +7666,7 @@ yyreduce: else (yyval.interm.intermTypedNode) = 0; } -#line 7665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7670 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 421: @@ -7674,7 +7679,7 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 7678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 422: @@ -7688,7 +7693,7 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7692 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 423: @@ -7696,7 +7701,7 @@ yyreduce: { (yyval.interm.intermNode) = 0; } -#line 7700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 424: @@ -7704,7 +7709,7 @@ yyreduce: { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7713 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 425: @@ -7721,7 +7726,7 @@ yyreduce: (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } -#line 7725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7730 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 426: @@ -7735,7 +7740,7 @@ yyreduce: else (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } -#line 7739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 427: @@ -7748,7 +7753,7 @@ yyreduce: ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7752 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 428: @@ -7760,7 +7765,7 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7764 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 429: @@ -7770,7 +7775,7 @@ yyreduce: ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 430: @@ -7786,7 +7791,7 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7790 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 431: @@ -7797,7 +7802,7 @@ yyreduce: ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 432: @@ -7814,7 +7819,7 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 433: @@ -7822,7 +7827,7 @@ yyreduce: { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7831 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 434: @@ -7830,7 +7835,7 @@ yyreduce: { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 435: @@ -7838,7 +7843,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 7842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 436: @@ -7846,7 +7851,7 @@ yyreduce: { (yyval.interm.intermTypedNode) = 0; } -#line 7850 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 437: @@ -7855,7 +7860,7 @@ yyreduce: (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } -#line 7859 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 438: @@ -7864,7 +7869,7 @@ yyreduce: (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } -#line 7868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7873 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 439: @@ -7874,7 +7879,7 @@ yyreduce: parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); } -#line 7878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7883 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 440: @@ -7884,7 +7889,7 @@ yyreduce: parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); } -#line 7888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7893 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 441: @@ -7896,7 +7901,7 @@ yyreduce: if (parseContext.inMain) parseContext.postEntryPointReturn = true; } -#line 7900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 442: @@ -7904,7 +7909,7 @@ yyreduce: { (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } -#line 7908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 443: @@ -7913,7 +7918,7 @@ yyreduce: parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); } -#line 7917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 444: @@ -7922,45 +7927,57 @@ yyreduce: (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7931 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 445: #line 2874 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); - parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); + if ((yyvsp[0].interm.intermNode) != nullptr) { + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); + parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); + } } -#line 7935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 446: -#line 2881 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7943 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 447: -#line 2884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2886 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7951 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 448: -#line 2890 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2889 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + { + parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon"); + parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); + (yyval.interm.intermNode) = nullptr; + } +#line 7968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 449: +#line 2897 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); } -#line 7960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 449: -#line 2894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 450: +#line 2901 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) @@ -7976,11 +7993,11 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 7980 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 7984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 8001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -8208,5 +8225,5 @@ yyreturn: #endif return yyresult; } -#line 2911 "MachineIndependent/glslang.y" /* yacc.c:1906 */ +#line 2918 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/3rdparty/glslang/glslang/MachineIndependent/intermOut.cpp b/3rdparty/glslang/glslang/MachineIndependent/intermOut.cpp index ba7e0f59f..479f15d8d 100644 --- a/3rdparty/glslang/glslang/MachineIndependent/intermOut.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/intermOut.cpp @@ -682,6 +682,16 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpAtomicExchange: out.debug << "AtomicExchange"; break; case EOpAtomicCompSwap: out.debug << "AtomicCompSwap"; break; + case EOpAtomicCounterAdd: out.debug << "AtomicCounterAdd"; break; + case EOpAtomicCounterSubtract: out.debug << "AtomicCounterSubtract"; break; + case EOpAtomicCounterMin: out.debug << "AtomicCounterMin"; break; + case EOpAtomicCounterMax: out.debug << "AtomicCounterMax"; break; + case EOpAtomicCounterAnd: out.debug << "AtomicCounterAnd"; break; + case EOpAtomicCounterOr: out.debug << "AtomicCounterOr"; break; + case EOpAtomicCounterXor: out.debug << "AtomicCounterXor"; break; + case EOpAtomicCounterExchange: out.debug << "AtomicCounterExchange"; break; + case EOpAtomicCounterCompSwap: out.debug << "AtomicCounterCompSwap"; break; + case EOpImageQuerySize: out.debug << "imageQuerySize"; break; case EOpImageQuerySamples: out.debug << "imageQuerySamples"; break; case EOpImageLoad: out.debug << "imageLoad"; break; diff --git a/3rdparty/glslang/gtests/AST.FromFile.cpp b/3rdparty/glslang/gtests/AST.FromFile.cpp index 5e3061385..ed6a13e85 100644 --- a/3rdparty/glslang/gtests/AST.FromFile.cpp +++ b/3rdparty/glslang/gtests/AST.FromFile.cpp @@ -151,6 +151,8 @@ INSTANTIATE_TEST_CASE_P( "450.tese", "450.frag", "450.comp", + "460.frag", + "460.vert", "dce.frag", "atomic_uint.frag", "aggOps.frag", diff --git a/3rdparty/glslang/gtests/Spv.FromFile.cpp b/3rdparty/glslang/gtests/Spv.FromFile.cpp index dfad30c72..86d5bbab1 100644 --- a/3rdparty/glslang/gtests/Spv.FromFile.cpp +++ b/3rdparty/glslang/gtests/Spv.FromFile.cpp @@ -360,6 +360,9 @@ INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_CASE_P( Glsl, CompileOpenGLToSpirvTest, ::testing::ValuesIn(std::vector({ + "spv.460.frag", + "spv.460.vert", + "spv.460.comp", "spv.atomic.comp", "spv.glFragColor.frag", "spv.specConst.vert", diff --git a/3rdparty/glslang/hlsl/hlslParseHelper.cpp b/3rdparty/glslang/hlsl/hlslParseHelper.cpp index 10ab88c9c..e684fd114 100755 --- a/3rdparty/glslang/hlsl/hlslParseHelper.cpp +++ b/3rdparty/glslang/hlsl/hlslParseHelper.cpp @@ -61,8 +61,6 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int forwardCompatible, messages), annotationNestingLevel(0), inputPatch(nullptr), - builtInIoIndex(nullptr), - builtInIoBase(nullptr), nextInLocation(0), nextOutLocation(0), sourceEntryPointName(sourceEntryPointName), entryPointFunction(nullptr), @@ -842,15 +840,13 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, else { // at least one of base and index is variable... - if (base->getAsSymbolNode() && (wasFlattened(base) || shouldFlatten(base->getType()))) { + if (base->getAsSymbolNode() && wasFlattened(base)) { if (index->getQualifier().storage != EvqConst) error(loc, "Invalid variable index to flattened array", base->getAsSymbolNode()->getName().c_str(), ""); result = flattenAccess(base, indexValue); flattened = (result != base); } else { - splitAccessArray(loc, base, index); - if (index->getQualifier().storage == EvqConst) { if (base->getType().isImplicitlySizedArray()) updateImplicitArraySize(loc, base, indexValue); @@ -1060,21 +1056,15 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt } } if (fieldFound) { - if (base->getAsSymbolNode() && (wasFlattened(base) || shouldFlatten(base->getType()))) { + if (base->getAsSymbolNode() && wasFlattened(base)) { result = flattenAccess(base, member); } else { - // Update the base and member to access if this was a split structure. - result = splitAccessStruct(loc, base, member); - fields = base->getType().getStruct(); - - if (result == nullptr) { - if (base->getType().getQualifier().storage == EvqConst) - result = intermediate.foldDereference(base, member, loc); - else { - TIntermTyped* index = intermediate.addConstantUnion(member, loc); - result = intermediate.addIndex(EOpIndexDirectStruct, base, index, loc); - result->setType(*(*fields)[member].type); - } + if (base->getType().getQualifier().storage == EvqConst) + result = intermediate.foldDereference(base, member, loc); + else { + TIntermTyped* index = intermediate.addConstantUnion(member, loc); + result = intermediate.addIndex(EOpIndexDirectStruct, base, index, loc); + result->setType(*(*fields)[member].type); } } } else @@ -1109,40 +1099,17 @@ bool HlslParseContext::isBuiltInMethod(const TSourceLoc&, TIntermTyped* base, co return false; } -// Split the type of the given node into two structs: -// 1. interstage IO -// 2. everything else -// IO members are put into the ioStruct. The type is modified to remove them. -void HlslParseContext::split(TIntermTyped* node) -{ - if (node == nullptr) - return; - - TIntermSymbol* symNode = node->getAsSymbolNode(); - - if (symNode == nullptr) - return; - - // Create a new variable: - TType& splitType = split(*symNode->getType().clone(), symNode->getName()); - - splitIoVars[symNode->getId()] = makeInternalVariable(symNode->getName(), splitType); -} - -// Split the type of the given variable into two structs: +// Split a type into +// 1. a struct of non-I/O members +// 2. a collection of flattened I/O variables void HlslParseContext::split(const TVariable& variable) { - const TType& type = variable.getType(); - - TString name = variable.getName(); - // Create a new variable: - TType& splitType = split(*type.clone(), name); - + TType& splitType = split(*variable.getType().clone(), variable.getName()); splitIoVars[variable.getUniqueId()] = makeInternalVariable(variable.getName(), splitType); } -// Recursive implementation of split(const TVariable& variable). +// Recursive implementation of split(). // Returns reference to the modified type. TType& HlslParseContext::split(TType& type, TString name, const TType* outerStructType) { @@ -1159,39 +1126,32 @@ TType& HlslParseContext::split(TType& type, TString name, const TType* outerStru // We can ignore arrayness: it's uninvolved. if (type.isStruct()) { TTypeList* userStructure = type.getWritableStruct(); + for (auto ioType = userStructure->begin(); ioType != userStructure->end(); ) { + if (ioType->type->getQualifier().builtIn != EbvNone) { + // split out built-in interstage IO + const TType& memberType = *ioType->type; + TVariable* ioVar = makeInternalVariable(name + (name.empty() ? "" : "_") + memberType.getFieldName(), + memberType); - // Get iterator to (now at end) set of builtin interstage IO members - const auto firstIo = std::stable_partition(userStructure->begin(), userStructure->end(), - [this](const TTypeLoc& t) { - return !t.type->isBuiltInInterstageIO(language); - }); + if (arraySizes) + ioVar->getWritableType().newArraySizes(*arraySizes); - // Move those to the builtin IO. However, we also propagate arrayness (just one level is handled - // now) to this variable. - for (auto ioType = firstIo; ioType != userStructure->end(); ++ioType) { - const TType& memberType = *ioType->type; - TVariable* ioVar = makeInternalVariable(name + (name.empty() ? "" : "_") + memberType.getFieldName(), - memberType); + fixBuiltInIoType(ioVar->getWritableType()); - if (arraySizes) - ioVar->getWritableType().newArraySizes(*arraySizes); + interstageBuiltInIo[tInterstageIoData(memberType, *outerStructType)] = ioVar; - fixBuiltInIoType(ioVar->getWritableType()); + // Merge qualifier from the user structure + mergeQualifiers(ioVar->getWritableType().getQualifier(), outerStructType->getQualifier()); - interstageBuiltInIo[tInterstageIoData(memberType, *outerStructType)] = ioVar; - - // Merge qualifier from the user structure - mergeQualifiers(ioVar->getWritableType().getQualifier(), outerStructType->getQualifier()); + // Erase the IO vars from the user structure. + ioType = userStructure->erase(ioType); + } else { + split(*ioType->type, + name + (name.empty() ? "" : "_") + ioType->type->getFieldName(), + outerStructType); + ++ioType; + } } - - // Erase the IO vars from the user structure. - userStructure->erase(firstIo, userStructure->end()); - - // Recurse further into the members. - for (unsigned int i = 0; i < userStructure->size(); ++i) - split(*(*userStructure)[i].type, - name + (name.empty() ? "" : "_") + (*userStructure)[i].type->getFieldName(), - outerStructType); } return type; @@ -1207,7 +1167,7 @@ bool HlslParseContext::shouldFlatten(const TType& type) const } // Top level variable flattening: construct data -void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) +void HlslParseContext::flatten(const TVariable& variable) { const TType& type = variable.getType(); @@ -1216,7 +1176,7 @@ void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) type.getQualifier().layoutLocation))); // the item is a map pair, so first->second is the TFlattenData itself. - flatten(loc, variable, type, entry.first->second, ""); + flatten(variable, type, entry.first->second, ""); } // Recursively flatten the given variable at the provided type, building the flattenData as we go. @@ -1246,15 +1206,15 @@ void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) // // so the 4th flattened member in traversal order is ours. // -int HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable, const TType& type, +int HlslParseContext::flatten(const TVariable& variable, const TType& type, TFlattenData& flattenData, TString name) { // If something is an arrayed struct, the array flattener will recursively call flatten() // to then flatten the struct, so this is an "if else": we don't do both. if (type.isArray()) - return flattenArray(loc, variable, type, flattenData, name); + return flattenArray(variable, type, flattenData, name); else if (type.isStruct()) - return flattenStruct(loc, variable, type, flattenData, name); + return flattenStruct(variable, type, flattenData, name); else { assert(0); // should never happen return -1; @@ -1263,8 +1223,7 @@ int HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable, // Add a single flattened member to the flattened data being tracked for the composite // Returns true for the final flattening level. -int HlslParseContext::addFlattenedMember(const TSourceLoc& loc, - const TVariable& variable, const TType& type, TFlattenData& flattenData, +int HlslParseContext::addFlattenedMember(const TVariable& variable, const TType& type, TFlattenData& flattenData, const TString& memberName, bool track) { if (isFinalFlattening(type)) { @@ -1297,7 +1256,7 @@ int HlslParseContext::addFlattenedMember(const TSourceLoc& loc, return static_cast(flattenData.offsets.size())-1; // location of the member reference } else { // Further recursion required - return flatten(loc, variable, type, flattenData, memberName); + return flatten(variable, type, flattenData, memberName); } } @@ -1305,7 +1264,7 @@ int HlslParseContext::addFlattenedMember(const TSourceLoc& loc, // equivalent set of individual variables. // // Assumes shouldFlatten() or equivalent was called first. -int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType& type, +int HlslParseContext::flattenStruct(const TVariable& variable, const TType& type, TFlattenData& flattenData, TString name) { assert(type.isStruct()); @@ -1321,7 +1280,7 @@ int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& vari TType& dereferencedType = *members[member].type; const TString memberName = name + (name.empty() ? "" : ".") + dereferencedType.getFieldName(); - const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, memberName, false); + const int mpos = addFlattenedMember(variable, dereferencedType, flattenData, memberName, false); flattenData.offsets[pos++] = mpos; } @@ -1332,13 +1291,10 @@ int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& vari // equivalent set of individual variables. // // Assumes shouldFlatten() or equivalent was called first. -int HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& variable, const TType& type, +int HlslParseContext::flattenArray(const TVariable& variable, const TType& type, TFlattenData& flattenData, TString name) { - assert(type.isArray()); - - if (type.isImplicitlySizedArray()) - error(loc, "cannot flatten implicitly sized array", variable.getName().c_str(), ""); + assert(type.isArray() && !type.isImplicitlySizedArray()); const int size = type.getOuterArraySize(); const TType dereferencedType(type, 0); @@ -1354,7 +1310,7 @@ int HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& varia for (int element=0; element < size; ++element) { char elementNumBuf[20]; // sufficient for MAXINT snprintf(elementNumBuf, sizeof(elementNumBuf)-1, "[%d]", element); - const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, + const int mpos = addFlattenedMember(variable, dereferencedType, flattenData, name + elementNumBuf, true); flattenData.offsets[pos++] = mpos; @@ -1367,25 +1323,23 @@ int HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& varia bool HlslParseContext::wasFlattened(const TIntermTyped* node) const { return node != nullptr && node->getAsSymbolNode() != nullptr && - wasFlattened(node->getAsSymbolNode()->getId()); + wasFlattened(node->getAsSymbolNode()->getId()); } // Return true if we have split this structure bool HlslParseContext::wasSplit(const TIntermTyped* node) const { return node != nullptr && node->getAsSymbolNode() != nullptr && - wasSplit(node->getAsSymbolNode()->getId()); + wasSplit(node->getAsSymbolNode()->getId()); } // Turn an access into an aggregate that was flattened to instead be // an access to the individual variable the member was flattened to. -// Assumes shouldFlatten() or equivalent was called first. -// Also assumes that initFlattening() and finalizeFlattening() bracket the usage. +// Assumes wasFlattened() or equivalent was called first. TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member) { const TType dereferencedType(base->getType(), member); // dereferenced type const TIntermSymbol& symbolNode = *base->getAsSymbolNode(); - TIntermTyped* flattened = flattenAccess(symbolNode.getId(), member, dereferencedType, symbolNode.getFlattenSubset()); return flattened ? flattened : base; @@ -1422,112 +1376,13 @@ TIntermTyped* HlslParseContext::flattenAccess(int uniqueId, int member, const TT TVariable* HlslParseContext::getSplitIoVar(int id) const { const auto splitIoVar = splitIoVars.find(id); - if (splitIoVar == splitIoVars.end()) return nullptr; return splitIoVar->second; } -// Find and return the split IO TVariable for variable, or nullptr if none. -TVariable* HlslParseContext::getSplitIoVar(const TVariable* var) const -{ - if (var == nullptr) - return nullptr; - - return getSplitIoVar(var->getUniqueId()); -} - -// Find and return the split IO TVariable for symbol in this node, or nullptr if none. -TVariable* HlslParseContext::getSplitIoVar(const TIntermTyped* node) const -{ - if (node == nullptr) - return nullptr; - - const TIntermSymbol* symbolNode = node->getAsSymbolNode(); - - if (symbolNode == nullptr) - return nullptr; - - return getSplitIoVar(symbolNode->getId()); -} - -// Remember the index used to dereference into this structure, in case it has to be moved to a -// split-off builtin IO member. -void HlslParseContext::splitAccessArray(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) -{ - const TVariable* splitIoVar = getSplitIoVar(base); - - // Not a split structure - if (splitIoVar == nullptr) - return; - - if (builtInIoBase) { - error(loc, "only one array dimension supported for builtIn IO variable", "", ""); - return; - } - - builtInIoBase = base; - builtInIoIndex = index; -} - -// Turn an access into an struct that was split to instead be an -// access to either the modified structure, or a direct reference to -// one of the split member variables. -TIntermTyped* HlslParseContext::splitAccessStruct(const TSourceLoc& loc, TIntermTyped*& base, int& member) -{ - // nothing to do - if (base == nullptr) - return nullptr; - - // We have a pending bracket reference to an outer struct that we may want to move to an inner member. - if (builtInIoBase) - base = builtInIoBase; - - const TVariable* splitIoVar = getSplitIoVar(base); - - if (splitIoVar == nullptr) - return nullptr; - - const TTypeList& members = *base->getType().getStruct(); - - const TType& memberType = *members[member].type; - - if (memberType.isBuiltInInterstageIO(language)) { - // It's one of the interstage IO variables we split off. - TIntermTyped* builtIn = intermediate.addSymbol(*interstageBuiltInIo[tInterstageIoData(memberType, - base->getType())], loc); - - // If there's an array reference to an outer split struct, we re-apply it here. - if (builtInIoIndex != nullptr) { - if (builtInIoIndex->getQualifier().storage == EvqConst) - builtIn = intermediate.addIndex(EOpIndexDirect, builtIn, builtInIoIndex, loc); - else - builtIn = intermediate.addIndex(EOpIndexIndirect, builtIn, builtInIoIndex, loc); - - builtIn->setType(memberType); - - builtInIoIndex = nullptr; - builtInIoBase = nullptr; - } - - return builtIn; - } else { - // It's not an IO variable. Find the equivalent index into the new variable. - base = intermediate.addSymbol(*splitIoVar, loc); - - int newMember = 0; - for (int m=0; misBuiltInInterstageIO(language)) - ++newMember; - - member = newMember; - - return nullptr; - } -} - -// Pass through to base class after remembering builtin mappings. +// Pass through to base class after remembering built-in mappings. void HlslParseContext::trackLinkage(TSymbol& symbol) { TBuiltInVariable biType = symbol.getType().getQualifier().builtIn; @@ -1539,7 +1394,7 @@ void HlslParseContext::trackLinkage(TSymbol& symbol) } -// Returns true if the builtin is a clip or cull distance variable. +// Returns true if the built-in is a clip or cull distance variable. bool HlslParseContext::isClipOrCullDistance(TBuiltInVariable builtIn) { return builtIn == EbvClipDistance || builtIn == EbvCullDistance; @@ -1604,26 +1459,28 @@ void HlslParseContext::assignToInterface(TVariable& variable) { const auto assignLocation = [&](TVariable& variable) { TType& type = variable.getWritableType(); - TQualifier& qualifier = type.getQualifier(); - if (qualifier.storage == EvqVaryingIn || qualifier.storage == EvqVaryingOut) { - if (qualifier.builtIn == EbvNone && !qualifier.hasLocation()) { - // Strip off the outer array dimension for those having an extra one. - int size; - if (type.isArray() && qualifier.isArrayedIo(language)) { - TType elementType(type, 0); - size = intermediate.computeTypeLocationSize(elementType); - } else - size = intermediate.computeTypeLocationSize(type); + if (!type.isStruct() || type.getStruct()->size() > 0) { + TQualifier& qualifier = type.getQualifier(); + if (qualifier.storage == EvqVaryingIn || qualifier.storage == EvqVaryingOut) { + if (qualifier.builtIn == EbvNone && !qualifier.hasLocation()) { + // Strip off the outer array dimension for those having an extra one. + int size; + if (type.isArray() && qualifier.isArrayedIo(language)) { + TType elementType(type, 0); + size = intermediate.computeTypeLocationSize(elementType); + } else + size = intermediate.computeTypeLocationSize(type); - if (qualifier.storage == EvqVaryingIn) { - variable.getWritableType().getQualifier().layoutLocation = nextInLocation; - nextInLocation += size; - } else { - variable.getWritableType().getQualifier().layoutLocation = nextOutLocation; - nextOutLocation += size; + if (qualifier.storage == EvqVaryingIn) { + variable.getWritableType().getQualifier().layoutLocation = nextInLocation; + nextInLocation += size; + } else { + variable.getWritableType().getQualifier().layoutLocation = nextOutLocation; + nextOutLocation += size; + } } + trackLinkage(variable); } - trackLinkage(variable); } }; @@ -1632,7 +1489,7 @@ void HlslParseContext::assignToInterface(TVariable& variable) for (auto member = memberList.begin(); member != memberList.end(); ++member) assignLocation(**member); } else if (wasSplit(variable.getUniqueId())) { - TVariable* splitIoVar = getSplitIoVar(&variable); + TVariable* splitIoVar = getSplitIoVar(variable.getUniqueId()); assignLocation(*splitIoVar); } else { assignLocation(variable); @@ -1694,7 +1551,7 @@ void HlslParseContext::addInterstageIoToLinkage() TVariable* var = interstageBuiltInIo[io[idx]]; // Add the loose interstage IO to the linkage - if (var->getType().isLooseAndBuiltIn(language)) + if (! var->getType().isPerVertexBuiltIn(language)) trackLinkage(*var); } } @@ -1793,7 +1650,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l if (shouldFlatten(variable->getType())) { // Expand the AST parameter nodes (but not the name mangling or symbol table view) // for structures that need to be flattened. - flatten(loc, *variable); + flatten(*variable); const TTypeList* structure = variable->getType().getStruct(); for (int mem = 0; mem < (int)structure->size(); ++mem) { paramNodes = intermediate.growAggregate(paramNodes, @@ -2013,7 +1870,7 @@ TIntermNode* HlslParseContext::transformEntryPoint(const TSourceLoc& loc, TFunct return language == EShLangTessEvaluation && type.contains([](const TType* t) { return t->getQualifier().builtIn == EbvTessLevelOuter || - t->getQualifier().builtIn == EbvTessLevelInner; + t->getQualifier().builtIn == EbvTessLevelInner; }); }; @@ -2043,9 +1900,9 @@ TIntermNode* HlslParseContext::transformEntryPoint(const TSourceLoc& loc, TFunct // struct inputs to the vertex stage and outputs from the fragment stage must be flattened if ((language == EShLangVertex && qualifier == EvqVaryingIn) || (language == EShLangFragment && qualifier == EvqVaryingOut)) - flatten(loc, variable); - // Mixture of IO and non-IO must be split - else if (variable.getType().containsBuiltInInterstageIO(language)) + flatten(variable); + // Structs containing built-ins must be split + else if (variable.getType().containsBuiltIn()) split(variable); } @@ -2547,8 +2404,8 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc // expected to then not exist for opaque types, because they will turn into aliases. // // Return a node that contains the non-aliased assignments that must continue to exist. -TIntermAggregate* HlslParseContext::flattenedInit(const TSourceLoc& loc, TIntermSymbol* symbol, - const TIntermAggregate& initializer) +TIntermAggregate* HlslParseContext::executeFlattenedInitializer(const TSourceLoc& loc, TIntermSymbol* symbol, + const TIntermAggregate& initializer) { TIntermAggregate* initList = nullptr; // synthesize an access to each member, and then an assignment to it @@ -2591,7 +2448,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op // OK to do a single assign if both are split, or both are unsplit. But if one is and the other // isn't, we fall back to a member-wise copy. - if (! isFlattenLeft && ! isFlattenRight && !isSplitLeft && !isSplitRight) { + if (!isFlattenLeft && !isFlattenRight && !isSplitLeft && !isSplitRight) { // Clip and cull distance requires more processing. See comment above assignClipCullDistance. if (isClipOrCullDistance(left->getType())) { const int semanticId = left->getType().getQualifier().layoutLocation; @@ -2652,7 +2509,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op int memberIdx = 0; - // When dealing with split arrayed structures of builtins, the arrayness is moved to the extracted builtin + // When dealing with split arrayed structures of built-ins, the arrayness is moved to the extracted built-in // variables, which is awkward when copying between split and unsplit structures. This variable tracks // array indirections so they can be percolated from outer structs to inner variables. std::vector arrayElement; @@ -2663,26 +2520,19 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op const auto getMember = [&](bool isLeft, TIntermTyped* node, int member, TIntermTyped* splitNode, int splitMember) -> TIntermTyped * { + const bool flattened = isLeft ? isFlattenLeft : isFlattenRight; + const bool split = isLeft ? isSplitLeft : isSplitRight; + TIntermTyped* subTree; - - const bool flattened = isLeft ? isFlattenLeft : isFlattenRight; - const bool split = isLeft ? isSplitLeft : isSplitRight; - const TIntermTyped* outer = isLeft ? outerLeft : outerRight; - const TVector& flatVariables = isLeft ? *leftVariables : *rightVariables; - - // Index operator if it's an aggregate, else EOpNull - const TOperator op = node->getType().isArray() ? EOpIndexDirect : - node->getType().isStruct() ? EOpIndexDirectStruct : EOpNull; - const TType derefType(node->getType(), member); - - if (split && derefType.isBuiltInInterstageIO(language)) { - // copy from interstage IO builtin if needed + if (split && derefType.isBuiltIn()) { + // copy from interstage IO built-in if needed + const TIntermTyped* outer = isLeft ? outerLeft : outerRight; subTree = intermediate.addSymbol(*interstageBuiltInIo.find( HlslParseContext::tInterstageIoData(derefType, outer->getType()))->second); // Arrayness of builtIn symbols isn't handled by the normal recursion: - // it's been extracted and moved to the builtin. + // it's been extracted and moved to the built-in. if (subTree->getType().isArray() && !arrayElement.empty()) { const TType splitDerefType(subTree->getType(), arrayElement.back()); subTree = intermediate.addIndex(EOpIndexDirect, subTree, @@ -2690,14 +2540,19 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op subTree->setType(splitDerefType); } } else if (flattened && isFinalFlattening(derefType)) { + const TVector& flatVariables = isLeft ? *leftVariables : *rightVariables; subTree = intermediate.addSymbol(*flatVariables[memberIdx++]); } else { - if (op == EOpNull) { + // Index operator if it's an aggregate, else EOpNull + const TOperator accessOp = node->getType().isArray() ? EOpIndexDirect + : node->getType().isStruct() ? EOpIndexDirectStruct + : EOpNull; + if (accessOp == EOpNull) { subTree = splitNode; } else { + subTree = intermediate.addIndex(accessOp, splitNode, intermediate.addConstantUnion(splitMember, loc), + loc); const TType splitDerefType(splitNode->getType(), splitMember); - - subTree = intermediate.addIndex(op, splitNode, intermediate.addConstantUnion(splitMember, loc), loc); subTree->setType(splitDerefType); } } @@ -2719,7 +2574,7 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op // flattened, so have to do member-by-member assignment: if (left->getType().isArray() || right->getType().isArray()) { - const int elementsL = left->getType().isArray() ? left->getType().getOuterArraySize() : 1; + const int elementsL = left->getType().isArray() ? left->getType().getOuterArraySize() : 1; const int elementsR = right->getType().isArray() ? right->getType().getOuterArraySize() : 1; // The arrays may not be the same size, e.g, if the size has been forced for EbvTessLevelInner or Outer. @@ -2770,10 +2625,10 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op : subRight; if (isClipOrCullDistance(subSplitLeft->getType())) { - // Clip and cull distance builtin assignment is complex in its own right, and is handled in + // Clip and cull distance built-in assignment is complex in its own right, and is handled in // a separate function dedicated to that task. See comment above assignClipCullDistance; - // Since all clip/cull semantics boil down to the same builtin type, we need to get the + // Since all clip/cull semantics boil down to the same built-in type, we need to get the // semantic ID from the dereferenced type's layout location, to avoid an N-1 mapping. const TType derefType(left->getType(), member); const int semanticId = derefType.getQualifier().layoutLocation; @@ -2784,8 +2639,8 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op assignList = intermediate.growAggregate(assignList, clipCullAssign, loc); } else if (!isFlattenLeft && !isFlattenRight && - !typeL.containsBuiltInInterstageIO(language) && - !typeR.containsBuiltInInterstageIO(language)) { + !typeL.containsBuiltIn() && + !typeR.containsBuiltIn()) { // If this is the final flattening (no nested types below to flatten) // we'll copy the member, else recurse into the type hierarchy. // However, if splitting the struct, that means we can copy a whole @@ -2801,8 +2656,8 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op traverse(subLeft, subRight, subSplitLeft, subSplitRight); } - memberL += (typeL.isBuiltInInterstageIO(language) ? 0 : 1); - memberR += (typeR.isBuiltInInterstageIO(language) ? 0 : 1); + memberL += (typeL.isBuiltIn() ? 0 : 1); + memberR += (typeR.isBuiltIn() ? 0 : 1); } } else { // Member copy @@ -2815,12 +2670,12 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op TIntermTyped* splitRight = right; // If either left or right was a split structure, we must read or write it, but still have to - // parallel-recurse through the unsplit structure to identify the builtin IO vars. + // parallel-recurse through the unsplit structure to identify the built-in IO vars. if (isSplitLeft) - splitLeft = intermediate.addSymbol(*getSplitIoVar(left), loc); + splitLeft = intermediate.addSymbol(*getSplitIoVar(left->getAsSymbolNode()->getId()), loc); if (isSplitRight) - splitRight = intermediate.addSymbol(*getSplitIoVar(right), loc); + splitRight = intermediate.addSymbol(*getSplitIoVar(right->getAsSymbolNode()->getId()), loc); // This makes the whole assignment, recursing through subtypes as needed. traverse(left, right, splitLeft, splitRight); @@ -5030,7 +4885,7 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI else error(arg->getLoc(), "cannot convert input argument, argument", "", "%d", param); } else { - if (wasFlattened(arg) || wasSplit(arg)) { + if (wasFlattened(arg)) { // If both formal and calling arg are to be flattened, leave that to argument // expansion, not conversion. if (!shouldFlatten(*function[param].type)) { @@ -7166,7 +7021,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, TFunction return nullptr; } - // For builtins, we can convert across the arguments. This will happen in several steps: + // For built-ins, we can convert across the arguments. This will happen in several steps: // Step 1: If there's an exact match, use it. // Step 2a: Otherwise, get the operator from the best match and promote arguments: // Step 2b: reconstruct the TFunction based on the new arg types @@ -7452,7 +7307,7 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, const TStr return nullptr; if (flattenVar) - flatten(loc, *symbol->getAsVariable()); + flatten(*symbol->getAsVariable()); if (initializer == nullptr) return nullptr; @@ -7619,7 +7474,7 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // handleAssign() will emit the initializer. TIntermNode* initNode = nullptr; if (flattened && intermSymbol->getType().containsOpaque()) - return flattenedInit(loc, intermSymbol, *initializer->getAsAggregate()); + return executeFlattenedInitializer(loc, intermSymbol, *initializer->getAsAggregate()); else { initNode = handleAssign(loc, EOpAssign, intermSymbol, initializer); if (initNode == nullptr) @@ -9047,7 +8902,7 @@ void HlslParseContext::addPatchConstantInvocation() return; } - // Look for builtin variables in a function's parameter list. + // Look for built-in variables in a function's parameter list. const auto findBuiltIns = [&](const TFunction& function, std::set& builtIns) { for (int p=0; pgetQualifier().storage; @@ -9063,7 +8918,7 @@ void HlslParseContext::addPatchConstantInvocation() }; - // If we synthesize a builtin interface variable, we must add it to the linkage. + // If we synthesize a built-in interface variable, we must add it to the linkage. const auto addToLinkage = [&](const TType& type, const TString* name, TIntermSymbol** symbolNode) { if (name == nullptr) { error(loc, "unable to locate patch function parameter name", "", ""); @@ -9094,11 +8949,11 @@ void HlslParseContext::addPatchConstantInvocation() // We will perform these steps. Each is in a scoped block for separation: they could // become separate functions to make addPatchConstantInvocation shorter. // - // 1. Union the interfaces, and create builtins for anything present in the PCF and - // declared as a builtin variable that isn't present in the entry point's signature. + // 1. Union the interfaces, and create built-ins for anything present in the PCF and + // declared as a built-in variable that isn't present in the entry point's signature. // - // 2. Synthesizes a call to the patchconstfunction using builtin variables from either main, - // or the ones we created. Matching is based on builtin type. We may use synthesized + // 2. Synthesizes a call to the patchconstfunction using built-in variables from either main, + // or the ones we created. Matching is based on built-in type. We may use synthesized // variables from (1) above. // // 2B: Synthesize per control point invocations of wrapped entry point if the PCF requires them. @@ -9122,8 +8977,8 @@ void HlslParseContext::addPatchConstantInvocation() // ================ Step 1A: Union Interfaces ================ // Our patch constant function. { - std::set pcfBuiltIns; // patch constant function builtins - std::set epfBuiltIns; // entry point function builtins + std::set pcfBuiltIns; // patch constant function built-ins + std::set epfBuiltIns; // entry point function built-ins assert(entryPointFunction); assert(entryPointFunctionBody); @@ -9131,7 +8986,7 @@ void HlslParseContext::addPatchConstantInvocation() findBuiltIns(patchConstantFunction, pcfBuiltIns); findBuiltIns(*entryPointFunction, epfBuiltIns); - // Find the set of builtins in the PCF that are not present in the entry point. + // Find the set of built-ins in the PCF that are not present in the entry point. std::set notInEntryPoint; notInEntryPoint = pcfBuiltIns; @@ -9161,8 +9016,8 @@ void HlslParseContext::addPatchConstantInvocation() if (storage == EvqConstReadOnly) // treated identically to input storage = EvqIn; - // Presently, the only non-builtin we support is InputPatch, which is treated as - // a pseudo-builtin. + // Presently, the only non-built-in we support is InputPatch, which is treated as + // a pseudo-built-in. if (biType == EbvInputPatch) { builtInLinkageSymbols[biType] = inputPatch; } else if (biType == EbvOutputPatch) { @@ -9207,13 +9062,13 @@ void HlslParseContext::addPatchConstantInvocation() } inputArg = intermediate.addSymbol(*perCtrlPtVar, loc); } else { - // find which builtin it is + // find which built-in it is const TBuiltInVariable biType = patchConstantFunction[p].getDeclaredBuiltIn(); inputArg = findLinkageSymbol(biType); if (inputArg == nullptr) { - error(loc, "unable to find patch constant function builtin variable", "", ""); + error(loc, "unable to find patch constant function built-in variable", "", ""); return; } } @@ -9328,7 +9183,7 @@ void HlslParseContext::addPatchConstantInvocation() if (newLists != ioTypeMap.end()) outType.setStruct(newLists->second.output); - // Substitute the top level type's builtin type + // Substitute the top level type's built-in type if (patchConstantFunction.getDeclaredBuiltInType() != EbvNone) outType.getQualifier().builtIn = patchConstantFunction.getDeclaredBuiltInType(); @@ -9337,7 +9192,7 @@ void HlslParseContext::addPatchConstantInvocation() TVariable* pcfOutput = makeInternalVariable("@patchConstantOutput", outType); pcfOutput->getWritableType().getQualifier().storage = EvqVaryingOut; - if (pcfOutput->getType().containsBuiltInInterstageIO(language)) + if (pcfOutput->getType().containsBuiltIn()) split(*pcfOutput); assignToInterface(*pcfOutput); diff --git a/3rdparty/glslang/hlsl/hlslParseHelper.h b/3rdparty/glslang/hlsl/hlslParseHelper.h index 69f0350ff..ef814097d 100755 --- a/3rdparty/glslang/hlsl/hlslParseHelper.h +++ b/3rdparty/glslang/hlsl/hlslParseHelper.h @@ -89,7 +89,7 @@ public: void remapNonEntryPointIO(TFunction& function); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); - TIntermAggregate* flattenedInit(const TSourceLoc&, TIntermSymbol*, const TIntermAggregate&); + TIntermAggregate* executeFlattenedInitializer(const TSourceLoc&, TIntermSymbol*, const TIntermAggregate&); TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleAssignToMatrixSwizzle(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermTyped*); @@ -249,14 +249,11 @@ protected: bool shouldFlatten(const TType&) const; bool wasFlattened(const TIntermTyped* node) const; bool wasFlattened(int id) const { return flattenMap.find(id) != flattenMap.end(); } - int addFlattenedMember(const TSourceLoc& loc, const TVariable&, const TType&, TFlattenData&, const TString& name, bool track); + int addFlattenedMember(const TVariable&, const TType&, TFlattenData&, const TString& name, bool track); bool isFinalFlattening(const TType& type) const { return !(type.isStruct() || type.isArray()); } // Structure splitting (splits interstage built-in types into its own struct) - TIntermTyped* splitAccessStruct(const TSourceLoc& loc, TIntermTyped*& base, int& member); - void splitAccessArray(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index); TType& split(TType& type, TString name, const TType* outerStructType = nullptr); - void split(TIntermTyped*); void split(const TVariable&); bool wasSplit(const TIntermTyped* node) const; bool wasSplit(int id) const { return splitIoVars.find(id) != splitIoVars.end(); } @@ -269,10 +266,10 @@ protected: void fixBuiltInIoType(TType&); - void flatten(const TSourceLoc& loc, const TVariable& variable); - int flatten(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); - int flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); - int flattenArray(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); + void flatten(const TVariable& variable); + int flatten(const TVariable& variable, const TType&, TFlattenData&, TString name); + int flattenStruct(const TVariable& variable, const TType&, TFlattenData&, TString name); + int flattenArray(const TVariable& variable, const TType&, TFlattenData&, TString name); bool hasUniform(const TQualifier& qualifier) const; void clearUniform(TQualifier& qualifier); @@ -416,12 +413,6 @@ protected: TMap interstageBuiltInIo; // individual builtin interstage IO vars, indexed by builtin type. TVariable* inputPatch; - // We have to move array references to structs containing builtin interstage IO to the split variables. - // This is only handled for one level. This stores the index, because we'll need it in the future, since - // unlike normal array references, here the index happens before we discover what it applies to. - TIntermTyped* builtInIoIndex; - TIntermTyped* builtInIoBase; - unsigned int nextInLocation; unsigned int nextOutLocation;