xref: /llvm-project/clang/test/CodeGenCXX/mangle-abi-examples.cpp (revision e5df59ff78faebd897e81907606ce6074aac0df6)
1c9bd88e6SHans Wennborg // RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
218e4edaeSJohn McCall 
318e4edaeSJohn McCall // CHECK: @_ZTVZN1A3fooEiE1B =
4*e5df59ffSRafael Espindola // CHECK: @_ZTVZ3foovEN1C1DE =
518e4edaeSJohn McCall // CHECK: define {{.*}} @_ZZZ3foovEN1C3barEvEN1E3bazEv(
618e4edaeSJohn McCall 
718e4edaeSJohn McCall // Itanium C++ ABI examples.
818e4edaeSJohn McCall struct A {
fooA918e4edaeSJohn McCall   void foo (int) {
1018e4edaeSJohn McCall     struct B { virtual ~B() {} };
1118e4edaeSJohn McCall     B();
1218e4edaeSJohn McCall   }
1318e4edaeSJohn McCall };
foo()1418e4edaeSJohn McCall void foo () {
1518e4edaeSJohn McCall   struct C {
1618e4edaeSJohn McCall     struct D { virtual ~D() {} };
1718e4edaeSJohn McCall     void bar () {
1818e4edaeSJohn McCall       struct E {
1918e4edaeSJohn McCall         void baz() { }
2018e4edaeSJohn McCall       };
2118e4edaeSJohn McCall       E().baz();
2218e4edaeSJohn McCall     }
2318e4edaeSJohn McCall   };
2418e4edaeSJohn McCall   A().foo(0);
2518e4edaeSJohn McCall   C::D();
2618e4edaeSJohn McCall   C().bar();
2718e4edaeSJohn McCall }
28