Pipeline/SpirvShader: Process OpString instructions
Strings are used for debug instructions.
Bug: b/145351270
Change-Id: I6bc711c6c8b320bef6e5abbe9c4bda189fdafc0b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39884
Tested-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/Pipeline/SpirvShader.cpp b/src/Pipeline/SpirvShader.cpp
index 0ee4bd4..a4ef814 100644
--- a/src/Pipeline/SpirvShader.cpp
+++ b/src/Pipeline/SpirvShader.cpp
@@ -433,10 +433,13 @@
case spv::OpLine:
case spv::OpNoLine:
case spv::OpModuleProcessed:
- case spv::OpString:
// No semantic impact
break;
+ case spv::OpString:
+ strings.emplace(insn.word(1), insn.string(2));
+ break;
+
case spv::OpFunctionParameter:
// These should have all been removed by preprocessing passes. If we see them here,
// our assumptions are wrong and we will probably generate wrong code.