// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s | |
// Non-trivial dtors, should both be passed indirectly. | |
struct S { | |
~S(); | |
int s; | |
}; | |
// CHECK: define void @_Z1fv(%struct.S* noalias sret % | |
S f() { return S(); } | |
// CHECK: define void @_Z1f1S(%struct.S*) | |
void f(S) { } | |
// Non-trivial dtors, should both be passed indirectly. | |
class C { | |
~C(); | |
double c; | |
}; | |
// CHECK: define void @_Z1gv(%class.C* noalias sret % | |
C g() { return C(); } | |
// CHECK: define void @_Z1f1C(%class.C*) | |
void f(C) { } |