https://github.com/kazutakahirata updated https://github.com/llvm/llvm-project/pull/166127
>From 614a78150b909d98c9ee907b4b6dd55807035d94 Mon Sep 17 00:00:00 2001 From: Kazu Hirata <[email protected]> Date: Sun, 2 Nov 2025 15:06:21 -0800 Subject: [PATCH 1/2] [clang] Migrate away from a soft-deprecated constructor of APInt (NFC) We have: /// Once all uses of this constructor are migrated to other constructors, /// consider marking this overload ""= delete" to prevent calls from being /// incorrectly bound to the APInt(unsigned, uint64_t, bool) constructor. LLVM_ABI APInt(unsigned numBits, unsigned numWords, const uint64_t bigVal[]); This patch migrates away from this soft-deprecated constructor. --- clang/include/clang/AST/APNumericStorage.h | 2 +- clang/include/clang/AST/AbstractBasicReader.h | 2 +- clang/lib/AST/ByteCode/Floating.h | 3 ++- clang/lib/AST/ByteCode/IntegralAP.h | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/clang/include/clang/AST/APNumericStorage.h b/clang/include/clang/AST/APNumericStorage.h index e1948a552bf7e..36e40092fa3ea 100644 --- a/clang/include/clang/AST/APNumericStorage.h +++ b/clang/include/clang/AST/APNumericStorage.h @@ -41,7 +41,7 @@ class APNumericStorage { llvm::APInt getIntValue() const { unsigned NumWords = llvm::APInt::getNumWords(BitWidth); if (NumWords > 1) - return llvm::APInt(BitWidth, NumWords, pVal); + return llvm::APInt(BitWidth, llvm::ArrayRef(pVal, NumWords)); else return llvm::APInt(BitWidth, VAL); } diff --git a/clang/include/clang/AST/AbstractBasicReader.h b/clang/include/clang/AST/AbstractBasicReader.h index 0d187eb49d6ca..064a342aa0684 100644 --- a/clang/include/clang/AST/AbstractBasicReader.h +++ b/clang/include/clang/AST/AbstractBasicReader.h @@ -173,7 +173,7 @@ class DataStreamBasicReader : public BasicReaderBase<Impl> { llvm::SmallVector<uint64_t, 4> data; for (uint32_t i = 0; i != numWords; ++i) data.push_back(asImpl().readUInt64()); - return llvm::APInt(bitWidth, numWords, &data[0]); + return llvm::APInt(bitWidth, data); } llvm::FixedPointSemantics readFixedPointSemantics() { diff --git a/clang/lib/AST/ByteCode/Floating.h b/clang/lib/AST/ByteCode/Floating.h index 659892e720abf..cc918dc12deb6 100644 --- a/clang/lib/AST/ByteCode/Floating.h +++ b/clang/lib/AST/ByteCode/Floating.h @@ -45,7 +45,8 @@ class Floating final { if (singleWord()) return APFloat(getSemantics(), APInt(BitWidth, Val)); unsigned NumWords = numWords(); - return APFloat(getSemantics(), APInt(BitWidth, NumWords, Memory)); + return APFloat(getSemantics(), + APInt(BitWidth, llvm::ArrayRef(Memory, NumWords))); } public: diff --git a/clang/lib/AST/ByteCode/IntegralAP.h b/clang/lib/AST/ByteCode/IntegralAP.h index 6683db941c736..b11e6eea28e3f 100644 --- a/clang/lib/AST/ByteCode/IntegralAP.h +++ b/clang/lib/AST/ByteCode/IntegralAP.h @@ -63,7 +63,7 @@ template <bool Signed> class IntegralAP final { if (singleWord()) return APInt(BitWidth, Val, Signed); unsigned NumWords = llvm::APInt::getNumWords(BitWidth); - return llvm::APInt(BitWidth, NumWords, Memory); + return llvm::APInt(BitWidth, llvm::ArrayRef(Memory, NumWords)); } public: >From a3c6b806414416fae6d32ffbffc1cbd983a20586 Mon Sep 17 00:00:00 2001 From: Kazu Hirata <[email protected]> Date: Mon, 3 Nov 2025 07:21:01 -0800 Subject: [PATCH 2/2] Address a comment. --- clang/include/clang/AST/APNumericStorage.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/clang/include/clang/AST/APNumericStorage.h b/clang/include/clang/AST/APNumericStorage.h index 36e40092fa3ea..04424086b98cf 100644 --- a/clang/include/clang/AST/APNumericStorage.h +++ b/clang/include/clang/AST/APNumericStorage.h @@ -42,8 +42,7 @@ class APNumericStorage { unsigned NumWords = llvm::APInt::getNumWords(BitWidth); if (NumWords > 1) return llvm::APInt(BitWidth, llvm::ArrayRef(pVal, NumWords)); - else - return llvm::APInt(BitWidth, VAL); + return llvm::APInt(BitWidth, VAL); } void setIntValue(const ASTContext &C, const llvm::APInt &Val); }; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
