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