public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug lto/53282] New: lto and visibility-inlines-hidden makes "wrongly" hidden symbols and in a way that depends on the order of the input compilation units
@ 2012-05-08 13:51 vincenzo.innocente at cern dot ch
  2012-05-08 13:57 ` [Bug lto/53282] " rguenth at gcc dot gnu.org
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: vincenzo.innocente at cern dot ch @ 2012-05-08 13:51 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53282

             Bug #: 53282
           Summary: lto and visibility-inlines-hidden makes "wrongly"
                    hidden symbols and in a way that depends on the order
                    of the input compilation units
    Classification: Unclassified
           Product: gcc
           Version: 4.7.1
            Status: UNCONFIRMED
          Severity: blocker
          Priority: P3
         Component: lto
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: vincenzo.innocente@cern.ch
            Target: x86_64-unknown-linux-gnu
             Build: gcc-4_7-branch revision 187276


Created attachment 27345
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27345
directory containing three (very similar) real-life file after pre-compiler
step

in the following example (not much reduced from a real-life code)
a symbol, very similar to others, is made hidden for no good reason.
Apparently it also depends on the order of the input files…


bzip2 -d ltobug3.tar.bz2 
tar -xf ltobug3.tar 
cd ltobug3/
c++ -fvisibility-inlines-hidden -O2 -flto -shared -fPIC -o bha.so d1.cc d2.cc
d3.cc ; nm -C bha.so | grep "makeKey" | grep -v "type"
0000000000004290 t
_ZN3edm10eventsetup15heterocontainer7makeKeyI11DummyRecordNS0_19EventSetupRecordKeyEEET0_v.local.77.4195
0000000000004750 W edm::eventsetup::EventSetupRecordKey
edm::eventsetup::heterocontainer::makeKey<Dummy2Record,
edm::eventsetup::EventSetupRecordKey>()
00000000000048a0 W edm::eventsetup::EventSetupRecordKey
edm::eventsetup::heterocontainer::makeKey<DepRecord,
edm::eventsetup::EventSetupRecordKey>()

c++ -fvisibility-inlines-hidden -O2 -flto -shared -fPIC -o bha.so d2.cc d1.cc
d3.cc ; nm -C bha.so | grep "makeKey" | grep -v "type"
00000000000048a0 W edm::eventsetup::EventSetupRecordKey
edm::eventsetup::heterocontainer::makeKey<DummyRecord,
edm::eventsetup::EventSetupRecordKey>()
0000000000004750 W edm::eventsetup::EventSetupRecordKey
edm::eventsetup::heterocontainer::makeKey<Dummy2Record,
edm::eventsetup::EventSetupRecordKey>()
00000000000049f0 W edm::eventsetup::EventSetupRecordKey
edm::eventsetup::heterocontainer::makeKey<DepRecord,
edm::eventsetup::EventSetupRecordKey>()


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

end of thread, other threads:[~2012-05-10  9:56 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-08 13:51 [Bug lto/53282] New: lto and visibility-inlines-hidden makes "wrongly" hidden symbols and in a way that depends on the order of the input compilation units vincenzo.innocente at cern dot ch
2012-05-08 13:57 ` [Bug lto/53282] " rguenth at gcc dot gnu.org
2012-05-08 14:02 ` vincenzo.innocente at cern dot ch
2012-05-08 17:11 ` hubicka at gcc dot gnu.org
2012-05-09  7:30 ` vincenzo.innocente at cern dot ch
2012-05-09  9:15 ` rguenth at gcc dot gnu.org
2012-05-09  9:45 ` vincenzo.innocente at cern dot ch
2012-05-09 10:04 ` rguenth at gcc dot gnu.org
2012-05-09 10:16 ` vincenzo.innocente at cern dot ch
2012-05-09 10:17 ` rguenth at gcc dot gnu.org
2012-05-09 10:46 ` vincenzo.innocente at cern dot ch
2012-05-09 10:50 ` vincenzo.innocente at cern dot ch
2012-05-09 12:32 ` hubicka at ucw dot cz
2012-05-09 12:46 ` vincenzo.innocente at cern dot ch
2012-05-09 13:56 ` rguenth at gcc dot gnu.org
2012-05-09 15:01 ` vincenzo.innocente at cern dot ch
2012-05-10  7:16 ` [Bug lto/53282] [lto w/o linker plugin] " vincenzo.innocente at cern dot ch
2012-05-10  9:56 ` rguenth at gcc dot gnu.org
2012-05-10 10:17 ` vincenzo.innocente at cern dot ch

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