SPV: Don't make MissingFunctionality() exit anymore.
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index c17b2b3..afea3bc 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -786,16 +786,14 @@
                                    convertGlslangToSpvType(node->getType()), left, right,
                                    node->getLeft()->getType().getBasicType());
 
+    builder.clearAccessChain();
     if (! result) {
         spv::MissingFunctionality("unknown glslang binary operation");
+        return true;  // pick up a child as the place-holder result
     } else {
-        builder.clearAccessChain();
         builder.setAccessChainRValue(result);
-
         return false;
     }
-
-    return true;
 }
 
 bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node)
@@ -908,10 +906,8 @@
 
     default:
         spv::MissingFunctionality("unknown glslang unary");
-        break;
+        return true;  // pick up operand as placeholder result
     }
-
-    return true;
 }
 
 bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TIntermAggregate* node)
@@ -1251,7 +1247,7 @@
 
     if (! result) {
         spv::MissingFunctionality("unknown glslang aggregate");
-        return true;
+        return true;  // pick up a child as a placeholder operand
     } else {
         builder.clearAccessChain();
         builder.setAccessChainRValue(result);