aboutsummaryrefslogtreecommitdiff
path: root/packages/gcc/11.2.0/0012-c-designator-and-anon-struct-PR101767.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gcc/11.2.0/0012-c-designator-and-anon-struct-PR101767.patch')
-rw-r--r--packages/gcc/11.2.0/0012-c-designator-and-anon-struct-PR101767.patch71
1 files changed, 0 insertions, 71 deletions
diff --git a/packages/gcc/11.2.0/0012-c-designator-and-anon-struct-PR101767.patch b/packages/gcc/11.2.0/0012-c-designator-and-anon-struct-PR101767.patch
deleted file mode 100644
index 65f3237e..00000000
--- a/packages/gcc/11.2.0/0012-c-designator-and-anon-struct-PR101767.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From b94c95fc1199bfa2c7ab577921b07ef545976cac Mon Sep 17 00:00:00 2001
-From: Jason Merrill <jason@redhat.com>
-Date: Fri, 18 Mar 2022 14:36:19 -0400
-Subject: c++: designator and anon struct [PR101767]
-
-We found .x in the anonymous struct, but then didn't find .y there; we
-should decide that means we're done with the struct rather than that the
-code is wrong.
-
- PR c++/101767
-
-gcc/cp/ChangeLog:
-
- * decl.c (reshape_init_class): Back out of anon struct
- if a designator doesn't match.
-
-gcc/testsuite/ChangeLog:
-
- * g++.dg/ext/anon-struct10.C: New test.
----
- gcc/cp/decl.c | 5 +++++
- gcc/testsuite/g++.dg/ext/anon-struct10.C | 21 +++++++++++++++++++++
- 2 files changed, 26 insertions(+)
- create mode 100644 gcc/testsuite/g++.dg/ext/anon-struct10.C
-
-diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
-index 41094c891fc..6d3e764fb14 100644
---- a/gcc/cp/decl.c
-+++ b/gcc/cp/decl.c
-@@ -6437,6 +6437,11 @@ reshape_init_class (tree type, reshape_iter *d, bool first_initializer_p,
- return error_mark_node;
- }
-
-+ if (!field && ANON_AGGR_TYPE_P (type))
-+ /* Apparently the designator isn't for a member of this anonymous
-+ struct, so head back to the enclosing class. */
-+ break;
-+
- if (!field || TREE_CODE (field) != FIELD_DECL)
- {
- if (complain & tf_error)
-diff --git a/gcc/testsuite/g++.dg/ext/anon-struct10.C b/gcc/testsuite/g++.dg/ext/anon-struct10.C
-new file mode 100644
-index 00000000000..9b01bf3fada
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/ext/anon-struct10.C
-@@ -0,0 +1,21 @@
-+// PR c++/101767
-+// { dg-do compile { target c++11 } }
-+// { dg-additional-options "-Wno-pedantic" }
-+
-+typedef struct {
-+ struct {
-+ int x;
-+ };
-+ union {
-+ int y;
-+ float z;
-+ };
-+} S;
-+
-+void foo(void)
-+{
-+ [[maybe_unused]] S a = {
-+ .x = 1,
-+ .y = 0
-+ };
-+}
---
-2.31.1
-