public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/58045] New: gcc 4.8 produces an undefined reference to an inline function
@ 2013-08-01 14:08 rafael.espindola at gmail dot com
2013-09-09 8:55 ` [Bug c++/58045] " hubicka at gcc dot gnu.org
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: rafael.espindola at gmail dot com @ 2013-08-01 14:08 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58045
Bug ID: 58045
Summary: gcc 4.8 produces an undefined reference to an inline
function
Product: gcc
Version: 4.8.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: rafael.espindola at gmail dot com
CC: hubicka at gcc dot gnu.org, jason at redhat dot com
Created attachment 30582
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30582&action=edit
testcase
This may or may not be a duplicate of bug 53808.
When compiling this testcase with
cc1plus llvm-ar.ii -quiet -std=c++11 -fprofile-arcs -o test.s -O2
The produced assembly has an undefined reference to
_ZNK4llvm14raw_fd_ostream11current_posEv, but this function is defined inline:
virtual uint64_t current_pos() const {
return pos;
}
This causes the link to fail when building with -fvisibility-inlines-hidden and
shared libraries.
GCC should avoid devirtualizing or emit a copy of the callee.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/58045] gcc 4.8 produces an undefined reference to an inline function
2013-08-01 14:08 [Bug c++/58045] New: gcc 4.8 produces an undefined reference to an inline function rafael.espindola at gmail dot com
@ 2013-09-09 8:55 ` hubicka at gcc dot gnu.org
2021-07-22 18:54 ` pinskia at gcc dot gnu.org
2021-09-10 7:09 ` pinskia at gcc dot gnu.org
2 siblings, 0 replies; 4+ messages in thread
From: hubicka at gcc dot gnu.org @ 2013-09-09 8:55 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58045
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2013-09-09
Ever confirmed|0 |1
--- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
This is different from the other PR.
Here C++ FE declare the function as:
_ZNK4llvm14raw_fd_ostream11current_posEv/6 (virtual uint64_t
llvm::raw_fd_ostream::current_pos() const) @0x7ffff7047980
Type: function definition analyzed
Visibility: external public weak comdat
comdat_group:_ZNK4llvm14raw_fd_ostream11current_posEv one_only virtual
References: __gcov0._ZNK4llvm14raw_fd_ostream11current_posEv/78
(read)__gcov0._ZNK4llvm14raw_fd_ostream11current_posEv/78 (write)
Referring:
Availability: available
Profile id: 1497168468
Function flags: body
Called by:
_ZL16writeStringTableRN4llvm14raw_fd_ostreamENS_8ArrayRefIN12_GLOBAL__N_118NewArchiveIteratorEEERSt6vectorIjSaIjEE.isra.8.constprop.12/90
(1.47 per call) (can throw external)
The meaning of external comdat does not make that much sense to me but I can
definitely make can_refer_decl_in_current_unit_p to declare the function
non-referable. That would untimately prevent inlining while it is certainly
possible, since body is around.
Jason, why the function is external and isn't there way to simply make it
comdat?
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/58045] gcc 4.8 produces an undefined reference to an inline function
2013-08-01 14:08 [Bug c++/58045] New: gcc 4.8 produces an undefined reference to an inline function rafael.espindola at gmail dot com
2013-09-09 8:55 ` [Bug c++/58045] " hubicka at gcc dot gnu.org
@ 2021-07-22 18:54 ` pinskia at gcc dot gnu.org
2021-09-10 7:09 ` pinskia at gcc dot gnu.org
2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-07-22 18:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58045
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I cannot reproduce this in the released version of GCC 4.8.0.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/58045] gcc 4.8 produces an undefined reference to an inline function
2013-08-01 14:08 [Bug c++/58045] New: gcc 4.8 produces an undefined reference to an inline function rafael.espindola at gmail dot com
2013-09-09 8:55 ` [Bug c++/58045] " hubicka at gcc dot gnu.org
2021-07-22 18:54 ` pinskia at gcc dot gnu.org
@ 2021-09-10 7:09 ` pinskia at gcc dot gnu.org
2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-09-10 7:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58045
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |DUPLICATE
Status|NEW |RESOLVED
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Dup of bug 61214.
*** This bug has been marked as a duplicate of bug 61214 ***
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-09-10 7:10 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-01 14:08 [Bug c++/58045] New: gcc 4.8 produces an undefined reference to an inline function rafael.espindola at gmail dot com
2013-09-09 8:55 ` [Bug c++/58045] " hubicka at gcc dot gnu.org
2021-07-22 18:54 ` pinskia at gcc dot gnu.org
2021-09-10 7:09 ` pinskia 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).