The following testcase fails to link on targets that have TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL) nonzero.
// { dg-do run } // { dg-options "-O0" } void bar (int x) { asm ("" : : "g" (x)); } struct S { S () {}; virtual ~S () {}; }; struct T { virtual void foo (int) = 0; }; struct U : public S, public T { bool a; U () {} virtual ~U () {} virtual void foo (int x) { switch (x) { case 12: break; case 9: bar (7); break; case 10: bar (12); break; case 4: bar (18); break; case 2: bar (26); break; } } }; U u; int main () { } g++4 -o thunk2{,.C} /tmp/ccWXeK5j.s: Assembler messages: /tmp/ccWXeK5j.s:647: Error: can't resolve `.gnu.linkonce.t._ZN1U3fooEi' {.gnu.linkonce.t._ZN1U3fooEi section} - `.LFB20' {.gnu.linkonce.t._ZN1U3fooEi section} -- Summary: COMDAT broken for C++ thunks Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20206