public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
@ 2014-08-07 13:03 raphael.kubo.da.costa at intel dot com
  2014-11-19 13:27 ` [Bug c++/62051] " rguenth at gcc dot gnu.org
                   ` (18 more replies)
  0 siblings, 19 replies; 20+ messages in thread
From: raphael.kubo.da.costa at intel dot com @ 2014-08-07 13:03 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

            Bug ID: 62051
           Summary: [4.9/4.10] Undefined reference to vtable with -O2 and
                    -fdevirtualize-speculatively
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: raphael.kubo.da.costa at intel dot com

classes.h:
#ifndef CLASSES_H
#define CLASSES_H
struct Base {
  virtual ~Base() {}
  virtual void virt_func() = 0;
};
struct Derived : public Base {
 public:
  __attribute__((visibility("default"))) Derived();
  virtual ~Derived() { func(); }
  virtual void virt_func();
  __attribute__((visibility("default"))) void func();
};
#endif

classes.cc:
#include "classes.h"
Derived::Derived() {}
void Derived::virt_func() {}
void Derived::func() {}

main.cc:
#include "classes.h"
void f() {
  Derived* m = new Derived;
  delete m;
}
int main() {
  f();
  return 0;
}

Building it with:
  g++ -fvisibility=hidden -fPIC -shared -o libclasses.so classes.cc
  g++ -fPIC -O2 main.cc libclasses.so

Everything works fine with GCC 4.8, but both 4.9 and 4.10-snapshot fail like
this, unless I either use a lower optimization level or pass
-fno-devirtualize-speculatively:
/tmp/ccXRd3i4.o: In function `f()':
main.cc:(.text+0x2e): undefined reference to `vtable for Derived'
/tmp/ccXRd3i4.o: In function `Derived::~Derived()':
main.cc:(.text._ZN7DerivedD0Ev[_ZN7DerivedD5Ev]+0x3): undefined reference to
`vtable for Derived'
/tmp/ccXRd3i4.o: In function `Derived::~Derived()':
main.cc:(.text._ZN7DerivedD2Ev[_ZN7DerivedD5Ev]+0x7): undefined reference to
`vtable for Derived'

GCC 4.8:
Using built-in specs.
COLLECT_GCC=g++-4.8
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.8.3-7'
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.8 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.3 (Debian 4.8.3-7)

GCC 4.9:
Using built-in specs.
COLLECT_GCC=/usr/bin/g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.1-4'
--with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs
--enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.9 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls
--with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.1 (Debian 4.9.1-4)

GCC 4.10:
Using built-in specs.
COLLECT_GCC=/usr/lib/gcc-snapshot/bin/g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc-snapshot/libexec/gcc/x86_64-linux-gnu/4.10.0/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 20140802-1'
--with-bugurl=file:///usr/share/doc/gcc-snapshot/README.Bugs
--enable-languages=c,ada,c++,java,go,fortran,objc,obj-c++
--prefix=/usr/lib/gcc-snapshot --enable-shared --enable-linker-build-id
--disable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify
--enable-plugin --with-system-zlib --disable-browser-plugin
--enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.10-snap-amd64/jre
--enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.10-snap-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.10-snap-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--disable-werror --enable-checking=yes --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.10.0 20140802 (experimental) [trunk revision 213518] (Debian
20140802-1)


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug c++/62051] [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
@ 2014-11-19 13:27 ` rguenth at gcc dot gnu.org
  2015-03-19  9:31 ` [Bug ipa/62051] [4.9/5 Regression] " rguenth at gcc dot gnu.org
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-19 13:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.9.3


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [4.9/5 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
  2014-11-19 13:27 ` [Bug c++/62051] " rguenth at gcc dot gnu.org
@ 2015-03-19  9:31 ` rguenth at gcc dot gnu.org
  2015-03-19 10:38 ` trippels at gcc dot gnu.org
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-03-19  9:31 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
           Priority|P3                          |P1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-03-19
          Component|c++                         |ipa
            Version|unknown                     |5.0
     Ever confirmed|0                           |1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Thus confirmed.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [4.9/5 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
  2014-11-19 13:27 ` [Bug c++/62051] " rguenth at gcc dot gnu.org
  2015-03-19  9:31 ` [Bug ipa/62051] [4.9/5 Regression] " rguenth at gcc dot gnu.org
@ 2015-03-19 10:38 ` trippels at gcc dot gnu.org
  2015-03-19 19:15 ` hubicka at gcc dot gnu.org
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-03-19 10:38 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |trippels at gcc dot gnu.org

--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
If you define "void Derived::func()" directly in the header if works
as expected. 
And since ~Derived() calls this function you must provide it in every
compilation unit.
So the devirtualization looks correct to me.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [4.9/5 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (2 preceding siblings ...)
  2015-03-19 10:38 ` trippels at gcc dot gnu.org
@ 2015-03-19 19:15 ` hubicka at gcc dot gnu.org
  2015-03-23 15:50 ` jakub at gcc dot gnu.org
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: hubicka at gcc dot gnu.org @ 2015-03-19 19:15 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

--- Comment #5 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
yep, this seems to be the usual situation where visibilities does not mix that
well with assumptions that program is linked with symbols defined in the
headers.

I suppose we could make C++ FE to track if a type has methods with visibility
default declared (I can't track that from symbol table as they may be
unreachable). In such case we may want to consider methods of that type with
non-default visibility and no resolution info to be
!can_refer_decl_in_current_unit_p

Jason, would that make sense to you?


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [4.9/5 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (3 preceding siblings ...)
  2015-03-19 19:15 ` hubicka at gcc dot gnu.org
@ 2015-03-23 15:50 ` jakub at gcc dot gnu.org
  2015-03-23 19:30 ` jason at gcc dot gnu.org
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-03-23 15:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P2
                 CC|                            |jakub at gcc dot gnu.org


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [4.9/5 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (4 preceding siblings ...)
  2015-03-23 15:50 ` jakub at gcc dot gnu.org
@ 2015-03-23 19:30 ` jason at gcc dot gnu.org
  2015-03-23 23:20 ` hubicka at ucw dot cz
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jason at gcc dot gnu.org @ 2015-03-23 19:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

--- Comment #6 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Jan Hubicka from comment #5)
> I suppose we could make C++ FE to track if a type has methods with
> visibility default declared (I can't track that from symbol table as they
> may be unreachable). In such case we may want to consider methods of that
> type with non-default visibility and no resolution info to be
> !can_refer_decl_in_current_unit_p
> 
> Jason, would that make sense to you?

Yes, though I think for such a class we probably want to consider all virtual
methods unreachable unless they have explicit default visibility; in the
testcase the main program isn't being compiled with -fvisibility=hidden, so
~Derived has implicit default visibility.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [4.9/5 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (5 preceding siblings ...)
  2015-03-23 19:30 ` jason at gcc dot gnu.org
@ 2015-03-23 23:20 ` hubicka at ucw dot cz
  2015-06-26 20:05 ` [Bug ipa/62051] [4.9/5/6 " jakub at gcc dot gnu.org
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: hubicka at ucw dot cz @ 2015-03-23 23:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

--- Comment #7 from Jan Hubicka <hubicka at ucw dot cz> ---
> 
> Yes, though I think for such a class we probably want to consider all virtual
> methods unreachable unless they have explicit default visibility; in the
> testcase the main program isn't being compiled with -fvisibility=hidden, so
> ~Derived has implicit default visibility.

Yes, I think this makes sense.  Do you think you can implement the C++ FE part
that will mark classes having methods with visibility specified?
We do not LTO stream TYPE_METHODS so this is bit hard to determine at
gimple-fold
time.  At some point I tried to enable TYPE_METHODS streaming but it had bad
effect on firefox LTO linktimes by significantly increasing strongly connected
component size.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [4.9/5/6 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (6 preceding siblings ...)
  2015-03-23 23:20 ` hubicka at ucw dot cz
@ 2015-06-26 20:05 ` jakub at gcc dot gnu.org
  2015-06-26 20:34 ` jakub at gcc dot gnu.org
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-06-26 20:05 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 4.9.3 has been released.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [4.9/5/6 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (7 preceding siblings ...)
  2015-06-26 20:05 ` [Bug ipa/62051] [4.9/5/6 " jakub at gcc dot gnu.org
@ 2015-06-26 20:34 ` jakub at gcc dot gnu.org
  2015-10-12  8:45 ` jason at gcc dot gnu.org
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-06-26 20:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.9.3                       |4.9.4


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [4.9/5/6 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (8 preceding siblings ...)
  2015-06-26 20:34 ` jakub at gcc dot gnu.org
@ 2015-10-12  8:45 ` jason at gcc dot gnu.org
  2020-03-21 13:59 ` [Bug ipa/62051] [8/9/10 " hubicka at gcc dot gnu.org
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jason at gcc dot gnu.org @ 2015-10-12  8:45 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

--- Comment #9 from Jason Merrill <jason at gcc dot gnu.org> ---
Created attachment 36480
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36480&action=edit
visibility flag patch

Is this the sort of thing you had in mind?


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [8/9/10 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (9 preceding siblings ...)
  2015-10-12  8:45 ` jason at gcc dot gnu.org
@ 2020-03-21 13:59 ` hubicka at gcc dot gnu.org
  2021-04-27 11:37 ` [Bug ipa/62051] [8/9/10/11/12 " jakub at gcc dot gnu.org
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: hubicka at gcc dot gnu.org @ 2020-03-21 13:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|8.5                         |11.0

--- Comment #23 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
This is bit of a grey area of what we can/can not refer in presence of
visibilities and I hope codebases are now adopted for GCC behaviour.  I think
we could delay this post GCC10, so re-taretting.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [8/9/10/11/12 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (10 preceding siblings ...)
  2020-03-21 13:59 ` [Bug ipa/62051] [8/9/10 " hubicka at gcc dot gnu.org
@ 2021-04-27 11:37 ` jakub at gcc dot gnu.org
  2021-07-28  7:04 ` [Bug ipa/62051] [9/10/11/12 " rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-27 11:37 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.0                        |11.2

--- Comment #24 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 11.1 has been released, retargeting bugs to GCC 11.2.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [9/10/11/12 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (11 preceding siblings ...)
  2021-04-27 11:37 ` [Bug ipa/62051] [8/9/10/11/12 " jakub at gcc dot gnu.org
@ 2021-07-28  7:04 ` rguenth at gcc dot gnu.org
  2021-09-10  7:20 ` pinskia at gcc dot gnu.org
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-07-28  7:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.2                        |11.3

--- Comment #25 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 11.2 is being released, retargeting bugs to GCC 11.3

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [9/10/11/12 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (12 preceding siblings ...)
  2021-07-28  7:04 ` [Bug ipa/62051] [9/10/11/12 " rguenth at gcc dot gnu.org
@ 2021-09-10  7:20 ` pinskia at gcc dot gnu.org
  2021-09-10 14:39 ` jason at gcc dot gnu.org
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-09-10  7:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

--- Comment #26 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Is this even valid?

That is Base and Derived in the shared library and the main program are
considered two different classes because of -fvisibility=hidden and the classes
are not marked as visibility default.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [9/10/11/12 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (13 preceding siblings ...)
  2021-09-10  7:20 ` pinskia at gcc dot gnu.org
@ 2021-09-10 14:39 ` jason at gcc dot gnu.org
  2022-04-21  7:47 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jason at gcc dot gnu.org @ 2021-09-10 14:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

--- Comment #27 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #26)
> That is Base and Derived in the shared library and the main program are
> considered two different classes because of -fvisibility=hidden and the
> classes are not marked as visibility default.

Symbol visibility is outside the language, and doesn't affect mangling, so I
don't think it's accurate to say they are considered two different classes.  It
seems to me they are the same classes, with controlled access to the
implementation.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [9/10/11/12 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (14 preceding siblings ...)
  2021-09-10 14:39 ` jason at gcc dot gnu.org
@ 2022-04-21  7:47 ` rguenth at gcc dot gnu.org
  2022-12-20 12:55 ` [Bug ipa/62051] [10/11/12/13 " rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-04-21  7:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.3                        |11.4

--- Comment #28 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 11.3 is being released, retargeting bugs to GCC 11.4.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [10/11/12/13 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (15 preceding siblings ...)
  2022-04-21  7:47 ` rguenth at gcc dot gnu.org
@ 2022-12-20 12:55 ` rguenth at gcc dot gnu.org
  2023-04-26  6:55 ` [Bug ipa/62051] [10/11/12/13/14 " rguenth at gcc dot gnu.org
  2023-07-27  9:20 ` [Bug ipa/62051] [11/12/13/14 " rguenth at gcc dot gnu.org
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-12-20 12:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |13.0
   Target Milestone|11.4                        |13.0
   Last reconfirmed|2015-03-19 00:00:00         |2022-12-20

--- Comment #29 from Richard Biener <rguenth at gcc dot gnu.org> ---
Re-confirmed on trunk.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [10/11/12/13/14 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (16 preceding siblings ...)
  2022-12-20 12:55 ` [Bug ipa/62051] [10/11/12/13 " rguenth at gcc dot gnu.org
@ 2023-04-26  6:55 ` rguenth at gcc dot gnu.org
  2023-07-27  9:20 ` [Bug ipa/62051] [11/12/13/14 " rguenth at gcc dot gnu.org
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-04-26  6:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|13.0                        |13.2

--- Comment #30 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 13.1 is being released, retargeting bugs to GCC 13.2.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug ipa/62051] [11/12/13/14 Regression] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively
  2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
                   ` (17 preceding siblings ...)
  2023-04-26  6:55 ` [Bug ipa/62051] [10/11/12/13/14 " rguenth at gcc dot gnu.org
@ 2023-07-27  9:20 ` rguenth at gcc dot gnu.org
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-27  9:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62051

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|13.2                        |11.5

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2023-07-27  9:20 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-07 13:03 [Bug c++/62051] New: [4.9/4.10] Undefined reference to vtable with -O2 and -fdevirtualize-speculatively raphael.kubo.da.costa at intel dot com
2014-11-19 13:27 ` [Bug c++/62051] " rguenth at gcc dot gnu.org
2015-03-19  9:31 ` [Bug ipa/62051] [4.9/5 Regression] " rguenth at gcc dot gnu.org
2015-03-19 10:38 ` trippels at gcc dot gnu.org
2015-03-19 19:15 ` hubicka at gcc dot gnu.org
2015-03-23 15:50 ` jakub at gcc dot gnu.org
2015-03-23 19:30 ` jason at gcc dot gnu.org
2015-03-23 23:20 ` hubicka at ucw dot cz
2015-06-26 20:05 ` [Bug ipa/62051] [4.9/5/6 " jakub at gcc dot gnu.org
2015-06-26 20:34 ` jakub at gcc dot gnu.org
2015-10-12  8:45 ` jason at gcc dot gnu.org
2020-03-21 13:59 ` [Bug ipa/62051] [8/9/10 " hubicka at gcc dot gnu.org
2021-04-27 11:37 ` [Bug ipa/62051] [8/9/10/11/12 " jakub at gcc dot gnu.org
2021-07-28  7:04 ` [Bug ipa/62051] [9/10/11/12 " rguenth at gcc dot gnu.org
2021-09-10  7:20 ` pinskia at gcc dot gnu.org
2021-09-10 14:39 ` jason at gcc dot gnu.org
2022-04-21  7:47 ` rguenth at gcc dot gnu.org
2022-12-20 12:55 ` [Bug ipa/62051] [10/11/12/13 " rguenth at gcc dot gnu.org
2023-04-26  6:55 ` [Bug ipa/62051] [10/11/12/13/14 " rguenth at gcc dot gnu.org
2023-07-27  9:20 ` [Bug ipa/62051] [11/12/13/14 " rguenth 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).