aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/x86_32-arguments.cpp
blob: f8d655145b8f008032967feb78aac78b8b4e8e3c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 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* 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* sret %
C g() { return C(); }

// CHECK: define void @_Z1f1C(%class.C*) 
void f(C) { }