aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2018-11-01 14:03:28 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2018-11-01 13:03:28 +0000
commit6d912664f483fb6995240c043caa000a242e0bf8 (patch)
tree6bdfd03632c63e13ca2f188ce297b939179481be /gcc
parent444cda74708a494cc814951fe29d4904cec4f7e2 (diff)
downloadgcc-6d912664f483fb6995240c043caa000a242e0bf8.zip
gcc-6d912664f483fb6995240c043caa000a242e0bf8.tar.gz
gcc-6d912664f483fb6995240c043caa000a242e0bf8.tar.bz2
tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of TYPE_DECL.
* tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of TYPE_DECL. * g++.dg/lto/pr84805_1.C: Update template. * g++.dg/lto/pr84805_0.C: Update template. * g++.dg/lto/pr84805_1b.C: Update template. * g++.dg/lto/pr84805_0b.C: Update template. From-SVN: r265722
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/g++.dg/lto/pr84805_1.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr85405_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr85405b_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr85405b_1.C2
-rw-r--r--gcc/tree.c2
6 files changed, 13 insertions, 4 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2dbe480..4e778e4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2018-11-30 Jan Hubicka <jh@suse.cz>
+
+ * g++.dg/lto/pr84805_1.C: Update template.
+ * g++.dg/lto/pr84805_0.C: Update template.
+ * g++.dg/lto/pr84805_1b.C: Update template.
+ * g++.dg/lto/pr84805_0b.C: Update template.
+
2018-11-01 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/87826
diff --git a/gcc/testsuite/g++.dg/lto/pr84805_1.C b/gcc/testsuite/g++.dg/lto/pr84805_1.C
index b1310b7..7cfb936 100644
--- a/gcc/testsuite/g++.dg/lto/pr84805_1.C
+++ b/gcc/testsuite/g++.dg/lto/pr84805_1.C
@@ -3,7 +3,7 @@ public:
virtual ~XclRoot();
};
class XclImpRoot : XclRoot {};
-struct RootData { // { dg-lto-warning "8: type 'struct RootData' violates the C\\+\\+ One Definition Rule" }
+struct RootData {
XclImpRoot pIR;
};
class ExcRoot {
diff --git a/gcc/testsuite/g++.dg/lto/pr85405_0.C b/gcc/testsuite/g++.dg/lto/pr85405_0.C
index 1d46ea9..09b70fc 100644
--- a/gcc/testsuite/g++.dg/lto/pr85405_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr85405_0.C
@@ -3,7 +3,7 @@
// { dg-require-effective-target fpic }
// { dg-lto-options {{-fPIC -shared -flto}} }
-class VclReferenceBase { // { dg-lto-warning "7: type 'struct VclReferenceBase' violates the C\\+\\+ One Definition Rule" }
+class VclReferenceBase {
int mnRefCnt;
bool mbDisposed : 1;
virtual ~VclReferenceBase();
diff --git a/gcc/testsuite/g++.dg/lto/pr85405b_0.C b/gcc/testsuite/g++.dg/lto/pr85405b_0.C
index a986a1f..201142b 100644
--- a/gcc/testsuite/g++.dg/lto/pr85405b_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr85405b_0.C
@@ -3,7 +3,7 @@
// { dg-require-effective-target fpic }
// { dg-lto-options {{-fPIC -shared -flto}} }
-class VclReferenceBase { // { dg-lto-warning "7: type 'struct VclReferenceBase' violates the C\\+\\+ One Definition Rule" }
+class VclReferenceBase {
int mnRefCnt;
int mbDisposed : 3;
virtual ~VclReferenceBase();
diff --git a/gcc/testsuite/g++.dg/lto/pr85405b_1.C b/gcc/testsuite/g++.dg/lto/pr85405b_1.C
index fd98e63..5504c67 100644
--- a/gcc/testsuite/g++.dg/lto/pr85405b_1.C
+++ b/gcc/testsuite/g++.dg/lto/pr85405b_1.C
@@ -1,6 +1,6 @@
class VclReferenceBase {
int mnRefCnt;
- int mbDisposed: 7; // { dg-lto-message "19: a field of same name but different type is defined in another translation unit" }
+ int mbDisposed: 7;
protected:
virtual ~VclReferenceBase();
diff --git a/gcc/tree.c b/gcc/tree.c
index 472b608..069d62d 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -5510,6 +5510,8 @@ free_lang_data_in_decl (tree decl, struct free_lang_data_d *fld)
DECL_VISIBILITY_SPECIFIED (decl) = 0;
DECL_INITIAL (decl) = NULL_TREE;
DECL_ORIGINAL_TYPE (decl) = NULL_TREE;
+ TREE_TYPE (decl) = void_type_node;
+ SET_DECL_ALIGN (decl, 0);
}
else if (TREE_CODE (decl) == FIELD_DECL)
{