diff --git a/clang/lib/AST/ByteCode/InterpBuiltin.cpp b/clang/lib/AST/ByteCode/InterpBuiltin.cpp index 57037b674feba..a6e1884404287 100644 --- a/clang/lib/AST/ByteCode/InterpBuiltin.cpp +++ b/clang/lib/AST/ByteCode/InterpBuiltin.cpp @@ -1477,6 +1477,9 @@ static bool interp__builtin_ptrauth_string_discriminator( const auto &Ptr = S.Stk.peek<Pointer>(); assert(Ptr.getFieldDesc()->isPrimitiveArray()); + // This should be created for a StringLiteral, so should alway shold at least + // one array element. + assert(Ptr.getFieldDesc()->getNumElems() >= 1); StringRef R(&Ptr.deref<char>(), Ptr.getFieldDesc()->getNumElems() - 1); uint64_t Result = getPointerAuthStableSipHash(R); pushInteger(S, Result, Call->getType());