[clang] [clang][bytecode][NFC] Add assert to ptrauth_string_discriminator (PR #132527)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 21 23:15:02 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Timm Baeder (tbaederr)
<details>
<summary>Changes</summary>
As pointed out by @<!-- -->shafik, this confuses static analysis and most probably humans as well. Add an assertion to ensure the given array has at least one element.
---
Full diff: https://github.com/llvm/llvm-project/pull/132527.diff
1 Files Affected:
- (modified) clang/lib/AST/ByteCode/InterpBuiltin.cpp (+3)
``````````diff
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());
``````````
</details>
https://github.com/llvm/llvm-project/pull/132527
More information about the cfe-commits
mailing list