diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 32b483ad9b25f628f6087e5faaa04d4f317f1539..2fd393363012e3e2b5e6a389da0b15b7a495a82c 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -3789,6 +3789,10 @@ bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) break; case EHTokBreak: statement = intermediate.addBranch(EOpBreak, token.loc); + if (parseContext.loopNestingLevel == 0 && parseContext.switchSequenceStack.size() == 0) { + expected("loop or switch"); + return false; + } break; case EHTokDiscard: statement = intermediate.addBranch(EOpKill, token.loc);