Procházet zdrojové kódy

[spirv] Fix EmitVisitor for OpReturnValue cases.

Ehsan Nasiri před 6 roky
rodič
revize
3373d2f0a0
1 změnil soubory, kde provedl 3 přidání a 0 odebrání
  1. 3 0
      tools/clang/lib/SPIRV/EmitVisitor.cpp

+ 3 - 0
tools/clang/lib/SPIRV/EmitVisitor.cpp

@@ -435,6 +435,9 @@ bool EmitVisitor::visit(SpirvKill *inst) {
 
 
 bool EmitVisitor::visit(SpirvReturn *inst) {
 bool EmitVisitor::visit(SpirvReturn *inst) {
   initInstruction(inst);
   initInstruction(inst);
+  if (inst->hasReturnValue()) {
+    curInst.push_back(getResultId<SpirvInstruction>(inst->getReturnValue()));
+  }
   finalizeInstruction();
   finalizeInstruction();
   emitDebugNameForInstruction(getResultId<SpirvInstruction>(inst),
   emitDebugNameForInstruction(getResultId<SpirvInstruction>(inst),
                               inst->getDebugName());
                               inst->getDebugName());