[clang] cdfb3d9 - [Clang] Fix constexpr alloc tests on 32 bits platforms

Corentin Jabot via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 28 07:24:32 PDT 2023


Author: Corentin Jabot
Date: 2023-07-28T16:22:26+02:00
New Revision: cdfb3d93e394a6f03082558e3c6abbe71bb1df6f

URL: https://github.com/llvm/llvm-project/commit/cdfb3d93e394a6f03082558e3c6abbe71bb1df6f
DIFF: https://github.com/llvm/llvm-project/commit/cdfb3d93e394a6f03082558e3c6abbe71bb1df6f.diff

LOG: [Clang] Fix constexpr alloc tests on 32 bits platforms

Some bots were broken by 45ab2b48bd55

Differential Revision: https://reviews.llvm.org/D156542

Added: 
    

Modified: 
    clang/test/SemaCXX/cxx2a-constexpr-dynalloc-limits.cpp

Removed: 
    


################################################################################
diff  --git a/clang/test/SemaCXX/cxx2a-constexpr-dynalloc-limits.cpp b/clang/test/SemaCXX/cxx2a-constexpr-dynalloc-limits.cpp
index 0d26eca38ddcc5..a85d44f40926fb 100644
--- a/clang/test/SemaCXX/cxx2a-constexpr-dynalloc-limits.cpp
+++ b/clang/test/SemaCXX/cxx2a-constexpr-dynalloc-limits.cpp
@@ -42,12 +42,15 @@ struct S {
     T* data;
 };
 
-constexpr std::size_t s = S<std::size_t>(1099511627777)[42]; // expected-error {{constexpr variable 's' must be initialized by a constant expression}} \
-                                           // expected-note@#call {{in call to 'this->alloc.allocate(1099511627777)'}} \
-                                           // expected-note@#alloc {{cannot allocate array; evaluated array bound 1099511627777 is too large}} \
-                                           // expected-note {{in call to 'S(1099511627777)'}}
+// Only run these tests on 64 bits platforms
+#if __LP64__
+constexpr std::size_t s = S<std::size_t>(~0UL)[42]; // expected-error {{constexpr variable 's' must be initialized by a constant expression}} \
+                                           // expected-note-re@#call {{in call to 'this->alloc.allocate({{.*}})'}} \
+                                           // expected-note-re@#alloc {{cannot allocate array; evaluated array bound {{.*}} is too large}} \
+                                           // expected-note-re {{in call to 'S({{.*}})'}}
+#endif
 // Check that we do not try to fold very large arrays
-std::size_t s2 = S<std::size_t>(1099511627777)[42];
+std::size_t s2 = S<std::size_t>(~0UL)[42];
 std::size_t s3 = S<std::size_t>(~0ULL)[42];
 
 // We can allocate and initialize a small array


        


More information about the cfe-commits mailing list