diff options
author | Hans-Kristian Arntzen <hans-kristian.arntzen@arm.com> | 2018-11-26 14:23:28 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <hans-kristian.arntzen@arm.com> | 2018-11-26 14:23:28 +0300 |
commit | d0b937206fab25847873a65551eee71ff6e64b56 (patch) | |
tree | 0df7ddff8500a91d5dd3ea4e8a71533164d96e0f /spirv_parser.cpp | |
parent | a89ebba8279c6341a76e87bd7380bdfb131fa23b (diff) |
Keep track of pointer-to-pointer depth in parser.
Defer failure of pointer-to-pointer to compilation time, so we can still
reflect VK_KHR_variable_pointer shaders.
Diffstat (limited to 'spirv_parser.cpp')
-rw-r--r-- | spirv_parser.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/spirv_parser.cpp b/spirv_parser.cpp index 0e611fe2..fc04a746 100644 --- a/spirv_parser.cpp +++ b/spirv_parser.cpp @@ -599,9 +599,8 @@ void Parser::parse(const Instruction &instruction) auto &ptrbase = set<SPIRType>(id); ptrbase = base; - if (ptrbase.pointer) - SPIRV_CROSS_THROW("Cannot make pointer-to-pointer type."); ptrbase.pointer = true; + ptrbase.pointer_depth++; ptrbase.storage = static_cast<StorageClass>(ops[1]); if (ptrbase.storage == StorageClassAtomicCounter) |