mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 19:06:04 +00:00

Currently we emit DeferredDeclsToEmit in reverse order. This patch changes that. The advantages of the change are that * The output order is a bit closer to the source order. The change to test/CodeGenCXX/pod-member-memcpys.cpp is a good example. * If we decide to deffer more, it will not cause as large changes in the estcases as it would without this patch. llvm-svn: 226751
28 lines
505 B
C++
28 lines
505 B
C++
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
|
|
|
|
// CHECK: @_ZTVZN1A3fooEiE1B =
|
|
// CHECK: @_ZTVZ3foovEN1C1DE =
|
|
// CHECK: define {{.*}} @_ZZZ3foovEN1C3barEvEN1E3bazEv(
|
|
|
|
// Itanium C++ ABI examples.
|
|
struct A {
|
|
void foo (int) {
|
|
struct B { virtual ~B() {} };
|
|
B();
|
|
}
|
|
};
|
|
void foo () {
|
|
struct C {
|
|
struct D { virtual ~D() {} };
|
|
void bar () {
|
|
struct E {
|
|
void baz() { }
|
|
};
|
|
E().baz();
|
|
}
|
|
};
|
|
A().foo(0);
|
|
C::D();
|
|
C().bar();
|
|
}
|