| // { dg-additional-options -fmodules-ts } |
| |
| import foo; |
| |
| struct Mine : Visitor |
| { |
| int Visit () override |
| { |
| return 1; |
| } |
| }; |
| |
| extern int Foo (); |
| |
| int main () |
| { |
| Mine me; |
| |
| if (auto b = Foo ()) |
| return b; |
| return !(Visit (&me) == 1); |
| } |
| |
| // Since https://github.com/itanium-cxx-abi/cxx-abi/pull/171 |
| // we only emit Visitor vtables and RTTI in its module unit |
| // { dg-final { scan-assembler-not {_ZTVW3foo7Visitor:} } } |
| // { dg-final { scan-assembler-not {_ZTIW3foo7Visitor:} } } |
| // { dg-final { scan-assembler-not {_ZTSW3foo7Visitor:} } } |