On 04/17/2018 10:21 AM, Jakub Jelinek wrote: > On Tue, Apr 17, 2018 at 10:17:15AM +0200, Martin Liška wrote: >> Sure. I see other format violations, should I fix that in follow up patch: >> >> gcc/c-family/c-warn.c: ? G_ ("floating point overflow in >> expression %qE " >> gcc/c-family/c-warn.c: : G_ ("floating point overflow in >> expression of type %qT " >> gcc/gimple-ssa-sprintf.c: ? G_ ("%<%.*s%> directive >> output between %wu and " >> gcc/gimple-ssa-sprintf.c: : G_ ("%<%.*s%> directive >> output between %wu and " >> gcc/testsuite/gcc.dg/plugin/ggcplug.c: warning (0, G_ ("option >> '-fplugin-arg-%s-count-ggc-start=%s'" >> gcc/testsuite/gcc.dg/plugin/ggcplug.c: warning (0, G_ ("option >> '-fplugin-arg-%s-count-ggc-end=%s'" >> gcc/testsuite/gcc.dg/plugin/ggcplug.c: warning (0, G_ ("option >> '-fplugin-arg-%s-count-ggc-mark=%s'" >> gcc/testsuite/gcc.dg/plugin/ggcplug.c: warning (0, G_ ("option >> '-fplugin-arg-%s-test-extra-root=%s'" > > If you mean the space between G_ and (, sure, if you mean trailing > whitespace, note likely none of the above have trailing whitespace, at least > if they are followed by "something on another line.
I'm sending patch candidate. > >> 2018-04-17 Martin Liska <mli...@suse.cz> >> >> PR lto/85405 >> * ipa-devirt.c (odr_types_equivalent_p): > > Please say what you've changed ;) Yes, done that in r259431. M. > > Jakub >
>From 143424c754415a20487e0dc615ac46cd934c8f78 Mon Sep 17 00:00:00 2001 From: marxin <mli...@suse.cz> Date: Tue, 17 Apr 2018 10:11:07 +0200 Subject: [PATCH] Fix coding style and add a new test-case (PR lto/85405). gcc/ChangeLog: 2018-04-17 Martin Liska <mli...@suse.cz> PR lto/85405 * ipa-devirt.c (odr_types_equivalent_p): Remove trailing in message, remote space in between '_G' and '('. gcc/testsuite/ChangeLog: 2018-04-17 Martin Liska <mli...@suse.cz> PR lto/85405 * g++.dg/lto/pr85405b_0.C: New test. * g++.dg/lto/pr85405b_1.C: New test. --- gcc/ipa-devirt.c | 2 +- gcc/testsuite/g++.dg/lto/pr85405b_0.C | 18 ++++++++++++++++++ gcc/testsuite/g++.dg/lto/pr85405b_1.C | 9 +++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/lto/pr85405b_0.C create mode 100644 gcc/testsuite/g++.dg/lto/pr85405b_1.C diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c index 85b8ef175f3..cc9b5e347e6 100644 --- a/gcc/ipa-devirt.c +++ b/gcc/ipa-devirt.c @@ -1599,7 +1599,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 diff --git a/gcc/testsuite/g++.dg/lto/pr85405b_0.C b/gcc/testsuite/g++.dg/lto/pr85405b_0.C new file mode 100644 index 00000000000..a692abb7715 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr85405b_0.C @@ -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 index 00000000000..fd98e631d56 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr85405b_1.C @@ -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; -- 2.16.3