xref: /llvm-project/lldb/test/Shell/SymbolFile/PDB/Inputs/FuncSymbolsTestMain.cpp (revision 87aa9c9e4d41ed881453e2fab85b3d25f648bb55)
1*87aa9c9eSJonas Devlieghere 
2*87aa9c9eSJonas Devlieghere // Global functions
Func_arg_array(int array[])3*87aa9c9eSJonas Devlieghere int Func_arg_array(int array[]) { return 1; }
Func_arg_void(void)4*87aa9c9eSJonas Devlieghere void Func_arg_void(void) { return; }
Func_arg_none(void)5*87aa9c9eSJonas Devlieghere void Func_arg_none(void) { return; }
Func_varargs(...)6*87aa9c9eSJonas Devlieghere void Func_varargs(...) { return; }
7*87aa9c9eSJonas Devlieghere 
8*87aa9c9eSJonas Devlieghere // Class
9*87aa9c9eSJonas Devlieghere namespace MemberTest {
10*87aa9c9eSJonas Devlieghere   class A {
11*87aa9c9eSJonas Devlieghere   public:
Func(int a,...)12*87aa9c9eSJonas Devlieghere     int Func(int a, ...) { return 1; }
13*87aa9c9eSJonas Devlieghere   };
14*87aa9c9eSJonas Devlieghere }
15*87aa9c9eSJonas Devlieghere 
16*87aa9c9eSJonas Devlieghere // Template
17*87aa9c9eSJonas Devlieghere template <int N=1, class ...T>
TemplateFunc(T...Arg)18*87aa9c9eSJonas Devlieghere void TemplateFunc(T ...Arg) {
19*87aa9c9eSJonas Devlieghere   return;
20*87aa9c9eSJonas Devlieghere }
21*87aa9c9eSJonas Devlieghere 
22*87aa9c9eSJonas Devlieghere // namespace
23*87aa9c9eSJonas Devlieghere namespace {
Func(int a,const long b,volatile bool c,...)24*87aa9c9eSJonas Devlieghere   void Func(int a, const long b, volatile bool c, ...) { return; }
25*87aa9c9eSJonas Devlieghere }
26*87aa9c9eSJonas Devlieghere 
27*87aa9c9eSJonas Devlieghere namespace NS {
Func(char a,int b)28*87aa9c9eSJonas Devlieghere   void Func(char a, int b) {
29*87aa9c9eSJonas Devlieghere     return;
30*87aa9c9eSJonas Devlieghere   }
31*87aa9c9eSJonas Devlieghere }
32*87aa9c9eSJonas Devlieghere 
33*87aa9c9eSJonas Devlieghere // Static function
StaticFunction(int a)34*87aa9c9eSJonas Devlieghere static long StaticFunction(int a)
35*87aa9c9eSJonas Devlieghere {
36*87aa9c9eSJonas Devlieghere   return 2;
37*87aa9c9eSJonas Devlieghere }
38*87aa9c9eSJonas Devlieghere 
39*87aa9c9eSJonas Devlieghere // Inlined function
InlinedFunction(long a)40*87aa9c9eSJonas Devlieghere inline void InlinedFunction(long a) { return; }
41*87aa9c9eSJonas Devlieghere 
42*87aa9c9eSJonas Devlieghere extern void FunctionCall();
43*87aa9c9eSJonas Devlieghere 
main()44*87aa9c9eSJonas Devlieghere int main() {
45*87aa9c9eSJonas Devlieghere   MemberTest::A v1;
46*87aa9c9eSJonas Devlieghere   v1.Func('a',10);
47*87aa9c9eSJonas Devlieghere 
48*87aa9c9eSJonas Devlieghere   Func(1, 5, true, 10, 8);
49*87aa9c9eSJonas Devlieghere   NS::Func('c', 2);
50*87aa9c9eSJonas Devlieghere 
51*87aa9c9eSJonas Devlieghere   TemplateFunc(10);
52*87aa9c9eSJonas Devlieghere   TemplateFunc(10,11,88);
53*87aa9c9eSJonas Devlieghere 
54*87aa9c9eSJonas Devlieghere   StaticFunction(2);
55*87aa9c9eSJonas Devlieghere   InlinedFunction(1);
56*87aa9c9eSJonas Devlieghere 
57*87aa9c9eSJonas Devlieghere   FunctionCall();
58*87aa9c9eSJonas Devlieghere   return 0;
59*87aa9c9eSJonas Devlieghere }
60