Daniel Dunbar | 8fbe78f | 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 | 468fa63 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 2 | struct C { |
3 | void f(); | ||||
Anders Carlsson | 03a409f | 2009-04-08 20:31:57 +0000 | [diff] [blame] | 4 | void g(int, ...); |
Anders Carlsson | 468fa63 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 5 | }; |
6 | |||||
Daniel Dunbar | 8b57697 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 7 | // RUN: grep "define void @_ZN1C1fEv" %t | count 1 |
Anders Carlsson | 468fa63 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 8 | void C::f() { |
9 | } | ||||
10 | |||||
Chris Lattner | d035ebd | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 11 | void test1() { |
Anders Carlsson | 468fa63 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 12 | C c; |
13 | |||||
Daniel Dunbar | 8b57697 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 14 | // RUN: grep "call void @_ZN1C1fEv" %t | count 1 |
Anders Carlsson | 468fa63 | 2009-04-04 20:47:02 +0000 | [diff] [blame] | 15 | c.f(); |
Anders Carlsson | 03a409f | 2009-04-08 20:31:57 +0000 | [diff] [blame] | 16 | |
Daniel Dunbar | 8b57697 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 17 | // RUN: grep "call void (.struct.C\*, i32, ...)\* @_ZN1C1gEiz" %t | count 1 |
Anders Carlsson | 03a409f | 2009-04-08 20:31:57 +0000 | [diff] [blame] | 18 | c.g(1, 2, 3); |
19 | } | ||||
Chris Lattner | d035ebd | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 20 | |
21 | |||||
22 | struct S { | ||||
Rafael Espindola | 05842da | 2011-01-25 19:10:24 +0000 | [diff] [blame] | 23 | // RUN: grep "define linkonce_odr void @_ZN1SC1Ev.*unnamed_addr" %t |
Chris Lattner | e0be0df | 2009-05-12 21:21:08 +0000 | [diff] [blame] | 24 | inline S() { } |
Rafael Espindola | 05842da | 2011-01-25 19:10:24 +0000 | [diff] [blame] | 25 | // RUN: grep "define linkonce_odr void @_ZN1SC1Ev.*unnamed_addr" %t |
Chris Lattner | e0be0df | 2009-05-12 21:21:08 +0000 | [diff] [blame] | 26 | inline ~S() { } |
Chris Lattner | d035ebd | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 27 | |
28 | |||||
Daniel Dunbar | 8b57697 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 29 | // RUN: grep "define linkonce_odr void @_ZN1S9f_inline1Ev" %t |
Chris Lattner | d035ebd | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 30 | void f_inline1() { } |
Daniel Dunbar | 8b57697 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 31 | // RUN: grep "define linkonce_odr void @_ZN1S9f_inline2Ev" %t |
Chris Lattner | d035ebd | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 32 | inline void f_inline2() { } |
33 | |||||
Daniel Dunbar | 8b57697 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 34 | // RUN: grep "define linkonce_odr void @_ZN1S1gEv" %t |
Chris Lattner | d035ebd | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 35 | static void g() { } |
Anders Carlsson | 37604a0 | 2009-05-15 18:35:39 +0000 | [diff] [blame] | 36 | |
37 | static void f(); | ||||
Richard Smith | b555a76 | 2012-09-28 22:46:07 +0000 | [diff] [blame^] | 38 | |
39 | // RUN: grep "define linkonce_odr void @_ZN1S1vEv.*unnamed_addr" %t | ||||
40 | virtual void v() {} | ||||
Chris Lattner | d035ebd | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 41 | }; |
42 | |||||
Daniel Dunbar | 8b57697 | 2009-11-08 01:45:36 +0000 | [diff] [blame] | 43 | // RUN: grep "define void @_ZN1S1fEv" %t |
Anders Carlsson | 37604a0 | 2009-05-15 18:35:39 +0000 | [diff] [blame] | 44 | void S::f() { |
45 | } | ||||
46 | |||||
Chris Lattner | d035ebd | 2009-05-12 21:02:27 +0000 | [diff] [blame] | 47 | void test2() { |
48 | S s; | ||||
49 | |||||
50 | s.f_inline1(); | ||||
51 | s.f_inline2(); | ||||
52 | |||||
53 | S::g(); | ||||
54 | |||||
55 | } | ||||
Anders Carlsson | 4034a95 | 2009-05-27 04:18:27 +0000 | [diff] [blame] | 56 | |
57 | struct T { | ||||
58 | T operator+(const T&); | ||||
59 | }; | ||||
60 | |||||
61 | void test3() { | ||||
62 | T t1, t2; | ||||
63 | |||||
Chris Lattner | 8a2f3c7 | 2010-07-30 04:02:24 +0000 | [diff] [blame] | 64 | // RUN: grep "call void @_ZN1TplERKS_" %t |
Anders Carlsson | 4034a95 | 2009-05-27 04:18:27 +0000 | [diff] [blame] | 65 | T result = t1 + t2; |
66 | } |