1 | inline void f1(const char* fmt, ...) { |
2 | __builtin_va_list args; |
3 | __builtin_va_start(args, fmt); |
4 | } |
5 | |
6 | struct non_trivial_dtor { |
7 | ~non_trivial_dtor(); |
8 | }; |
9 | |
10 | struct implicit_dtor { |
11 | non_trivial_dtor d; |
12 | }; |
13 | |
14 | struct uninst_implicit_dtor { |
15 | non_trivial_dtor d; |
16 | }; |
17 | |
18 | inline void use_implicit_dtor() { |
19 | implicit_dtor d; |
20 | } |
21 | |
22 | template <typename T> |
23 | void inst() { |
24 | } |
25 | |
26 | inline void inst_decl() { |
27 | // cause inst<int>'s declaration to be instantiated, without a definition. |
28 | (void)sizeof(&inst<int>); |
29 | inst<float>(); |
30 | } |
31 | |
32 | __attribute__((always_inline)) inline void always_inl() { |
33 | } |
34 | |
35 | asm("narf"); |
36 | |