blob: f8d655145b8f008032967feb78aac78b8b4e8e3c [file] [log] [blame]
Anders Carlssonbfc008d2010-01-27 03:22:55 +00001// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s
2
3// Non-trivial dtors, should both be passed indirectly.
4struct S {
5 ~S();
6 int s;
7};
8
Chris Lattnerfb97cf22010-04-20 05:44:43 +00009// CHECK: define void @_Z1fv(%struct.S* sret %
Anders Carlssonbfc008d2010-01-27 03:22:55 +000010S f() { return S(); }
11// CHECK: define void @_Z1f1S(%struct.S*)
12void f(S) { }
13
14// Non-trivial dtors, should both be passed indirectly.
15class C {
16 ~C();
17 double c;
18};
19
Chris Lattnerfb97cf22010-04-20 05:44:43 +000020// CHECK: define void @_Z1gv(%class.C* sret %
Anders Carlssonbfc008d2010-01-27 03:22:55 +000021C g() { return C(); }
22
23// CHECK: define void @_Z1f1C(%class.C*)
24void f(C) { }