brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · a16a3f5 Raw
37 lines · plain
1$ cat main.cpp2#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.o21$ clang++ main.o -o main.out22 23RUN: dsymutil --linker parallel -oso-prepend-path %p/../../Inputs %p/../../Inputs/private/tmp/keep_func/main.out -o %t.omit.dSYM24RUN: dsymutil --linker parallel -oso-prepend-path %p/../../Inputs %p/../../Inputs/private/tmp/keep_func/main.out -o %t.keep.dSYM -keep-function-for-static25RUN: llvm-dwarfdump %t.omit.dSYM | FileCheck %s --check-prefix OMIT26RUN: llvm-dwarfdump %t.keep.dSYM | FileCheck %s --check-prefix KEEP27 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