xref: /llvm-project/clang/test/Modules/Inputs/codegen/foo.h (revision 1524e67feb5ad7fe9d6b42392929c1c6771cffab)

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