diff options
Diffstat (limited to 'source/slang/slang-ir-validate.cpp')
| -rw-r--r-- | source/slang/slang-ir-validate.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/slang/slang-ir-validate.cpp b/source/slang/slang-ir-validate.cpp index 2868c9929..a4a2921fe 100644 --- a/source/slang/slang-ir-validate.cpp +++ b/source/slang/slang-ir-validate.cpp @@ -66,6 +66,7 @@ namespace Slang State state = kState_Initial; IRInst* prevChild = nullptr; + bool hasSeenTerminatorInst = false; for(auto child : parent->getDecorationsAndChildren() ) { // We need to check the integrity of the parent/next/prev links of @@ -105,7 +106,11 @@ namespace Slang validate(context, !as<IRTerminatorInst>(child), child, "terminator must be last instruction in a block"); } - + if (as<IRTerminatorInst>(child)) + { + validate(context, !hasSeenTerminatorInst, child, "block must not contain more than one terminator"); + hasSeenTerminatorInst = true; + } prevChild = child; } } |
