aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2018-03-21 19:22:10 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2018-03-21 19:22:10 +0000
commitb2595987bd320849de932cd2bcf83d2faf5f3ee8 (patch)
tree22f1f807e3d826f01e47fac68a07a0a4ae958428 /gcc
parent983d49ddd14395075e2169bba158a5bb8193d29e (diff)
downloadgcc-b2595987bd320849de932cd2bcf83d2faf5f3ee8.zip
gcc-b2595987bd320849de932cd2bcf83d2faf5f3ee8.tar.gz
gcc-b2595987bd320849de932cd2bcf83d2faf5f3ee8.tar.bz2
[PR c++/85008] ICE looking for clone
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg01129.html PR c++/85008 * tree.c (decl_linkage): Use DECL_CLONED_FUNCTION_P. * decl2.c (vague_linkage_p): Likewise. PR c++/85008 * g++.dg/pr85008.C: New. From-SVN: r258738
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/decl2.c2
-rw-r--r--gcc/cp/tree.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/pr85008.C8
5 files changed, 21 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c8b6b17..e97f99d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2018-03-21 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/85008
+ * tree.c (decl_linkage): Use DECL_CLONED_FUNCTION_P.
+ * decl2.c (vague_linkage_p): Likewise.
+
2018-03-21 David Malcolm <dmalcolm@redhat.com>
PR c++/84994
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 49d680f..e522b9e 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -1940,7 +1940,7 @@ vague_linkage_p (tree decl)
if ((DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (decl)
|| DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (decl))
&& DECL_CHAIN (decl)
- && DECL_CLONED_FUNCTION (DECL_CHAIN (decl)))
+ && DECL_CLONED_FUNCTION_P (DECL_CHAIN (decl)))
return vague_linkage_p (DECL_CHAIN (decl));
gcc_checking_assert (!DECL_COMDAT (decl));
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 5993633..f1a90bd 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -5022,7 +5022,7 @@ decl_linkage (tree decl)
if ((DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (decl)
|| DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (decl))
&& DECL_CHAIN (decl)
- && DECL_CLONED_FUNCTION (DECL_CHAIN (decl)))
+ && DECL_CLONED_FUNCTION_P (DECL_CHAIN (decl)))
return decl_linkage (DECL_CHAIN (decl));
if (TREE_CODE (decl) == NAMESPACE_DECL)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 43122bb..6ecd1f5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-03-21 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/85008
+ * g++.dg/pr85008.C: New.
+
2018-03-21 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/84615
diff --git a/gcc/testsuite/g++.dg/pr85008.C b/gcc/testsuite/g++.dg/pr85008.C
new file mode 100644
index 0000000..a9e515b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr85008.C
@@ -0,0 +1,8 @@
+// PR c++/85008 ICE concerning dtor clones
+
+void a() {
+ struct b {
+ ~b();
+ int r [!!&b::~b]; // { dg-error "address of " }
+ };
+}