aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Uecker <uecker@tugraz.at>2024-04-05 12:14:56 +0200
committerMartin Uecker <uecker@tugraz.at>2024-04-05 12:17:17 +0200
commit8057f9aa1f7e70490064de796d7a8d42d446caf8 (patch)
treeff58ea63d02489176ab0eea1c70b1225e777aa59 /gcc
parent9627cbbadbb935943c3d8336c057a021bbac2000 (diff)
downloadgcc-8057f9aa1f7e70490064de796d7a8d42d446caf8.zip
gcc-8057f9aa1f7e70490064de796d7a8d42d446caf8.tar.gz
gcc-8057f9aa1f7e70490064de796d7a8d42d446caf8.tar.bz2
Revert "Fix ICE with -g and -std=c23 related to incomplete types [PR114361]"
This reverts commit 871bb5ad2dd56343d80b6a6d269e85efdc9999e5 because it breaks LTO and needs a bit more work. See PR 114574.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c/c-decl.cc1
-rw-r--r--gcc/testsuite/gcc.dg/c23-tag-incomplete-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/c23-tag-incomplete-2.c13
-rw-r--r--gcc/testsuite/gcc.dg/pr114361.c11
4 files changed, 0 insertions, 39 deletions
diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc
index f2083b9..c747abe 100644
--- a/gcc/c/c-decl.cc
+++ b/gcc/c/c-decl.cc
@@ -9722,7 +9722,6 @@ finish_struct (location_t loc, tree t, tree fieldlist, tree attributes,
C_TYPE_VARIABLE_SIZE (x) = C_TYPE_VARIABLE_SIZE (t);
C_TYPE_VARIABLY_MODIFIED (x) = C_TYPE_VARIABLY_MODIFIED (t);
C_TYPE_INCOMPLETE_VARS (x) = NULL_TREE;
- TYPE_CANONICAL (x) = TYPE_CANONICAL (t);
}
/* Update type location to the one of the definition, instead of e.g.
diff --git a/gcc/testsuite/gcc.dg/c23-tag-incomplete-1.c b/gcc/testsuite/gcc.dg/c23-tag-incomplete-1.c
deleted file mode 100644
index 82d6525..0000000
--- a/gcc/testsuite/gcc.dg/c23-tag-incomplete-1.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/* { dg-do compile }
- * { dg-options "-std=c23 -g" } */
-
-struct a;
-typedef struct a b;
-
-void g() {
- struct a { b* x; };
-}
-
-struct a { b* x; };
-
-
-
diff --git a/gcc/testsuite/gcc.dg/c23-tag-incomplete-2.c b/gcc/testsuite/gcc.dg/c23-tag-incomplete-2.c
deleted file mode 100644
index bc47a04..0000000
--- a/gcc/testsuite/gcc.dg/c23-tag-incomplete-2.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/* { dg-do compile }
- * { dg-options "-std=c23 -g" } */
-
-struct a;
-typedef struct a b;
-
-void f() {
- extern struct a { b* x; } t;
-}
-
-extern struct a { b* x; } t;
-
-
diff --git a/gcc/testsuite/gcc.dg/pr114361.c b/gcc/testsuite/gcc.dg/pr114361.c
deleted file mode 100644
index 0f3feb5..0000000
--- a/gcc/testsuite/gcc.dg/pr114361.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/* PR c/114361 */
-/* { dg-do compile } */
-/* { dg-options "-std=gnu23 -g" } */
-
-void f()
-{
- typedef struct foo bar;
- typedef __typeof( ({ (struct foo { bar *x; }){ }; }) ) wuz;
- struct foo { wuz *x; };
-}
-