1 | // RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s |
2 | |
3 | // CHECK: @_ZTVZN1A3fooEiE1B = |
4 | // CHECK: @_ZTVZ3foovEN1C1DE = |
5 | // CHECK: define {{.*}} @_ZZZ3foovEN1C3barEvEN1E3bazEv( |
6 | |
7 | // Itanium C++ ABI examples. |
8 | struct A { |
9 | void foo (int) { |
10 | struct B { virtual ~B() {} }; |
11 | B(); |
12 | } |
13 | }; |
14 | void foo () { |
15 | struct C { |
16 | struct D { virtual ~D() {} }; |
17 | void bar () { |
18 | struct E { |
19 | void baz() { } |
20 | }; |
21 | E().baz(); |
22 | } |
23 | }; |
24 | A().foo(0); |
25 | C::D(); |
26 | C().bar(); |
27 | } |
28 | |