https://github.com/Thibault-Monnier updated 
https://github.com/llvm/llvm-project/pull/180563

>From 2dc392f0259700bb0d030d1205a27b611c2133fb Mon Sep 17 00:00:00 2001
From: Thibault-Monnier <[email protected]>
Date: Mon, 9 Feb 2026 18:12:28 +0100
Subject: [PATCH 1/3] Fix

---
 clang/lib/AST/ExprConstant.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index d4068368f5b9d..0326273cd629a 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -9633,7 +9633,7 @@ bool LValueExprEvaluator::VisitArraySubscriptExpr(const 
ArraySubscriptExpr *E) {
     if (Success) {
       Result.setFrom(Info.Ctx, Val);
       HandleLValueVectorElement(Info, E, Result, VT->getElementType(),
-                                VT->getNumElements(), Index.getExtValue());
+                                VT->getNumElements(), Index.getZExtValue());
     }
 
     return Success;

>From 936c47ec2314056f4c7161141440bbd556ea5524 Mon Sep 17 00:00:00 2001
From: Thibault-Monnier <[email protected]>
Date: Sat, 14 Feb 2026 13:08:00 +0100
Subject: [PATCH 2/3] Add test case and update ReleaseNotes

---
 clang/docs/ReleaseNotes.rst      | 1 +
 clang/test/CodeGenCXX/vector.cpp | 6 ++++++
 2 files changed, 7 insertions(+)
 create mode 100644 clang/test/CodeGenCXX/vector.cpp

diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 0dbea8efc2642..5f360523afe37 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -274,6 +274,7 @@ Miscellaneous Clang Crashes Fixed
 - Fixed a crash when using loop hint with a value dependent argument inside a
   generic lambda. (#GH172289)
 - Fixed a crash in C++ overload resolution with ``_Atomic``-qualified argument 
types. (#GH170433)
+- Fixed a crash when subscripting a vector type with large unsigned integer 
values. (#GH180563)
 
 OpenACC Specific Changes
 ------------------------
diff --git a/clang/test/CodeGenCXX/vector.cpp b/clang/test/CodeGenCXX/vector.cpp
new file mode 100644
index 0000000000000..2a583afa197d2
--- /dev/null
+++ b/clang/test/CodeGenCXX/vector.cpp
@@ -0,0 +1,6 @@
+// RUN: %clang_cc1 %s -triple x86_64-linux-gnu -emit-llvm -o - | FileCheck %s
+
+// CHECK: gh_180563
+int gh_180563(int __attribute__((vector_size(8))) v) {
+  return v[~0UL];
+}

>From 3607a64ffcee8082ce0b78ea4228ea1cf1688939 Mon Sep 17 00:00:00 2001
From: Thibault-Monnier <[email protected]>
Date: Thu, 26 Feb 2026 15:26:39 +0100
Subject: [PATCH 3/3] Address comments

---
 clang/test/CodeGenCXX/vector.cpp | 6 ------
 clang/test/SemaCXX/vector.cpp    | 5 +++++
 2 files changed, 5 insertions(+), 6 deletions(-)
 delete mode 100644 clang/test/CodeGenCXX/vector.cpp

diff --git a/clang/test/CodeGenCXX/vector.cpp b/clang/test/CodeGenCXX/vector.cpp
deleted file mode 100644
index 2a583afa197d2..0000000000000
--- a/clang/test/CodeGenCXX/vector.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: %clang_cc1 %s -triple x86_64-linux-gnu -emit-llvm -o - | FileCheck %s
-
-// CHECK: gh_180563
-int gh_180563(int __attribute__((vector_size(8))) v) {
-  return v[~0UL];
-}
diff --git a/clang/test/SemaCXX/vector.cpp b/clang/test/SemaCXX/vector.cpp
index 744017304d121..ded0aab491fcc 100644
--- a/clang/test/SemaCXX/vector.cpp
+++ b/clang/test/SemaCXX/vector.cpp
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -flax-vector-conversions=all -triple x86_64-apple-darwin10 
-fsyntax-only -verify %s
+// RUN: %clang_cc1 -flax-vector-conversions=all -triple x86_64-apple-darwin10 
-fsyntax-only -verify -fexperimental-new-constant-interpreter %s
 // RUN: %clang_cc1 -flax-vector-conversions=all -triple x86_64-apple-darwin10 
-fsyntax-only -verify -std=c++98 %s
 // RUN: %clang_cc1 -flax-vector-conversions=all -triple x86_64-apple-darwin10 
-fsyntax-only -verify -std=c++11 %s
 // RUN: %clang_cc1 -flax-vector-conversions=all -triple x86_64-apple-darwin10 
-fsyntax-only -verify -std=c++20 %s
@@ -476,6 +477,10 @@ struct PR45298Consumer {
 
   PR45298<T> s;
 };
+
+constexpr int PR180563(int __attribute__((vector_size(8))) v) {
+  return v[~0UL];
+}
 #endif // __cplusplus >= 201103L
 
 void use() {

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to