1void call();
2
3struct S {
4  static void foo() { call(); call(); }
5  static void bar() { call(); call(); }
6  static void baz() {}
7};
8
9#ifdef FILE1
10# define FUNC_NAME func1
11# define FUNC_BODY \
12    S::foo(); S::bar(); S::baz();
13#else
14# define FUNC_NAME func2
15# define FUNC_BODY \
16    S::bar();
17#endif
18
19void FUNC_NAME() {
20  FUNC_BODY
21}
22
23// Build instructions:
24// $ clang -g -fPIC -c -DFILE1 arange-overlap.cc -o obj1.o
25// $ clang -g -fPIC -c arange-overlap.cc -o obj2.o
26// $ clang -shared obj1.o obj2.o -o <output>
27