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

Reply via email to