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