| void call(); | |
| struct S { | |
| static void foo() { call(); call(); } | |
| static void bar() { call(); call(); } | |
| static void baz() {} | |
| }; | |
| #ifdef FILE1 | |
| # define FUNC_NAME func1 | |
| # define FUNC_BODY \ | |
| S::foo(); S::bar(); S::baz(); | |
| #else | |
| # define FUNC_NAME func2 | |
| # define FUNC_BODY \ | |
| S::bar(); | |
| #endif | |
| void FUNC_NAME() { | |
| FUNC_BODY | |
| } | |
| // Build instructions: | |
| // $ clang -g -fPIC -c -DFILE1 arange-overlap.cc -o obj1.o | |
| // $ clang -g -fPIC -c arange-overlap.cc -o obj2.o | |
| // $ clang -shared obj1.o obj2.o -o <output> |