Fix coding style and add a new test-case (PR lto/85405).
authorMartin Liska <mliska@suse.cz>
Tue, 17 Apr 2018 08:28:21 +0000 (10:28 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 17 Apr 2018 08:28:21 +0000 (08:28 +0000)
2018-04-17  Martin Liska  <mliska@suse.cz>

PR lto/85405
* ipa-devirt.c (odr_types_equivalent_p): Remove trailing
in message, remote space in between '_G' and '('.
2018-04-17  Martin Liska  <mliska@suse.cz>

PR lto/85405
* g++.dg/lto/pr85405b_0.C: New test.
* g++.dg/lto/pr85405b_1.C: New test.

From-SVN: r259431

gcc/ChangeLog
gcc/ipa-devirt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lto/pr85405b_0.C [new file with mode: 0644]
gcc/testsuite/g++.dg/lto/pr85405b_1.C [new file with mode: 0644]

index a086530e968c9c66e6bad8cb7d2b33d5cc59fb31..186665e5b51f648fcb6685d2b63270f9e5aed9a4 100644 (file)
@@ -1,3 +1,9 @@
+2018-04-17  Martin Liska  <mliska@suse.cz>
+
+       PR lto/85405
+       * ipa-devirt.c (odr_types_equivalent_p): Remove trailing
+       in message, remote space in between '_G' and '('.
+
 2018-04-17  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/85281
index 5da0f72d14f3a65883c3a30d14c1bd3e39cf92b5..bdda7d6b4a97ef314bfb6ce6a19a602c121a8169 100644 (file)
@@ -1590,7 +1590,7 @@ odr_types_equivalent_p (tree t1, tree t2, bool warn, bool *warned,
                if (DECL_BIT_FIELD (f1) != DECL_BIT_FIELD (f2))
                  {
                    warn_odr (t1, t2, f1, f2, warn, warned,
-                             G_ ("one field is bitfield while other is not "));
+                             G_("one field is bitfield while other is not"));
                    return false;
                  }
                else
index 23c519efcf1cb4dd07f88056abb94e8b0c37db83..d1d15605cfa0ca0ae568db8e09e0672fa08aff6b 100644 (file)
@@ -1,3 +1,9 @@
+2018-04-17  Martin Liska  <mliska@suse.cz>
+
+       PR lto/85405
+       * g++.dg/lto/pr85405b_0.C: New test.
+       * g++.dg/lto/pr85405b_1.C: New test.
+
 2018-04-17  Martin Liska  <mliska@suse.cz>
 
        PR lto/85405
diff --git a/gcc/testsuite/g++.dg/lto/pr85405b_0.C b/gcc/testsuite/g++.dg/lto/pr85405b_0.C
new file mode 100644 (file)
index 0000000..a692abb
--- /dev/null
@@ -0,0 +1,18 @@
+// { dg-lto-do link }
+// { dg-lto-options {{-fPIC -shared -flto}} }
+
+class VclReferenceBase { // { dg-lto-warning "7: type 'struct VclReferenceBase' violates the C\\+\\+ One Definition Rule" }
+  int mnRefCnt;
+  int mbDisposed : 3;
+  virtual ~VclReferenceBase();
+};
+class a;
+class b {
+  a &e;
+  bool c();
+};
+class B {
+  VclReferenceBase d;
+};
+class a : B {};
+bool b::c() { return false; }
diff --git a/gcc/testsuite/g++.dg/lto/pr85405b_1.C b/gcc/testsuite/g++.dg/lto/pr85405b_1.C
new file mode 100644 (file)
index 0000000..fd98e63
--- /dev/null
@@ -0,0 +1,9 @@
+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" }
+
+protected:
+  virtual ~VclReferenceBase();
+};
+class : VclReferenceBase {
+} a;