xref: /llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/keep-func.test (revision f1fdfe6888f93b9f6dfb4689e1f3206de584ff5b)
1$ cat main.cpp
2#include <stdio.h>
3
4static void Foo(void)
5{
6  typedef struct {
7    int x1;
8    int x2;
9  } FOO_VAR_TYPE;
10  static FOO_VAR_TYPE MyDummyVar __attribute__((aligned(4), used, section("TAD_VIRTUAL, TAD_DUMMY_DATA"), nocommon));
11  printf("Foo called");
12}
13
14int main()
15{
16  Foo();
17  return 1;
18}
19
20$ clang++ -O2 -g main.cpp -c -o main.o
21$ clang++ main.o -o main.out
22
23RUN: dsymutil --linker parallel -oso-prepend-path %p/../../Inputs %p/../../Inputs/private/tmp/keep_func/main.out -o %t.omit.dSYM
24RUN: dsymutil --linker parallel -oso-prepend-path %p/../../Inputs %p/../../Inputs/private/tmp/keep_func/main.out -o %t.keep.dSYM -keep-function-for-static
25RUN: llvm-dwarfdump %t.omit.dSYM | FileCheck %s --check-prefix OMIT
26RUN: llvm-dwarfdump %t.keep.dSYM | FileCheck %s --check-prefix KEEP
27
28KEEP:     DW_AT_name	("x1")
29KEEP:     DW_AT_name	("x2")
30KEEP:     DW_AT_name    ("FOO_VAR_TYPE")
31KEEP:     DW_AT_name    ("MyDummyVar")
32
33OMIT-NOT: DW_AT_name	("MyDummyVar")
34OMIT-NOT: DW_AT_name	("FOO_VAR_TYPE")
35OMIT-NOT: DW_AT_name	("x1")
36OMIT-NOT: DW_AT_name	("x2")
37