public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
@ 2014-03-19 7:53 ` trippels at gcc dot gnu.org
2014-03-19 8:02 ` trippels at gcc dot gnu.org
` (13 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-03-19 7:53 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Created attachment 32387
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32387&action=edit
unreduced testcase
I've narrowed it down to a single file. Can't say I understand
the issue fully yet.
Bad:
x4 kparts # g++ -c -O2 part.ii && nm part.o | grep N6KParts13ReadWritePartD
0000000000004d50 T _ZN6KParts13ReadWritePartD0Ev
0000000000004d00 T _ZN6KParts13ReadWritePartD1Ev
0000000000004cd0 T _ZN6KParts13ReadWritePartD2Ev
Good:
x4 kparts # /var/tmp/gcc_test/usr/local/bin/g++ -c -O2 part.ii && nm part.o |
grep N6KParts13ReadWritePartD
0000000000004d70 T _ZN6KParts13ReadWritePartD0Ev
0000000000004d00 T _ZN6KParts13ReadWritePartD1Ev
0000000000004cd0 T _ZN6KParts13ReadWritePartD2Ev
0000000000004da0 T _ZThn16_N6KParts13ReadWritePartD0Ev
0000000000004d60 T _ZThn16_N6KParts13ReadWritePartD1Ev
0000000000004d90 T _ZTv0_n24_N6KParts13ReadWritePartD0Ev
0000000000004d50 T _ZTv0_n24_N6KParts13ReadWritePartD1Ev
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
2014-03-19 7:53 ` [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs trippels at gcc dot gnu.org
@ 2014-03-19 8:02 ` trippels at gcc dot gnu.org
2014-03-19 8:53 ` jakub at gcc dot gnu.org
` (12 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-03-19 8:02 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
--- part_good.s 2014-03-19 08:57:10.100342064 +0100
+++ part_bad.s 2014-03-19 08:56:50.134141664 +0100
@@ -13466,49 +13466,10 @@
.text
.LHOTE151:
.section .text.unlikely
+ .align 2
.LCOLDB152:
.text
.LHOTB152:
- .p2align 4,,15
- .globl _ZTv0_n24_N6KParts13ReadWritePartD1Ev
- .type _ZTv0_n24_N6KParts13ReadWritePartD1Ev, @function
-_ZTv0_n24_N6KParts13ReadWritePartD1Ev:
-.LFB6687:
- .cfi_startproc
- movq (%rdi), %r10
- addq -24(%r10), %rdi
- jmp _ZN6KParts13ReadWritePartD1Ev
- .cfi_endproc
-.LFE6687:
- .size _ZTv0_n24_N6KParts13ReadWritePartD1Ev,
.-_ZTv0_n24_N6KParts13ReadWritePartD1Ev
- .section .text.unlikely
-.LCOLDE152:
- .text
-.LHOTE152:
- .section .text.unlikely
-.LCOLDB153:
- .text
-.LHOTB153:
- .p2align 4,,15
- .globl _ZThn16_N6KParts13ReadWritePartD1Ev
- .type _ZThn16_N6KParts13ReadWritePartD1Ev, @function
-_ZThn16_N6KParts13ReadWritePartD1Ev:
-.LFB6688:
- .cfi_startproc
- subq $16, %rdi
- jmp _ZN6KParts13ReadWritePartD1Ev
- .cfi_endproc
-.LFE6688:
- .size _ZThn16_N6KParts13ReadWritePartD1Ev,
.-_ZThn16_N6KParts13ReadWritePartD1Ev
- .section .text.unlikely
-.LCOLDE153:
- .text
-.LHOTE153:
- .section .text.unlikely
- .align 2
-.LCOLDB154:
- .text
-.LHOTB154:
.align 2
.p2align 4,,15
.globl _ZN6KParts13ReadWritePartD0Ev
@@ -13529,53 +13490,14 @@
.LFE5572:
.size _ZN6KParts13ReadWritePartD0Ev, .-_ZN6KParts13ReadWritePartD0Ev
.section .text.unlikely
-.LCOLDE154:
- .text
-.LHOTE154:
- .section .text.unlikely
-.LCOLDB155:
- .text
-.LHOTB155:
- .p2align 4,,15
- .globl _ZTv0_n24_N6KParts13ReadWritePartD0Ev
- .type _ZTv0_n24_N6KParts13ReadWritePartD0Ev, @function
-_ZTv0_n24_N6KParts13ReadWritePartD0Ev:
-.LFB6689:
- .cfi_startproc
- movq (%rdi), %r10
- addq -24(%r10), %rdi
- jmp _ZN6KParts13ReadWritePartD0Ev
- .cfi_endproc
-.LFE6689:
- .size _ZTv0_n24_N6KParts13ReadWritePartD0Ev,
.-_ZTv0_n24_N6KParts13ReadWritePartD0Ev
- .section .text.unlikely
-.LCOLDE155:
- .text
-.LHOTE155:
- .section .text.unlikely
-.LCOLDB156:
- .text
-.LHOTB156:
- .p2align 4,,15
- .globl _ZThn16_N6KParts13ReadWritePartD0Ev
- .type _ZThn16_N6KParts13ReadWritePartD0Ev, @function
-_ZThn16_N6KParts13ReadWritePartD0Ev:
-.LFB6690:
- .cfi_startproc
- subq $16, %rdi
- jmp _ZN6KParts13ReadWritePartD0Ev
- .cfi_endproc
-.LFE6690:
- .size _ZThn16_N6KParts13ReadWritePartD0Ev,
.-_ZThn16_N6KParts13ReadWritePartD0Ev
- .section .text.unlikely
...
.section .rodata
.align 32
.type
_ZZN6KParts13ReadWritePart11setModifiedEbE19__PRETTY_FUNCTION__, @object
@@ -18015,8 +17937,8 @@
.quad _ZNK6KParts13ReadWritePart10metaObjectEv
.quad _ZN6KParts13ReadWritePart11qt_metacastEPKc
.quad _ZN6KParts13ReadWritePart11qt_metacallEN11QMetaObject4CallEiPPv
- .quad _ZN6KParts13ReadWritePartD1Ev
- .quad _ZN6KParts13ReadWritePartD0Ev
+ .quad __cxa_pure_virtual
+ .quad __cxa_pure_virtual
.quad _ZN7QObject5eventEP6QEvent
.quad _ZN7QObject11eventFilterEPS_P6QEvent
.quad _ZN7QObject10timerEventEP11QTimerEvent
@@ -18050,8 +17972,8 @@
.quad 16
.quad -16
.quad _ZTIN6KParts13ReadWritePartE
- .quad _ZThn16_N6KParts13ReadWritePartD1Ev
- .quad _ZThn16_N6KParts13ReadWritePartD0Ev
+ .quad __cxa_pure_virtual
+ .quad __cxa_pure_virtual
.quad _ZN6KParts8PartBase16setComponentDataERK14KComponentData
.quad _ZN6KParts8PartBase16setComponentDataERK14KComponentDatab
.quad 0
@@ -18070,8 +17992,8 @@
.quad -32
.quad -32
.quad _ZTIN6KParts13ReadWritePartE
- .quad _ZTv0_n24_N6KParts13ReadWritePartD1Ev
- .quad _ZTv0_n24_N6KParts13ReadWritePartD0Ev
+ .quad __cxa_pure_virtual
+ .quad __cxa_pure_virtual
.quad _ZNK13KXMLGUIClient6actionERK11QDomElement
.quad _ZNK13KXMLGUIClient16actionCollectionEv
.quad _ZNK13KXMLGUIClient13componentDataEv
@@ -18137,5 +18059,5 @@
_ZN6KParts4Part25staticMetaObjectExtraDataE:
.quad 0
.quad
_ZN6KParts4Part18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv
- .ident "GCC: (GNU) 4.9.0 20140314 (experimental)"
+ .ident "GCC: (GNU) 4.9.0 20140318 (experimental)"
.section .note.GNU-stack,"",@progbits
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
2014-03-19 7:53 ` [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs trippels at gcc dot gnu.org
2014-03-19 8:02 ` trippels at gcc dot gnu.org
@ 2014-03-19 8:53 ` jakub at gcc dot gnu.org
2014-03-19 15:02 ` jason at gcc dot gnu.org
` (11 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-03-19 8:53 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P1
CC| |jakub at gcc dot gnu.org
Target Milestone|--- |4.9.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2014-03-19 8:53 ` jakub at gcc dot gnu.org
@ 2014-03-19 15:02 ` jason at gcc dot gnu.org
2014-03-19 15:16 ` trippels at gcc dot gnu.org
` (10 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2014-03-19 15:02 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Markus Trippelsdorf from comment #2)
> --- part_good.s 2014-03-19 08:57:10.100342064 +0100
> +++ part_bad.s 2014-03-19 08:56:50.134141664 +0100
> - .quad _ZN6KParts13ReadWritePartD1Ev
> - .quad _ZN6KParts13ReadWritePartD0Ev
> + .quad __cxa_pure_virtual
> + .quad __cxa_pure_virtual
I have trouble believing this is causing the problem you are seeing; if
something were actually calling through this vtable slot it would write "pure
virtual method called" to stderr and then terminate.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2014-03-19 15:02 ` jason at gcc dot gnu.org
@ 2014-03-19 15:16 ` trippels at gcc dot gnu.org
2014-03-19 15:24 ` jakub at gcc dot gnu.org
` (9 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-03-19 15:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #4 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
(In reply to Jason Merrill from comment #3)
> (In reply to Markus Trippelsdorf from comment #2)
> > --- part_good.s 2014-03-19 08:57:10.100342064 +0100
> > +++ part_bad.s 2014-03-19 08:56:50.134141664 +0100
> > - .quad _ZN6KParts13ReadWritePartD1Ev
> > - .quad _ZN6KParts13ReadWritePartD0Ev
> > + .quad __cxa_pure_virtual
> > + .quad __cxa_pure_virtual
>
> I have trouble believing this is causing the problem you are seeing; if
> something were actually calling through this vtable slot it would write
> "pure virtual method called" to stderr and then terminate.
part.ii is part of a library called libkparts.so.4.12.3.
When I compile part.cpp with a compiler before r208573 and link the
library (all other objects files for the lib are unchanged) and then install
the library to my system /usr/lib folder, Okular starts and works fine.
If I compile part.cpp with a compiler _after_ r208573 and link the
library and install it, Okular shows a popup "Unable to find the Okular
component".
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2014-03-19 15:16 ` trippels at gcc dot gnu.org
@ 2014-03-19 15:24 ` jakub at gcc dot gnu.org
2014-03-19 15:32 ` trippels at gcc dot gnu.org
` (8 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-03-19 15:24 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Markus Trippelsdorf from comment #4)
> If I compile part.cpp with a compiler _after_ r208573 and link the
> library and install it, Okular shows a popup "Unable to find the Okular
> component".
So, can you perhaps with the part_good.s put a breakpoint on the 2 dtors and 4
thunks to those, and see if they are ever called during the startup of Okular?
For the 2 dtors perhaps always look at the caller if it was a direct call or
call through vtable?
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2014-03-19 15:24 ` jakub at gcc dot gnu.org
@ 2014-03-19 15:32 ` trippels at gcc dot gnu.org
2014-03-19 16:29 ` jason at gcc dot gnu.org
` (7 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-03-19 15:32 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #6 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Looking at the library, the only difference are four additional
symbols in the good version:
_ZThn16_N6KParts13ReadWritePartD0Ev
_ZThn16_N6KParts13ReadWritePartD1Ev
_ZTv0_n24_N6KParts13ReadWritePartD0Ev
_ZTv0_n24_N6KParts13ReadWritePartD1Ev
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (6 preceding siblings ...)
2014-03-19 15:32 ` trippels at gcc dot gnu.org
@ 2014-03-19 16:29 ` jason at gcc dot gnu.org
2014-03-19 17:43 ` trippels at gcc dot gnu.org
` (6 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2014-03-19 16:29 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #7 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Markus Trippelsdorf from comment #4)
> part.ii is part of a library called libkparts.so.4.12.3.
> When I compile part.cpp with a compiler before r208573 and link the
> library (all other objects files for the lib are unchanged) and then install
> the library to my system /usr/lib folder, Okular starts and works fine.
>
> If I compile part.cpp with a compiler _after_ r208573 and link the
> library and install it, Okular shows a popup "Unable to find the Okular
> component".
Just to be clear, you've tested specifically 208572 vs 208573? Recompiling
just that one file?
> Looking at the library, the only difference are four additional
> symbols in the good version:
>
> _ZThn16_N6KParts13ReadWritePartD0Ev
> _ZThn16_N6KParts13ReadWritePartD1Ev
> _ZTv0_n24_N6KParts13ReadWritePartD0Ev
> _ZTv0_n24_N6KParts13ReadWritePartD1Ev
These are thunks to the destructor, which are unneeded if the (constructor)
vtable doesn't refer to them anymore.
(In reply to Jakub Jelinek from comment #5)
> So, can you perhaps with the part_good.s put a breakpoint on the 2 dtors and
> 4 thunks to those, and see if they are ever called during the startup of
> Okular?
Or with part_bad, put a breakpoint on __cxa_pure_virtual?
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (7 preceding siblings ...)
2014-03-19 16:29 ` jason at gcc dot gnu.org
@ 2014-03-19 17:43 ` trippels at gcc dot gnu.org
2014-03-19 17:53 ` jakub at gcc dot gnu.org
` (5 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-03-19 17:43 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #9 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Running nm on all my libs shows:
...
kde4/notepadpart.so
U _ZThn16_N6KParts13ReadWritePartD0Ev
...
kde4/okularpart.so
U _ZThn16_N6KParts13ReadWritePartD0Ev
...
libkatepartinterfaces.so
U _ZThn16_N6KParts13ReadWritePartD0Ev
libkatepartinterfaces.so.4
U _ZThn16_N6KParts13ReadWritePartD0Ev
libkatepartinterfaces.so.4.12.3
U _ZThn16_N6KParts13ReadWritePartD0Ev
...
libktexteditor.so
U _ZThn16_N6KParts13ReadWritePartD0Ev
libktexteditor.so.4
U _ZThn16_N6KParts13ReadWritePartD0Ev
libktexteditor.so.4.12.3
U _ZThn16_N6KParts13ReadWritePartD0Ev
So maybe okular and katepart just need to be recompiled?
Let me try this.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (8 preceding siblings ...)
2014-03-19 17:43 ` trippels at gcc dot gnu.org
@ 2014-03-19 17:53 ` jakub at gcc dot gnu.org
2014-03-19 18:01 ` trippels at gcc dot gnu.org
` (4 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-03-19 17:53 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Markus Trippelsdorf from comment #9)
> Running nm on all my libs shows:
> ...
> kde4/notepadpart.so
> U _ZThn16_N6KParts13ReadWritePartD0Ev
> ...
> kde4/okularpart.so
> U _ZThn16_N6KParts13ReadWritePartD0Ev
> ...
> libkatepartinterfaces.so
> U _ZThn16_N6KParts13ReadWritePartD0Ev
> libkatepartinterfaces.so.4
> U _ZThn16_N6KParts13ReadWritePartD0Ev
> libkatepartinterfaces.so.4.12.3
> U _ZThn16_N6KParts13ReadWritePartD0Ev
> ...
> libktexteditor.so
> U _ZThn16_N6KParts13ReadWritePartD0Ev
> libktexteditor.so.4
> U _ZThn16_N6KParts13ReadWritePartD0Ev
> libktexteditor.so.4.12.3
> U _ZThn16_N6KParts13ReadWritePartD0Ev
>
> So maybe okular and katepart just need to be recompiled?
> Let me try this.
So the errors were dlopen errors when trying to load those libraries?
BTW, were those shared libraries built by some earlier version of G++ 4.9, or
G++ 4.8 (or some older version)?
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (9 preceding siblings ...)
2014-03-19 17:53 ` jakub at gcc dot gnu.org
@ 2014-03-19 18:01 ` trippels at gcc dot gnu.org
2014-03-19 18:11 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: trippels at gcc dot gnu.org @ 2014-03-19 18:01 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #11 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #10)
> (In reply to Markus Trippelsdorf from comment #9)
> > Running nm on all my libs shows:
> > ...
> > kde4/notepadpart.so
> > U _ZThn16_N6KParts13ReadWritePartD0Ev
> > ...
> > kde4/okularpart.so
> > U _ZThn16_N6KParts13ReadWritePartD0Ev
> > ...
> > libkatepartinterfaces.so
> > U _ZThn16_N6KParts13ReadWritePartD0Ev
> > libkatepartinterfaces.so.4
> > U _ZThn16_N6KParts13ReadWritePartD0Ev
> > libkatepartinterfaces.so.4.12.3
> > U _ZThn16_N6KParts13ReadWritePartD0Ev
> > ...
> > libktexteditor.so
> > U _ZThn16_N6KParts13ReadWritePartD0Ev
> > libktexteditor.so.4
> > U _ZThn16_N6KParts13ReadWritePartD0Ev
> > libktexteditor.so.4.12.3
> > U _ZThn16_N6KParts13ReadWritePartD0Ev
> >
> > So maybe okular and katepart just need to be recompiled?
> > Let me try this.
>
> So the errors were dlopen errors when trying to load those libraries?
Recompilation of Okular, katelib and pykde4 fixed the issue.
But there were no dlopen errors in the log. Somehow KDE manages to
hide them from the user...
> BTW, were those shared libraries built by some earlier version of G++ 4.9,
> or G++ 4.8 (or some older version)?
Yes, there were build with earlier version of 4.9.
But this is a nasty issue that will potentially surprise many users of 4.9.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (10 preceding siblings ...)
2014-03-19 18:01 ` trippels at gcc dot gnu.org
@ 2014-03-19 18:11 ` jakub at gcc dot gnu.org
2014-03-25 20:25 ` [Bug c++/60566] [4.9 Regression] r208573 omits needed thunks jason at gcc dot gnu.org
` (2 subsequent siblings)
14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-03-19 18:11 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Markus Trippelsdorf from comment #11)
> > BTW, were those shared libraries built by some earlier version of G++ 4.9,
> > or G++ 4.8 (or some older version)?
>
> Yes, there were build with earlier version of 4.9.
>
> But this is a nasty issue that will potentially surprise many users of 4.9.
I agree it is nasty, but if a released compiler never has exposed such symbols
(I assume it could have done that only through bogus? devirtualization), then
it is not as bad as if this would be effectively an ABI break from 4.8.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 omits needed thunks
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (11 preceding siblings ...)
2014-03-19 18:11 ` jakub at gcc dot gnu.org
@ 2014-03-25 20:25 ` jason at gcc dot gnu.org
2014-03-26 16:51 ` jason at gcc dot gnu.org
2014-03-26 17:15 ` jason at gcc dot gnu.org
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2014-03-25 20:25 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |ASSIGNED
Last reconfirmed| |2014-03-25
Resolution|INVALID |---
Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
Summary|[4.9 Regression] r208573 |[4.9 Regression] r208573
|miscompiles kdelibs |omits needed thunks
Ever confirmed|0 |1
--- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> ---
Actually, this is an ABI breakage even without devirtualization:
wa.h:
struct A
{
virtual void f() = 0;
virtual ~A() {}
};
struct B: virtual A { int i; };
struct C: virtual A { int i; ~C(); };
wa.C:
#include "wa.h"
struct D: B, C { void f(); };
void D::f() {}
wa2.C:
#include "wa.h"
C::~C() { }
int main() {}
Compiling wa.C with 4.8 and wa2.C with 4.9 results in undefined symbol errors.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 omits needed thunks
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (12 preceding siblings ...)
2014-03-25 20:25 ` [Bug c++/60566] [4.9 Regression] r208573 omits needed thunks jason at gcc dot gnu.org
@ 2014-03-26 16:51 ` jason at gcc dot gnu.org
2014-03-26 17:15 ` jason at gcc dot gnu.org
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2014-03-26 16:51 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
--- Comment #14 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Wed Mar 26 16:50:26 2014
New Revision: 208845
URL: http://gcc.gnu.org/viewcvs?rev=208845&root=gcc&view=rev
Log:
PR c++/60566
PR c++/58678
* class.c (build_vtbl_initializer): Handle abstract dtors here.
* search.c (get_pure_virtuals): Not here.
Added:
trunk/gcc/testsuite/g++.dg/abi/thunk6.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/search.c
trunk/gcc/ipa-devirt.c
trunk/gcc/testsuite/g++.dg/ipa/devirt-21.C
trunk/gcc/testsuite/g++.dg/ipa/devirt-23.C
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug c++/60566] [4.9 Regression] r208573 omits needed thunks
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
` (13 preceding siblings ...)
2014-03-26 16:51 ` jason at gcc dot gnu.org
@ 2014-03-26 17:15 ` jason at gcc dot gnu.org
14 siblings, 0 replies; 15+ messages in thread
From: jason at gcc dot gnu.org @ 2014-03-26 17:15 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60566
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #15 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2014-03-26 17:15 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-60566-4@http.gcc.gnu.org/bugzilla/>
2014-03-19 7:53 ` [Bug c++/60566] [4.9 Regression] r208573 miscompiles kdelibs trippels at gcc dot gnu.org
2014-03-19 8:02 ` trippels at gcc dot gnu.org
2014-03-19 8:53 ` jakub at gcc dot gnu.org
2014-03-19 15:02 ` jason at gcc dot gnu.org
2014-03-19 15:16 ` trippels at gcc dot gnu.org
2014-03-19 15:24 ` jakub at gcc dot gnu.org
2014-03-19 15:32 ` trippels at gcc dot gnu.org
2014-03-19 16:29 ` jason at gcc dot gnu.org
2014-03-19 17:43 ` trippels at gcc dot gnu.org
2014-03-19 17:53 ` jakub at gcc dot gnu.org
2014-03-19 18:01 ` trippels at gcc dot gnu.org
2014-03-19 18:11 ` jakub at gcc dot gnu.org
2014-03-25 20:25 ` [Bug c++/60566] [4.9 Regression] r208573 omits needed thunks jason at gcc dot gnu.org
2014-03-26 16:51 ` jason at gcc dot gnu.org
2014-03-26 17:15 ` jason at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).