commit:     fd69f7a88e4fa1dd773750c0ce7a31c20f452ce2
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  4 10:36:15 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct  4 10:36:57 2024 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=fd69f7a8

15.0.0: drop patches merged upstream

- 71_all_c-Allow-references-to-internal-linkage-vars-in-C-11-.patch
- 72_all_c-Return-the-underlying-decl-rather-than-the-USING_D.patch

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

 ...erences-to-internal-linkage-vars-in-C-11-.patch | 96 ----------------------
 ...e-underlying-decl-rather-than-the-USING_D.patch | 76 -----------------
 15.0.0/gentoo/README.history                       |  5 ++
 3 files changed, 5 insertions(+), 172 deletions(-)

diff --git 
a/15.0.0/gentoo/71_all_c-Allow-references-to-internal-linkage-vars-in-C-11-.patch
 
b/15.0.0/gentoo/71_all_c-Allow-references-to-internal-linkage-vars-in-C-11-.patch
deleted file mode 100644
index 4e2f1f4..0000000
--- 
a/15.0.0/gentoo/71_all_c-Allow-references-to-internal-linkage-vars-in-C-11-.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 923bd335a44b1b556d705a7f1d36a2e9c06d9c5c Mon Sep 17 00:00:00 2001
-Message-ID: 
<923bd335a44b1b556d705a7f1d36a2e9c06d9c5c.1728034006.git....@gentoo.org>
-From: Nathaniel Shead <[email protected]>
-Date: Fri, 4 Oct 2024 12:41:49 +1000
-Subject: [PATCH 1/2] c++: Allow references to internal-linkage vars in C++11
- [PR113266]
-
-[temp.arg.nontype] changed in C++11 to allow naming internal-linkage
-variables and functions.  We currently already handle internal-linkage
-functions, but variables were missed; this patch updates this.
-
-       PR c++/113266
-       PR c++/116911
-
-gcc/cp/ChangeLog:
-
-       * parser.cc (cp_parser_template_argument): Allow
-       internal-linkage variables since C++11.
-
-gcc/testsuite/ChangeLog:
-
-       * g++.dg/cpp0x/nontype6.C: New test.
-
-Signed-off-by: Nathaniel Shead <[email protected]>
----
- gcc/cp/parser.cc                      | 17 ++++++++++++-----
- gcc/testsuite/g++.dg/cpp0x/nontype6.C | 19 +++++++++++++++++++
- 2 files changed, 31 insertions(+), 5 deletions(-)
- create mode 100644 gcc/testsuite/g++.dg/cpp0x/nontype6.C
-
-diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
-index 08f9c89f1f0..e758ddeb1d5 100644
---- a/gcc/cp/parser.cc
-+++ b/gcc/cp/parser.cc
-@@ -19864,9 +19864,11 @@ cp_parser_template_argument (cp_parser* parser)
- 
-      -- the name of a non-type template-parameter; or
- 
--     -- the name of an object or function with external linkage...
-+     -- the name of an object or function with external (or internal,
-+      since C++11) linkage...
- 
--     -- the address of an object or function with external linkage...
-+     -- the address of an object or function with external (or internal,
-+      since C++11) linkage...
- 
-      -- a pointer to member...  */
-   /* Look for a non-type template parameter.  */
-@@ -19929,11 +19931,16 @@ cp_parser_template_argument (cp_parser* parser)
-           probe = TREE_OPERAND (probe, 1);
-         if (VAR_P (probe))
-           {
--            /* A variable without external linkage might still be a
-+            /* A variable without valid linkage might still be a
-                valid constant-expression, so no error is issued here
-                if the external-linkage check fails.  */
--            if (!address_p && !DECL_EXTERNAL_LINKAGE_P (probe))
--              cp_parser_simulate_error (parser);
-+            if (!address_p && cxx_dialect < cxx17)
-+              {
-+                linkage_kind linkage = decl_linkage (probe);
-+                if (linkage != lk_external
-+                    && (cxx_dialect < cxx11 || linkage != lk_internal))
-+                  cp_parser_simulate_error (parser);
-+              }
-           }
-         else if (is_overloaded_fn (argument))
-           /* All overloaded functions are allowed; if the external
-diff --git a/gcc/testsuite/g++.dg/cpp0x/nontype6.C 
b/gcc/testsuite/g++.dg/cpp0x/nontype6.C
-new file mode 100644
-index 00000000000..5543d1e8b6d
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/cpp0x/nontype6.C
-@@ -0,0 +1,19 @@
-+// PR c++/113266, PR c++/116911
-+// { dg-do compile }
-+
-+template <int &> struct a {};
-+static int guard1;
-+a<guard1> b;  // { dg-error "constant-expression|invalid" "" { target 
c++98_only } }
-+
-+namespace {
-+  int guard2;
-+}
-+a<guard2> c;  // OK in C++98 because guard2 has external linkage
-+              // OK since C++11 because we can refer to an internal linkage 
decl
-+
-+void nolinkage() {
-+  static int guard3;
-+  a<guard3> d;  // { dg-error "constant-expression|invalid" "" { target 
c++98_only } }
-+  // { dg-error "constant expression|no linkage" "" { target { c++11 && 
c++14_down } } .-1 }
-+  // OK since C++17 since we can now refer to no-linkage decls
-+}
--- 
-2.46.2
-

diff --git 
a/15.0.0/gentoo/72_all_c-Return-the-underlying-decl-rather-than-the-USING_D.patch
 
b/15.0.0/gentoo/72_all_c-Return-the-underlying-decl-rather-than-the-USING_D.patch
deleted file mode 100644
index ab12bf6..0000000
--- 
a/15.0.0/gentoo/72_all_c-Return-the-underlying-decl-rather-than-the-USING_D.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From ba7c4e109fc589603911630deb2f19eba88bdbe8 Mon Sep 17 00:00:00 2001
-Message-ID: 
<ba7c4e109fc589603911630deb2f19eba88bdbe8.1728034006.git....@gentoo.org>
-In-Reply-To: 
<923bd335a44b1b556d705a7f1d36a2e9c06d9c5c.1728034006.git....@gentoo.org>
-References: 
<923bd335a44b1b556d705a7f1d36a2e9c06d9c5c.1728034006.git....@gentoo.org>
-From: Nathaniel Shead <[email protected]>
-Date: Fri, 4 Oct 2024 10:52:02 +1000
-Subject: [PATCH 2/2] c++: Return the underlying decl rather than the
- USING_DECL from update_binding [PR116913]
-
-Users of pushdecl assume that the returned decl will be a possibly
-updated decl matching the one that was passed in.  My r15-3910 change
-broke this since in some cases we would now return USING_DECLs; this
-patch fixes the situation.
-
-       PR c++/116913
-
-gcc/cp/ChangeLog:
-
-       * name-lookup.cc (update_binding): Return the strip_using'd old
-       decl rather than the binding.
-
-gcc/testsuite/ChangeLog:
-
-       * g++.dg/lookup/using70.C: New test.
-
-Signed-off-by: Nathaniel Shead <[email protected]>
----
- gcc/cp/name-lookup.cc                 |  4 ++--
- gcc/testsuite/g++.dg/lookup/using70.C | 13 +++++++++++++
- 2 files changed, 15 insertions(+), 2 deletions(-)
- create mode 100644 gcc/testsuite/g++.dg/lookup/using70.C
-
-diff --git a/gcc/cp/name-lookup.cc b/gcc/cp/name-lookup.cc
-index 4754ef5a522..609bd6e8c9b 100644
---- a/gcc/cp/name-lookup.cc
-+++ b/gcc/cp/name-lookup.cc
-@@ -3101,7 +3101,7 @@ update_binding (cp_binding_level *level, cxx_binding 
*binding, tree *slot,
-       {
-         if (same_type_p (TREE_TYPE (old), TREE_TYPE (decl)))
-           /* Two type decls to the same type.  Do nothing.  */
--          return old_bval;
-+          return old;
-         else
-           goto conflict;
-       }
-@@ -3114,7 +3114,7 @@ update_binding (cp_binding_level *level, cxx_binding 
*binding, tree *slot,
- 
-         /* The new one must be an alias at this point.  */
-         gcc_assert (DECL_NAMESPACE_ALIAS (decl));
--        return old_bval;
-+        return old;
-       }
-       else if (TREE_CODE (old) == VAR_DECL)
-       {
-diff --git a/gcc/testsuite/g++.dg/lookup/using70.C 
b/gcc/testsuite/g++.dg/lookup/using70.C
-new file mode 100644
-index 00000000000..14838eea7ec
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/lookup/using70.C
-@@ -0,0 +1,13 @@
-+// PR c++/116913
-+// { dg-do compile { target c++11 } }
-+
-+namespace ns {
-+  struct c {};
-+  using d = int;
-+}
-+
-+using ns::c;
-+using ns::d;
-+
-+using c = ns::c;
-+using d = ns::d;
--- 
-2.46.2
-

diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history
index 2d85dc2..f58b501 100644
--- a/15.0.0/gentoo/README.history
+++ b/15.0.0/gentoo/README.history
@@ -1,3 +1,8 @@
+15     ????
+
+       - 71_all_c-Allow-references-to-internal-linkage-vars-in-C-11-.patch
+       - 72_all_c-Return-the-underlying-decl-rather-than-the-USING_D.patch
+
 14     4 October 2024
 
        - 70_all_middle-end-check-explicitly-for-external-or-constant.patch

Reply via email to