[llvm-branch-commits] [clang] [analyzer][NFC] Migrate nonloc::ConcreteInt to use APSIntPtr (2/4) (PR #120436)
Gábor Horváth via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Dec 18 09:44:36 PST 2024
================
@@ -298,9 +299,12 @@ class SymbolVal : public NonLoc {
/// Value representing integer constant.
class ConcreteInt : public NonLoc {
public:
- explicit ConcreteInt(const llvm::APSInt &V) : NonLoc(ConcreteIntKind, &V) {}
+ explicit ConcreteInt(APSIntPtr V) : NonLoc(ConcreteIntKind, V.get()) {}
- const llvm::APSInt &getValue() const { return *castDataAs<llvm::APSInt>(); }
+ APSIntPtr getValue() const {
+ // This is safe because in the ctor we take a safe APSIntPtr.
+ return APSIntPtr::unsafeConstructor(castDataAs<llvm::APSInt>());
----------------
Xazax-hun wrote:
According to [CppReference](https://en.cppreference.com/w/c/language/struct):
> A pointer to a struct can be cast to a pointer to its first member (or, if the member is a bit-field, to its allocation unit). Likewise, a pointer to the first member of a struct can be cast to a pointer to the enclosing struct.
https://github.com/llvm/llvm-project/pull/120436
More information about the llvm-branch-commits
mailing list