mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-10 04:20:06 +00:00
Merge pull request #1090 from tafuri/#1084-fix-segfault
Only track variables in the global scope
This commit is contained in:
commit
b27de0289c
64
Test/baseResults/hlsl.localStructuredBuffer.comp.out
Normal file
64
Test/baseResults/hlsl.localStructuredBuffer.comp.out
Normal file
@ -0,0 +1,64 @@
|
||||
hlsl.localStructuredBuffer.comp
|
||||
Shader version: 500
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:2 Function Definition: @main( ( temp void)
|
||||
0:2 Function Parameters:
|
||||
0:2 Function Definition: main( ( temp void)
|
||||
0:2 Function Parameters:
|
||||
0:? Sequence
|
||||
0:2 Function Call: @main( ( temp void)
|
||||
0:? Linker Objects
|
||||
0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
|
||||
Shader version: 500
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:2 Function Definition: @main( ( temp void)
|
||||
0:2 Function Parameters:
|
||||
0:2 Function Definition: main( ( temp void)
|
||||
0:2 Function Parameters:
|
||||
0:? Sequence
|
||||
0:2 Function Call: @main( ( temp void)
|
||||
0:? Linker Objects
|
||||
0:? 'srt0' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 14
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main"
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 6 "@main("
|
||||
Name 11 "srt0"
|
||||
MemberName 11(srt0) 0 "@data"
|
||||
Name 13 "srt0"
|
||||
Decorate 10 ArrayStride 4
|
||||
MemberDecorate 11(srt0) 0 Offset 0
|
||||
Decorate 11(srt0) BufferBlock
|
||||
Decorate 13(srt0) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
9: TypeInt 32 0
|
||||
10: TypeRuntimeArray 9(int)
|
||||
11(srt0): TypeStruct 10
|
||||
12: TypePointer Uniform 11(srt0)
|
||||
13(srt0): 12(ptr) Variable Uniform
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8: 2 FunctionCall 6(@main()
|
||||
Return
|
||||
FunctionEnd
|
||||
6(@main(): 2 Function None 3
|
||||
7: Label
|
||||
Return
|
||||
FunctionEnd
|
4
Test/hlsl.localStructuredBuffer.comp
Normal file
4
Test/hlsl.localStructuredBuffer.comp
Normal file
@ -0,0 +1,4 @@
|
||||
RWStructuredBuffer<uint> srt0;
|
||||
void main() {
|
||||
RWStructuredBuffer<uint> srt0Local = srt0;
|
||||
}
|
@ -219,6 +219,7 @@ INSTANTIATE_TEST_CASE_P(
|
||||
{"hlsl.load.rwtexture.array.dx10.frag", "main"},
|
||||
{"hlsl.load.offset.dx10.frag", "main"},
|
||||
{"hlsl.load.offsetarray.dx10.frag", "main"},
|
||||
{"hlsl.localStructuredBuffer.comp", "main"},
|
||||
{"hlsl.logical.binary.frag", "main"},
|
||||
{"hlsl.logical.binary.vec.frag", "main"},
|
||||
{"hlsl.logicalConvert.frag", "main"},
|
||||
|
@ -8318,8 +8318,9 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS
|
||||
return;
|
||||
}
|
||||
|
||||
// Save it in the AST for linker use.
|
||||
trackLinkage(variable);
|
||||
// Save it in the AST for linker use.
|
||||
if (symbolTable.atGlobalLevel())
|
||||
trackLinkage(variable);
|
||||
}
|
||||
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user