Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <hans-kristian.arntzen@arm.com>2018-11-26 14:23:28 +0300
committerHans-Kristian Arntzen <hans-kristian.arntzen@arm.com>2018-11-26 14:23:28 +0300
commitd0b937206fab25847873a65551eee71ff6e64b56 (patch)
tree0df7ddff8500a91d5dd3ea4e8a71533164d96e0f /spirv_parser.cpp
parenta89ebba8279c6341a76e87bd7380bdfb131fa23b (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.cpp3
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)