Daniel Dunbar | a572887 | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -emit-llvm %s -triple x86_64-apple-darwin9 -o %t |
Anders Carlsson | 2b77ba8 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 2 | struct C { |
3 | void f(); | ||||
Anders Carlsson | e9918d2 | 2009-04-08 20:31:57 +0000 | [diff] [blame] | 4 | void g(int, ...); |
Anders Carlsson | 2b77ba8 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 5 | }; |
6 | |||||
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 7 | // RUN: grep "define void @_ZN1C1fEv" %t | count 1 |
Anders Carlsson | 2b77ba8 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 8 | void C::f() { |
9 | } | ||||
10 | |||||
Chris Lattner | 0c337ed | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 11 | void test1() { |
Anders Carlsson | 2b77ba8 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 12 | C c; |
13 | |||||
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 14 | // RUN: grep "call void @_ZN1C1fEv" %t | count 1 |
Anders Carlsson | 2b77ba8 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 15 | c.f(); |
Anders Carlsson | e9918d2 | 2009-04-08 20:31:57 +0000 | [diff] [blame] | 16 | |
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 17 | // RUN: grep "call void (.struct.C\*, i32, ...)\* @_ZN1C1gEiz" %t | count 1 |
Anders Carlsson | e9918d2 | 2009-04-08 20:31:57 +0000 | [diff] [blame] | 18 | c.g(1, 2, 3); |
19 | } | ||||
Chris Lattner | 0c337ed | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 20 | |
21 | |||||
22 | struct S { | ||||
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 23 | // RUN: grep "define linkonce_odr void @_ZN1SC1Ev" %t |
Chris Lattner | b4880ba | 2009-05-12 21:21:08 +0000 | [diff] [blame] | 24 | inline S() { } |
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 25 | // RUN: grep "define linkonce_odr void @_ZN1SC1Ev" %t |
Chris Lattner | b4880ba | 2009-05-12 21:21:08 +0000 | [diff] [blame] | 26 | inline ~S() { } |
Chris Lattner | 0c337ed | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 27 | |
28 | |||||
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 29 | // RUN: grep "define linkonce_odr void @_ZN1S9f_inline1Ev" %t |
Chris Lattner | 0c337ed | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 30 | void f_inline1() { } |
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 31 | // RUN: grep "define linkonce_odr void @_ZN1S9f_inline2Ev" %t |
Chris Lattner | 0c337ed | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 32 | inline void f_inline2() { } |
33 | |||||
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 34 | // RUN: grep "define linkonce_odr void @_ZN1S1gEv" %t |
Chris Lattner | 0c337ed | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 35 | static void g() { } |
Anders Carlsson | 167b824 | 2009-05-15 18:35:39 +0000 | [diff] [blame] | 36 | |
37 | static void f(); | ||||
Chris Lattner | 0c337ed | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 38 | }; |
39 | |||||
Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 40 | // RUN: grep "define void @_ZN1S1fEv" %t |
Anders Carlsson | 167b824 | 2009-05-15 18:35:39 +0000 | [diff] [blame] | 41 | void S::f() { |
42 | } | ||||
43 | |||||
Chris Lattner | 0c337ed | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 44 | void test2() { |
45 | S s; | ||||
46 | |||||
47 | s.f_inline1(); | ||||
48 | s.f_inline2(); | ||||
49 | |||||
50 | S::g(); | ||||
51 | |||||
52 | } | ||||
Anders Carlsson | 0f29463 | 2009-05-27 04:18:27 +0000 | [diff] [blame] | 53 | |
54 | struct T { | ||||
55 | T operator+(const T&); | ||||
56 | }; | ||||
57 | |||||
58 | void test3() { | ||||
59 | T t1, t2; | ||||
60 | |||||
Anders Carlsson | 8257d41 | 2009-12-22 06:36:32 +0000 | [diff] [blame] | 61 | // RUN: grep "call i64 @_ZN1TplERKS_" %t |
Anders Carlsson | 0f29463 | 2009-05-27 04:18:27 +0000 | [diff] [blame] | 62 | T result = t1 + t2; |
63 | } |