x86_32-arguments.cpp revision fb97cf24158aa7f1fd74374052f99733ef331bb9
1// 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
9// CHECK: define void @_Z1fv(%struct.S* sret %
10S 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
20// CHECK: define void @_Z1gv(%class.C* sret %
21C g() { return C(); }
22
23// CHECK: define void @_Z1f1C(%class.C*)
24void f(C) { }
25