[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread Louis Dionne via cfe-commits


@@ -168,3 +168,6 @@ void instantiate() {
   void_t();
 #endif
 }
+
+// This is not a .compile.pass.cpp, because GCC only complains in CodeGen 
about incorrect builtins usage
+int main() {}

ldionne wrote:

```suggestion
int main(int, char**) { return 0; }
```

https://github.com/llvm/llvm-project/pull/138293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread Louis Dionne via cfe-commits


@@ -29,6 +29,14 @@
 // These quirks often use a 12h interval; this is the scan interval of zdump,
 // which implies there are no sys_info objects with a duration of less than 
12h.
 
+// Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120502

ldionne wrote:

Maybe add a `TODO(GCC)`?

https://github.com/llvm/llvm-project/pull/138293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread Louis Dionne via cfe-commits

https://github.com/ldionne edited 
https://github.com/llvm/llvm-project/pull/138293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread Louis Dionne via cfe-commits


@@ -134,7 +134,7 @@ Compiler VersionsRestrictions   
Support policy
 Clang19, 20, 21-git latest two stable 
releases per `LLVM's release page `_ and the 
development version
 AppleClang   15 latest stable 
release per `Xcode's release page 
`_
 Open XL  17.1.3 (AIX)   latest stable 
release per `Open XL's documentation page 
`_
-GCC  14  In C++11 or later only latest stable 
release per `GCC's release page `_
+GCC  15  In C++11 or later only latest stable 
release per `GCC's release page `_

ldionne wrote:

@petrhosek We touched on this subject during the last libc++ monthly, but we're 
still awaiting a RFC. For now, we will keep doing what we've been doing 
historically.

https://github.com/llvm/llvm-project/pull/138293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread Louis Dionne via cfe-commits


@@ -168,3 +168,6 @@ void instantiate() {
   void_t();
 #endif
 }
+
+// This is not a .compile.pass.cpp, because GCC only complains in CodeGen 
about incorrect builtins usage

ldionne wrote:

```suggestion
// This is not a .compile.pass.cpp because we want to ensure that GCC doesn't 
complain about incorrect builtins usage, which only happens during CodeGen.
```

https://github.com/llvm/llvm-project/pull/138293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread Louis Dionne via cfe-commits


@@ -26,71 +26,6 @@ if (NOT LIBUNWIND_USE_COMPILER_RT)
   endif ()
 endif()
 
-# libunwind is using -nostdlib++ at the link step when available,

ldionne wrote:

Let's split this one into a patch that we can try landing immediately. I 
suspect we might learn why this code block exists and it would be better not to 
tie it to the GCC 15 migration.

https://github.com/llvm/llvm-project/pull/138293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread Louis Dionne via cfe-commits

https://github.com/ldionne approved this pull request.

LGTM with some comments.

https://github.com/llvm/llvm-project/pull/138293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread via cfe-commits

llvmbot wrote:



@llvm/pr-subscribers-libunwind

@llvm/pr-subscribers-github-workflow

Author: Nikolas Klauser (philnik777)


Changes



---

Patch is 32.39 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/138293.diff


32 Files Affected:

- (modified) .github/workflows/libcxx-build-and-test.yaml (+4-4) 
- (modified) libcxx/docs/index.rst (+1-1) 
- (modified) libcxx/src/experimental/time_zone.cpp (+8) 
- (modified) 
libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains.pass.cpp
 (+2-2) 
- (modified) 
libcxx/test/std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable.compile.pass.cpp
 (+6) 
- (modified) 
libcxx/test/std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable_with.compile.pass.cpp
 (+15) 
- (modified) 
libcxx/test/std/concepts/concepts.compare/concepts.totallyordered/totally_ordered.compile.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/concepts/concepts.compare/concepts.totallyordered/totally_ordered_with.compile.pass.cpp
 (+10) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.except.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_align.except.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_align.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size.except.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_align.except.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_align.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/ctor_func.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/param_ctor_func.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/ranges/range.adaptors/range.lazy.split/general.pass.cpp (+12) 
- (modified) 
libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp 
(+2-2) 
- (modified) 
libcxx/test/std/utilities/expected/expected.expected/monadic/transform_error.pass.cpp
 (+2-2) 
- (modified) 
libcxx/test/std/utilities/expected/expected.void/monadic/transform_error.pass.cpp
 (+2-2) 
- (modified) 
libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char_array.pass.cpp
 (+1-1) 
- (modified) 
libcxx/test/std/utilities/meta/meta.rel/is_virtual_base_of.pass.cpp (+7) 
- (renamed) 
libcxx/test/std/utilities/meta/meta.unary/dependent_return_type.pass.cpp (+3) 
- (modified) 
libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
 (+1-1) 
- (modified) 
libcxx/test/std/utilities/optional/optional.specalg/make_optional_explicit.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/utilities/optional/optional.specalg/make_optional_explicit_initializer_list.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR31384.pass.cpp (+1-1) 
- (modified) libcxxabi/test/catch_member_function_pointer_02.pass.cpp (+1-1) 
- (modified) libunwind/cmake/config-ix.cmake (-65) 
- (modified) libunwind/src/CMakeLists.txt (-12) 


``diff
diff --git a/.github/workflows/libcxx-build-and-test.yaml 
b/.github/workflows/libcxx-build-and-test.yaml
index 80f2432b78dea..f0bdf6c0b5899 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -52,8 +52,8 @@ jobs:
 cxx: [ 'clang++-21' ]
 include:
   - config: 'generic-gcc'
-cc: 'gcc-14'
-cxx: 'g++-14'
+cc: 'gcc-15'
+cxx: 'g++-15'
 steps:
   - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 
v4.2.2
   - name: ${{ matrix.config }}.${{ matrix.cxx }}
@@ -92,8 +92,8 @@ jobs:
 cxx: [ 'clang++-21' ]
 include:
   - config: 'generic-gcc-cxx11'
-cc: 'gcc-14'
-cxx: 'g++-14'
+cc: 'gcc-15'
+cxx: 'g++-15'
   - config: 'generic-cxx26'
 cc: 'clang-20'
 cxx: 'clang++-20'
diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index a8b0d5ce1ee97..44737b379f189 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -134,7 +134,7 @@ Compiler VersionsRestrictions   
Support policy
 Clang19, 20, 21-git latest two stable 
releases per `LLVM's release page `_ and the 
development version
 AppleClan

[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread via cfe-commits

llvmbot wrote:




@llvm/pr-subscribers-libcxx

Author: Nikolas Klauser (philnik777)


Changes



---

Patch is 32.39 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/138293.diff


32 Files Affected:

- (modified) .github/workflows/libcxx-build-and-test.yaml (+4-4) 
- (modified) libcxx/docs/index.rst (+1-1) 
- (modified) libcxx/src/experimental/time_zone.cpp (+8) 
- (modified) 
libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains.pass.cpp
 (+2-2) 
- (modified) 
libcxx/test/std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable.compile.pass.cpp
 (+6) 
- (modified) 
libcxx/test/std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable_with.compile.pass.cpp
 (+15) 
- (modified) 
libcxx/test/std/concepts/concepts.compare/concepts.totallyordered/totally_ordered.compile.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/concepts/concepts.compare/concepts.totallyordered/totally_ordered_with.compile.pass.cpp
 (+10) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.except.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_align.except.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new.size_align.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size.except.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_align.except.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.size_align.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/ctor_func.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/param_ctor_func.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/ranges/range.adaptors/range.lazy.split/general.pass.cpp (+12) 
- (modified) 
libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp 
(+2-2) 
- (modified) 
libcxx/test/std/utilities/expected/expected.expected/monadic/transform_error.pass.cpp
 (+2-2) 
- (modified) 
libcxx/test/std/utilities/expected/expected.void/monadic/transform_error.pass.cpp
 (+2-2) 
- (modified) 
libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char_array.pass.cpp
 (+1-1) 
- (modified) 
libcxx/test/std/utilities/meta/meta.rel/is_virtual_base_of.pass.cpp (+7) 
- (renamed) 
libcxx/test/std/utilities/meta/meta.unary/dependent_return_type.pass.cpp (+3) 
- (modified) 
libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_implicit_lifetime.pass.cpp
 (+1-1) 
- (modified) 
libcxx/test/std/utilities/optional/optional.specalg/make_optional_explicit.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/utilities/optional/optional.specalg/make_optional_explicit_initializer_list.pass.cpp
 (+3) 
- (modified) 
libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR31384.pass.cpp (+1-1) 
- (modified) libcxxabi/test/catch_member_function_pointer_02.pass.cpp (+1-1) 
- (modified) libunwind/cmake/config-ix.cmake (-65) 
- (modified) libunwind/src/CMakeLists.txt (-12) 


``diff
diff --git a/.github/workflows/libcxx-build-and-test.yaml 
b/.github/workflows/libcxx-build-and-test.yaml
index 80f2432b78dea..f0bdf6c0b5899 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -52,8 +52,8 @@ jobs:
 cxx: [ 'clang++-21' ]
 include:
   - config: 'generic-gcc'
-cc: 'gcc-14'
-cxx: 'g++-14'
+cc: 'gcc-15'
+cxx: 'g++-15'
 steps:
   - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 
v4.2.2
   - name: ${{ matrix.config }}.${{ matrix.cxx }}
@@ -92,8 +92,8 @@ jobs:
 cxx: [ 'clang++-21' ]
 include:
   - config: 'generic-gcc-cxx11'
-cc: 'gcc-14'
-cxx: 'g++-14'
+cc: 'gcc-15'
+cxx: 'g++-15'
   - config: 'generic-cxx26'
 cc: 'clang-20'
 cxx: 'clang++-20'
diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index a8b0d5ce1ee97..44737b379f189 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -134,7 +134,7 @@ Compiler VersionsRestrictions   
Support policy
 Clang19, 20, 21-git latest two stable 
releases per `LLVM's release page `_ and the 
development version
 AppleClang   15  

[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread Nikolas Klauser via cfe-commits

https://github.com/philnik777 ready_for_review 
https://github.com/llvm/llvm-project/pull/138293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[libcxx] [libcxxabi] [libunwind] [llvm] [libc++] Upgrade to GCC 15 (PR #138293)

2025-06-06 Thread Nikolas Klauser via cfe-commits

https://github.com/philnik777 updated 
https://github.com/llvm/llvm-project/pull/138293

>From 633b22215dd7b4addf5a9e1718a76030dd37f9e9 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser 
Date: Fri, 2 May 2025 17:24:13 +0200
Subject: [PATCH] [libc++] Upgrade to GCC 15

---
 .github/workflows/libcxx-build-and-test.yaml  |  8 +--
 libcxx/docs/index.rst |  2 +-
 libcxx/src/experimental/time_zone.cpp |  8 +++
 .../alg.contains/ranges.contains.pass.cpp |  4 +-
 .../equality_comparable.compile.pass.cpp  |  6 ++
 .../equality_comparable_with.compile.pass.cpp | 15 +
 .../totally_ordered.compile.pass.cpp  |  3 +
 .../totally_ordered_with.compile.pass.cpp | 10 +++
 .../new.delete.array/new.size.except.pass.cpp |  3 +
 .../new.delete.array/new.size.pass.cpp|  3 +
 .../new.size_align.except.pass.cpp|  3 +
 .../new.delete.array/new.size_align.pass.cpp  |  3 +
 .../new.size.except.pass.cpp  |  3 +
 .../new.delete.single/new.size.pass.cpp   |  3 +
 .../new.size_align.except.pass.cpp|  3 +
 .../new.delete.single/new.size_align.pass.cpp |  3 +
 .../ctor_func.pass.cpp|  3 +
 .../param_ctor_func.pass.cpp  |  3 +
 .../range.lazy.split/general.pass.cpp | 12 
 .../monadic/transform.pass.cpp|  4 +-
 .../monadic/transform_error.pass.cpp  |  4 +-
 .../monadic/transform_error.pass.cpp  |  4 +-
 .../formatter.char_array.pass.cpp |  2 +-
 .../meta/meta.rel/is_virtual_base_of.pass.cpp |  7 ++
 ...ass.cpp => dependent_return_type.pass.cpp} |  3 +
 .../is_implicit_lifetime.pass.cpp |  2 +-
 .../make_optional_explicit.pass.cpp   |  3 +
 ...ptional_explicit_initializer_list.pass.cpp |  3 +
 .../tuple.tuple/tuple.cnstr/PR31384.pass.cpp  |  2 +-
 .../catch_member_function_pointer_02.pass.cpp |  2 +-
 libunwind/cmake/config-ix.cmake   | 65 ---
 libunwind/src/CMakeLists.txt  | 12 
 32 files changed, 117 insertions(+), 94 deletions(-)
 rename 
libcxx/test/std/utilities/meta/meta.unary/{dependent_return_type.compile.pass.cpp
 => dependent_return_type.pass.cpp} (96%)

diff --git a/.github/workflows/libcxx-build-and-test.yaml 
b/.github/workflows/libcxx-build-and-test.yaml
index 80f2432b78dea..f0bdf6c0b5899 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -52,8 +52,8 @@ jobs:
 cxx: [ 'clang++-21' ]
 include:
   - config: 'generic-gcc'
-cc: 'gcc-14'
-cxx: 'g++-14'
+cc: 'gcc-15'
+cxx: 'g++-15'
 steps:
   - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 
v4.2.2
   - name: ${{ matrix.config }}.${{ matrix.cxx }}
@@ -92,8 +92,8 @@ jobs:
 cxx: [ 'clang++-21' ]
 include:
   - config: 'generic-gcc-cxx11'
-cc: 'gcc-14'
-cxx: 'g++-14'
+cc: 'gcc-15'
+cxx: 'g++-15'
   - config: 'generic-cxx26'
 cc: 'clang-20'
 cxx: 'clang++-20'
diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index a8b0d5ce1ee97..44737b379f189 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -134,7 +134,7 @@ Compiler VersionsRestrictions   
Support policy
 Clang19, 20, 21-git latest two stable 
releases per `LLVM's release page `_ and the 
development version
 AppleClang   15 latest stable 
release per `Xcode's release page 
`_
 Open XL  17.1.3 (AIX)   latest stable 
release per `Open XL's documentation page 
`_
-GCC  14  In C++11 or later only latest stable 
release per `GCC's release page `_
+GCC  15  In C++11 or later only latest stable 
release per `GCC's release page `_
  === == 
=
 
 Libc++ also supports common platforms and architectures:
diff --git a/libcxx/src/experimental/time_zone.cpp 
b/libcxx/src/experimental/time_zone.cpp
index 289164ab12036..d4246235c00f5 100644
--- a/libcxx/src/experimental/time_zone.cpp
+++ b/libcxx/src/experimental/time_zone.cpp
@@ -29,6 +29,14 @@
 // These quirks often use a 12h interval; this is the scan interval of zdump,
 // which implies there are no sys_info objects with a duration of less than 
12h.
 
+// Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120502
+
+#include <__config>
+
+#ifdef _LIBCPP_COMPILER_GCC
+#  pragma GCC optimize("-O0")
+#endif
+
 #include 
 #include 
 #include 
diff --git 
a/libcxx/test/