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).