cast-conversion.cpp revision 3b29901b1d106789e04ce8c4cdfebe72b251db4b
1// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++0x -S %s -o %t-64.s
2// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s
3// RUN: %clang_cc1 -triple i386-apple-darwin -std=c++0x -S %s -o %t-32.s
4// RUN: FileCheck -check-prefix LP32 --input-file=%t-32.s %s
5
6struct A {
7  A(int);
8};
9
10struct B {
11  B(A);
12};
13
14int main () {
15  (B)10;
16  B(10);
17  static_cast<B>(10);
18}
19
20// CHECK-LP64: callq    __ZN1AC1Ei
21// CHECK-LP64: callq    __ZN1BC1E1A
22// CHECK-LP64: callq    __ZN1AC1Ei
23// CHECK-LP64: callq    __ZN1BC1E1A
24// CHECK-LP64: callq    __ZN1AC1Ei
25// CHECK-LP64: callq    __ZN1BC1E1A
26
27// CHECK-LP32: call     L__ZN1AC1Ei
28// CHECK-LP32: call     L__ZN1BC1E1A
29// CHECK-LP32: call     L__ZN1AC1Ei
30// CHECK-LP32: call     L__ZN1BC1E1A
31// CHECK-LP32: call     L__ZN1AC1Ei
32// CHECK-LP32: call     L__ZN1BC1E1A
33