http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208
--- Comment #19 from Jan Hubicka <hubicka at gcc dot gnu.org> --- chrome.wpa.000i.cgraph: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (OnIOComplete) @0x7f80e10be980 Type: function definition analyzed Visibility: force_output prevailing_def_ironly Address is taken. References: Referring: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12DoSendLengthEi/8859587 (addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt11DoSendQueryEi/8859588 (addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt12DoReadLengthEi/8859589 (addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt14DoReadResponseEi/8859590 (addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt5StartERKN4base8CallbackIFviEEE/8859580 (addr) Read from file: obj/net/dns/net.dns_transaction.o Availability: available Function flags: Called by: Calls: _ZN3net12_GLOBAL__N_113DnsTCPAttempt6DoLoopEi/8859585 (1.00 per call) Has 1 outgoing edges for indirect calls. marxin@marxinbox /ssd/chromium-2/src/out/Release $ grep _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi *.s chrome.ltrans16.s: leaq _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rax chrome.ltrans29.s: leaq _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rsi chrome.ltrans29.s: leaq _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rsi chrome.ltrans29.s: .type _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi, @function chrome.ltrans29.s:_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi: chrome.ltrans29.s: .size _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi, .-_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi This actually looks like partitioning problem. I misread the dump ysterday - it is a local function and it seems that somehow we manage to get referenc eto it from ltrans16 while it is static to ltrans29. Can I see .cgraph dump of ltrans16? If you have -fdump-tree-all dumps (or you can just rebuild ltrans16 with this dump) it should be possible to grep the dumps to work out if the symbol appears as a result of some constant folding.