* [Bug c++/58201] [4.7/4.8/4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
@ 2013-08-20 14:49 ` paolo.carlini at oracle dot com
2013-08-20 15:58 ` [Bug c++/58201] [4.9 " paolo.carlini at oracle dot com
` (16 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-08-20 14:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
Status|UNCONFIRMED |NEW
Last reconfirmed| |2013-08-20
Summary|Undefined reference to |[4.7/4.8/4.9 Regression]
|`B::B(void const**)' |Undefined reference to
| |`B::B(void const**)'
Ever confirmed|0 |1
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
2013-08-20 14:49 ` [Bug c++/58201] [4.7/4.8/4.9 Regression] " paolo.carlini at oracle dot com
@ 2013-08-20 15:58 ` paolo.carlini at oracle dot com
2013-08-20 19:35 ` hubicka at gcc dot gnu.org
` (15 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-08-20 15:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #1 from Paolo Carlini <paolo.carlini at oracle dot com> ---
Honza could you please look into this?
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
2013-08-20 14:49 ` [Bug c++/58201] [4.7/4.8/4.9 Regression] " paolo.carlini at oracle dot com
2013-08-20 15:58 ` [Bug c++/58201] [4.9 " paolo.carlini at oracle dot com
@ 2013-08-20 19:35 ` hubicka at gcc dot gnu.org
2013-08-28 9:17 ` rguenth at gcc dot gnu.org
` (14 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: hubicka at gcc dot gnu.org @ 2013-08-20 19:35 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |hubicka at gcc dot gnu.org
--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
mine.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (2 preceding siblings ...)
2013-08-20 19:35 ` hubicka at gcc dot gnu.org
@ 2013-08-28 9:17 ` rguenth at gcc dot gnu.org
2013-09-02 11:37 ` paolo.carlini at oracle dot com
` (13 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-08-28 9:17 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.9.0
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (3 preceding siblings ...)
2013-08-28 9:17 ` rguenth at gcc dot gnu.org
@ 2013-09-02 11:37 ` paolo.carlini at oracle dot com
2013-09-02 11:42 ` kcc at gcc dot gnu.org
` (12 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-09-02 11:37 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kcc at gcc dot gnu.org
--- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> ---
*** Bug 58297 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (4 preceding siblings ...)
2013-09-02 11:37 ` paolo.carlini at oracle dot com
@ 2013-09-02 11:42 ` kcc at gcc dot gnu.org
2013-09-02 12:29 ` paolo.carlini at oracle dot com
` (11 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: kcc at gcc dot gnu.org @ 2013-09-02 11:42 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #4 from Kostya Serebryany <kcc at gcc dot gnu.org> ---
Nice. Any hope?
Chromium is another project which we can't build with gcc trunk
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (5 preceding siblings ...)
2013-09-02 11:42 ` kcc at gcc dot gnu.org
@ 2013-09-02 12:29 ` paolo.carlini at oracle dot com
2013-09-02 12:56 ` jakub at gcc dot gnu.org
` (10 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-09-02 12:29 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #5 from Paolo Carlini <paolo.carlini at oracle dot com> ---
In practice, this would block the release of 4.9.0. Thus hope for sure, it's
only matter of when.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (6 preceding siblings ...)
2013-09-02 12:29 ` paolo.carlini at oracle dot com
@ 2013-09-02 12:56 ` jakub at gcc dot gnu.org
2013-09-04 11:01 ` markus at trippelsdorf dot de
` (9 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-09-02 12:56 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P2 |P1
CC| |jakub at gcc dot gnu.org
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (7 preceding siblings ...)
2013-09-02 12:56 ` jakub at gcc dot gnu.org
@ 2013-09-04 11:01 ` markus at trippelsdorf dot de
2013-09-04 15:35 ` hubicka at gcc dot gnu.org
` (8 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: markus at trippelsdorf dot de @ 2013-09-04 11:01 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
Markus Trippelsdorf <markus at trippelsdorf dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |markus at trippelsdorf dot de
--- Comment #6 from Markus Trippelsdorf <markus at trippelsdorf dot de> ---
*** Bug 58313 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (8 preceding siblings ...)
2013-09-04 11:01 ` markus at trippelsdorf dot de
@ 2013-09-04 15:35 ` hubicka at gcc dot gnu.org
2013-09-04 15:42 ` jakub at gcc dot gnu.org
` (7 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: hubicka at gcc dot gnu.org @ 2013-09-04 15:35 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
OK, the destructor is used as:
_ZN1BD2EPPKv/21 (B::~B()) @0x7f56014ecd10
Type: function
Visibility: external public
References:
Referring:
Availability: not_available
Function flags:
Called by: _ZN1C2C2D2Ev/4 (1.00 per call) (can throw external) _ZN1C2C2D1Ev/5
(1.00 per call)
Calls:
_ZN1C2C2D2Ev/4 (C::C2::~C2()) @0x7f56014d2d10
Type: function definition analyzed
Visibility: public
Aux: @0x7f56014d2e40 References: __gxx_personality_v0/18 (addr)
Referring:
Function flags: body
Called by:
Calls: A::~A()/20 (1.00 per call) void operator delete(void*)/22 (1.00 per
call) A::~A()/20 (1.00 per call) B::~B()/21 (1.00 per call)
Now with older GCC we do not output _ZN1C2C2D2Ev
Older GCC gets:
C::C2::~C2()/4 @0x7f15ce0c6360 (asm: _ZN1C2C2D2Ev) analyzed needed reachable
body finalized
called by:
calls: A::~A()/16 (1.00 per call) void operator delete(void*)/14 (1.00 per
call) A::~A()/16 (1.00 per call) (can throw external) B::~B()/15 (1.00 per
call)
References: fn:<built-in>/17 (addr)
Refering this function:
B::~B()/15 @0x7f15ce0d4000 (asm: _ZN1BD2Ev) availability:not_available
called by: C::C2::~C2()/4 (1.00 per call) (can throw external) virtual
C::C2::~C2()/5 (1.00 per call)
calls:
References:
Refering this function:
So it calls B::~B() instead of B::~B(void const**)
The extra const** parameter is however passed in both I am not really sure
how this difference happens...
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (9 preceding siblings ...)
2013-09-04 15:35 ` hubicka at gcc dot gnu.org
@ 2013-09-04 15:42 ` jakub at gcc dot gnu.org
2013-09-04 15:50 ` hubicka at gcc dot gnu.org
` (6 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-09-04 15:42 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
In C++ destructors don't have parameters, so the question is where the bogusly
mangled name comes from. Is that coming from the implicit this argument that
is somehow used again in the mangling (though that would be the class *const,
wouldn't it)?
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (10 preceding siblings ...)
2013-09-04 15:42 ` jakub at gcc dot gnu.org
@ 2013-09-04 15:50 ` hubicka at gcc dot gnu.org
2013-09-05 23:04 ` hubicka at gcc dot gnu.org
` (5 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: hubicka at gcc dot gnu.org @ 2013-09-04 15:50 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #9 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Created attachment 30749
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30749&action=edit
Proposed fix.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (11 preceding siblings ...)
2013-09-04 15:50 ` hubicka at gcc dot gnu.org
@ 2013-09-05 23:04 ` hubicka at gcc dot gnu.org
2013-09-05 23:08 ` hubicka at gcc dot gnu.org
` (4 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: hubicka at gcc dot gnu.org @ 2013-09-05 23:04 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #10 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Author: hubicka
Date: Thu Sep 5 23:04:11 2013
New Revision: 202298
URL: http://gcc.gnu.org/viewcvs?rev=202298&root=gcc&view=rev
Log:
PR middle-end/58201
* cgraphunit.c (analyze_functions): Clear AUX fields
after processing; initialize assembler name has.
* g++.dg/torture/pr58201_0.C: New testcase.
* g++.dg/torture/pr58201_1.C: New testcase.
* g++.dg/torture/pr58201.h: New testcase.
Added:
trunk/gcc/testsuite/g++.dg/torture/pr58201.h
trunk/gcc/testsuite/g++.dg/torture/pr58201_0.C
trunk/gcc/testsuite/g++.dg/torture/pr58201_1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraphunit.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (12 preceding siblings ...)
2013-09-05 23:04 ` hubicka at gcc dot gnu.org
@ 2013-09-05 23:08 ` hubicka at gcc dot gnu.org
2013-09-06 17:48 ` paolo.carlini at oracle dot com
` (3 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: hubicka at gcc dot gnu.org @ 2013-09-05 23:08 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #11 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (13 preceding siblings ...)
2013-09-05 23:08 ` hubicka at gcc dot gnu.org
@ 2013-09-06 17:48 ` paolo.carlini at oracle dot com
2013-09-07 8:54 ` hubicka at ucw dot cz
` (2 subsequent siblings)
17 siblings, 0 replies; 19+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-09-06 17:48 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |paolo.carlini at oracle dot com
--- Comment #12 from Paolo Carlini <paolo.carlini at oracle dot com> ---
The fix caused a regression:
FAIL: g++.dg/template/cond2.C -std=gnu++98 (test for warnings, line 9)
FAIL: g++.dg/template/cond2.C -std=gnu++11 (test for warnings, line 9)
as described here too: http://gcc.gnu.org/ml/gcc-patches/2013-09/msg00425.html
I'm a bit worried, because normally we don't check in the testsuite that those
messages about the instantiation point have the right line number, thus, we may
well have a pretty serious diagnostic regression, beyond the specific failure.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (14 preceding siblings ...)
2013-09-06 17:48 ` paolo.carlini at oracle dot com
@ 2013-09-07 8:54 ` hubicka at ucw dot cz
2013-09-07 11:09 ` jakub at gcc dot gnu.org
2013-09-07 11:15 ` paolo.carlini at oracle dot com
17 siblings, 0 replies; 19+ messages in thread
From: hubicka at ucw dot cz @ 2013-09-07 8:54 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #13 from Jan Hubicka <hubicka at ucw dot cz> ---
> I'm a bit worried, because normally we don't check in the testsuite that those
> messages about the instantiation point have the right line number, thus, we may
> well have a pretty serious diagnostic regression, beyond the specific failure.
I put some analysis here
http://gcc.gnu.org/ml/gcc-patches/2013-09/msg00456.html
It is latent bug in C++ FE using stale source_location. Prior my change the
error
came on different location based on optimization flags and -flto. After my
change
it is consistently wrong ;)
Sadly i am not sure how to get correct location within the mangling hook and
where it is supposed to point.
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (15 preceding siblings ...)
2013-09-07 8:54 ` hubicka at ucw dot cz
@ 2013-09-07 11:09 ` jakub at gcc dot gnu.org
2013-09-07 11:15 ` paolo.carlini at oracle dot com
17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-09-07 11:09 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Perhaps use error_at and DECL_SOURCE_LOCATION of the expr being mangled?
Perhaps temporary set input_location to DECL_SOURCE_LOCATION for the duration
of mangle_decl, and use error_at (EXPR_LOC_OR_HERE (expr), instead of error?
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug c++/58201] [4.9 Regression] Undefined reference to `B::B(void const**)'
2013-08-20 13:20 [Bug c++/58201] New: [g++] Undefined reference to `B::B(void const**)' aivchenk at gmail dot com
` (16 preceding siblings ...)
2013-09-07 11:09 ` jakub at gcc dot gnu.org
@ 2013-09-07 11:15 ` paolo.carlini at oracle dot com
17 siblings, 0 replies; 19+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-09-07 11:15 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58201
--- Comment #15 from Paolo Carlini <paolo.carlini at oracle dot com> ---
Oh, I was just assuming that we didn't have the information! Indeed normally
exprs do have locations!
^ permalink raw reply [flat|nested] 19+ messages in thread