commit:     f16f25e451be7aea54515ec7d2dcc68e59407fc7
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 25 08:38:22 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Mar 25 08:38:22 2025 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=f16f25e4

15.0.0: drop musttail workaround again

Jakub's committed more fixes.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../77_all_PR119376-Disable-clang-musttail.patch   | 200 ---------------------
 15.0.0/gentoo/README.history                       |   1 -
 2 files changed, 201 deletions(-)

diff --git a/15.0.0/gentoo/77_all_PR119376-Disable-clang-musttail.patch 
b/15.0.0/gentoo/77_all_PR119376-Disable-clang-musttail.patch
deleted file mode 100644
index 3af4ab4..0000000
--- a/15.0.0/gentoo/77_all_PR119376-Disable-clang-musttail.patch
+++ /dev/null
@@ -1,200 +0,0 @@
-https://inbox.sourceware.org/gcc-patches/20250320013102.1336516-1-a...@firstfloor.org/
-
-From 592f60bef27cb60ea6405ca8603449fc4d92e640 Mon Sep 17 00:00:00 2001
-Message-ID: 
<592f60bef27cb60ea6405ca8603449fc4d92e640.1742435883.git....@gentoo.org>
-From: Andi Kleen <a...@gcc.gnu.org>
-Date: Wed, 19 Mar 2025 18:31:02 -0700
-Subject: [PATCH] PR119376: Disable clang musttail
-
-There are multiple reports (see PR 119376) now where semantic differences
-in the gcc musttail implementation break existing programs written for the 
clang
-variant.
-
-Even though that can be all hopefully fixed eventually,
-for the gcc 15 release it seems safer to disable clang::musttail,
-and only keep gnu::musttail.
-
-That means that programs that use __has_c_attribute to check for
-clang::musttail must opt-in explicitly.
-
-Reported-by: Sam James
-
-gcc/c/ChangeLog:
-
-       PR ipa/119376
-       * c-parser.cc (c_parser_handle_musttail): Drop clang namespace
-       check.
-
-gcc/cp/ChangeLog:
-
-       PR ipa/119376
-       * parser.cc (cp_parser_jump_statement): Drop clang namespace
-       check.
-
-gcc/ChangeLog:
-
-       PR ipa/119376
-       * doc/extend.texi: Drop clang::musttail reference.
-
-gcc/testsuite/ChangeLog:
-
-PR ipa/119376
-       * c-c++-common/musttail23.c: Don't use clang::musttail
-       * c-c++-common/musttail24.c: Dito.
-       * c-c++-common/musttail3.c: Dito.
-       * g++.dg/musttail14.C: Dito.
----
- gcc/c/c-parser.cc                       |  5 -----
- gcc/cp/parser.cc                        |  6 ------
- gcc/doc/extend.texi                     |  2 +-
- gcc/testsuite/c-c++-common/musttail23.c | 10 +++++-----
- gcc/testsuite/c-c++-common/musttail24.c |  6 ------
- gcc/testsuite/c-c++-common/musttail3.c  |  6 +++---
- gcc/testsuite/g++.dg/musttail14.C       |  4 ++--
- 7 files changed, 11 insertions(+), 28 deletions(-)
-
-diff --git a/gcc/c/c-parser.cc b/gcc/c/c-parser.cc
-index d49d5c58659f..79654448acaa 100644
---- a/gcc/c/c-parser.cc
-+++ b/gcc/c/c-parser.cc
-@@ -7409,11 +7409,6 @@ c_parser_handle_musttail (c_parser *parser, tree 
std_attrs, attr_state &attr)
-         std_attrs = remove_attribute ("gnu", "musttail", std_attrs);
-         attr.musttail_p = true;
-       }
--      if (lookup_attribute ("clang", "musttail", std_attrs))
--      {
--        std_attrs = remove_attribute ("clang", "musttail", std_attrs);
--        attr.musttail_p = true;
--      }
-     }
-   return std_attrs;
- }
-diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
-index 2fb1dc5992d4..da7700b55c64 100644
---- a/gcc/cp/parser.cc
-+++ b/gcc/cp/parser.cc
-@@ -15342,12 +15342,6 @@ cp_parser_jump_statement (cp_parser* parser, tree 
&std_attrs)
-               musttail_p = true;
-               std_attrs = remove_attribute ("gnu", "musttail", std_attrs);
-             }
--          /* Support this for compatibility.  */
--          if (lookup_attribute ("clang", "musttail", std_attrs))
--            {
--              musttail_p = true;
--              std_attrs = remove_attribute ("clang", "musttail", std_attrs);
--            }
- 
-           tree ret_expr = expr;
-           if (ret_expr && TREE_CODE (ret_expr) == TARGET_EXPR)
-diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
-index b919df914648..50f95e968ff9 100644
---- a/gcc/doc/extend.texi
-+++ b/gcc/doc/extend.texi
-@@ -10241,7 +10241,7 @@ have to optimize it to just @code{return 42 + 42;}.
- @cindex @code{musttail} statement attribute
- @item musttail
- 
--The @code{gnu::musttail} or @code{clang::musttail} standard attribute
-+The @code{gnu::musttail} standard attribute
- or @code{musttail} GNU attribute can be applied to a @code{return} statement
- with a return-value expression that is a function call.  It asserts that the
- call must be a tail call that does not allocate extra stack space, so it is
-diff --git a/gcc/testsuite/c-c++-common/musttail23.c 
b/gcc/testsuite/c-c++-common/musttail23.c
-index d2ba70b03250..1ceab1165129 100644
---- a/gcc/testsuite/c-c++-common/musttail23.c
-+++ b/gcc/testsuite/c-c++-common/musttail23.c
-@@ -19,10 +19,10 @@ foo (int x)
-     [[gnu::musttail (1, "", 3)]] return bar ();               /* { dg-error 
"'musttail' attribute does not take any arguments" } */
-                                                       /* { dg-error 
"expected" "" { target c } .-1 } */
-   if (x == 3)
--    [[clang::musttail (1)]] return bar ();            /* { dg-error 
"'musttail' attribute does not take any arguments" } */
-+    [[gnu::musttail (1)]] return bar ();              /* { dg-error 
"'musttail' attribute does not take any arguments" } */
-                                                       /* { dg-error 
"expected" "" { target c } .-1 } */
-   if (x == 4)
--    [[clang::musttail (1, "", 3)]] return bar ();     /* { dg-error 
"'musttail' attribute does not take any arguments" } */
-+    [[gnu::musttail (1, "", 3)]] return bar ();       /* { dg-error 
"'musttail' attribute does not take any arguments" } */
-                                                       /* { dg-error 
"expected" "" { target c } .-1 } */
-   if (x == 5)
-     __attribute__((fallthrough, musttail)) return bar (); /* { dg-warning 
"attribute 'musttail' mixed with other attributes on 'return' statement" "" { 
target c } } */
-@@ -32,14 +32,14 @@ foo (int x)
-     [[fallthrough]] [[gnu::musttail]] return bar ();  /* { dg-warning 
"'fallthrough' attribute ignored" "" { target c } } */
-                                                       /* { dg-warning 
"attributes at the beginning of statement are ignored" "" { target c++ } .-1 } 
*/
-   if (x == 7)
--    [[clang::musttail, fallthrough]] return bar ();   /* { dg-warning 
"'fallthrough' attribute ignored" "" { target c } } */
-+    [[gnu::musttail, fallthrough]] return bar ();     /* { dg-warning 
"'fallthrough' attribute ignored" "" { target c } } */
-                                                       /* { dg-warning 
"attributes at the beginning of statement are ignored" "" { target c++ } .-1 } 
*/
-   if (x == 8)
-     __attribute__((musttail, musttail)) return bar ();
-   if (x == 9)
-     [[gnu::musttail, gnu::musttail]] return bar ();
-   if (x == 10)
--    [[clang::musttail]] [[clang::musttail]] return bar ();
-+    [[gnu::musttail]] [[gnu::musttail]] return bar ();
-   if (x == 11)
--    [[clang::musttail]] [[gnu::musttail]] return bar ();
-+    [[gnu::musttail]] [[gnu::musttail]] return bar ();
- }
-diff --git a/gcc/testsuite/c-c++-common/musttail24.c 
b/gcc/testsuite/c-c++-common/musttail24.c
-index 10c2d3f188d8..26b8dbfb4c8e 100644
---- a/gcc/testsuite/c-c++-common/musttail24.c
-+++ b/gcc/testsuite/c-c++-common/musttail24.c
-@@ -8,14 +8,8 @@
- #if !__has_cpp_attribute (gnu::musttail)
- #error missing gnu::musttail attribute
- #endif
--#if !__has_cpp_attribute (clang::musttail)
--#error missing clang::musttail attribute
--#endif
- #else
- #if !__has_c_attribute (gnu::musttail)
- #error missing gnu::musttail attribute
- #endif
--#if !__has_c_attribute (clang::musttail)
--#error missing clang::musttail attribute
--#endif
- #endif
-diff --git a/gcc/testsuite/c-c++-common/musttail3.c 
b/gcc/testsuite/c-c++-common/musttail3.c
-index 7499fd6460b4..daedca28852a 100644
---- a/gcc/testsuite/c-c++-common/musttail3.c
-+++ b/gcc/testsuite/c-c++-common/musttail3.c
-@@ -11,7 +11,7 @@ struct str
- cstruct (int x)
- {
-   if (x < 10)
--    [[clang::musttail]] return cstruct (x + 1);
-+    [[gnu::musttail]] return cstruct (x + 1);
-   return ((struct str){ x, 0 });
- }
- 
-@@ -19,11 +19,11 @@ int
- foo (int x)
- {
-   if (x < 10)
--    [[clang::musttail]] return foo2 (x, 29);
-+    [[gnu::musttail]] return foo2 (x, 29);
-   if (x < 100)
-     {
-       int k = foo (x + 1);
--      [[clang::musttail]] return k;   /* { dg-error "cannot tail-call: " } */
-+      [[gnu::musttail]] return k;     /* { dg-error "cannot tail-call: " } */
-     }
-   return x;
- }
-diff --git a/gcc/testsuite/g++.dg/musttail14.C 
b/gcc/testsuite/g++.dg/musttail14.C
-index 810b45546d61..e4764a3bc03b 100644
---- a/gcc/testsuite/g++.dg/musttail14.C
-+++ b/gcc/testsuite/g++.dg/musttail14.C
-@@ -58,8 +58,8 @@ garply (int x)
-     case 3:
-       __attribute__(()) [[gnu::musttail]] __attribute__(()) [[]] 
__attribute__(()) return qux (45);
-     case 4:
--      [[]] __attribute__(()) [[clang::musttail]] __attribute__(()) [[]] 
return corge (46);
-+      [[]] __attribute__(()) [[gnu::musttail]] __attribute__(()) [[]] return 
corge (46);
-     default:
--      __attribute__(()) [[clang::musttail]] __attribute__(()) [[]] 
__attribute__(()) return freddy (47);
-+      __attribute__(()) [[gnu::musttail]] __attribute__(()) [[]] 
__attribute__(()) return freddy (47);
-     }
- }
--- 
-2.49.0
-

diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history
index 2a32843..92b88c3 100644
--- a/15.0.0/gentoo/README.history
+++ b/15.0.0/gentoo/README.history
@@ -1,6 +1,5 @@
 49     ????
 
-       + 77_all_PR119376-Disable-clang-musttail.patch
        + 80_all_PR119428.patch
 
 48     24 March 2025

Reply via email to