tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of TYPE_DECL.
authorJan Hubicka <jh@suse.cz>
Thu, 1 Nov 2018 13:03:28 +0000 (14:03 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 1 Nov 2018 13:03:28 +0000 (13:03 +0000)
* 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

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lto/pr84805_1.C
gcc/testsuite/g++.dg/lto/pr85405_0.C
gcc/testsuite/g++.dg/lto/pr85405b_0.C
gcc/testsuite/g++.dg/lto/pr85405b_1.C
gcc/tree.c

index 2dbe48063a909c91d7718dc41cec3976370fe2c7..4e778e48ef99157ee0fe0d06389216553a55c4a4 100644 (file)
@@ -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
index b1310b7c77ccb0937affeba3317539cf41f7fddb..7cfb93650be106fee1e6e66d0cd0deaca089b995 100644 (file)
@@ -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 {
index 1d46ea94ba538a062084f86497023e61a9d534f5..09b70fca189ebc44191961b3cf84f617e4b19736 100644 (file)
@@ -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();
index a986a1f6f742b993771bb9d4b2534fefa9e66c00..201142bc1a3efdb927b8b8af940df25c2e8e1879 100644 (file)
@@ -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();
index fd98e631d5670d965bd5eb1f6dbe93c232c20bc9..5504c67cf64783c54945d4e32d31b995f78b6359 100644 (file)
@@ -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();
index 472b6082be96beb30bcaac289ced9bb30a4c826c..069d62d51be085f7ad5a710f30f64485994cb7e5 100644 (file)
@@ -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)
     {