diff --git a/clang/lib/Sema/SemaHLSL.cpp b/clang/lib/Sema/SemaHLSL.cpp index 06130c985876f..0b1996b4789d6 100644 --- a/clang/lib/Sema/SemaHLSL.cpp +++ b/clang/lib/Sema/SemaHLSL.cpp @@ -1908,9 +1908,11 @@ void SemaHLSL::diagnoseSystemSemanticAttr(Decl *D, const ParsedAttr &AL, } void SemaHLSL::handleSemanticAttr(Decl *D, const ParsedAttr &AL) { - uint32_t IndexValue, ExplicitIndex; - SemaRef.checkUInt32Argument(AL, AL.getArgAsExpr(0), IndexValue); - SemaRef.checkUInt32Argument(AL, AL.getArgAsExpr(1), ExplicitIndex); + uint32_t IndexValue(0), ExplicitIndex(0); + if (!SemaRef.checkUInt32Argument(AL, AL.getArgAsExpr(0), IndexValue) || + !SemaRef.checkUInt32Argument(AL, AL.getArgAsExpr(1), ExplicitIndex)) { + assert(0 && "HLSLUnparsedSemantic is expected to have 2 int arguments."); + } assert(IndexValue > 0 ? ExplicitIndex : true); std::optional Index = ExplicitIndex ? std::optional(IndexValue) : std::nullopt;