1Test DWARF5 support in dsymutil. Currently this still generates an empty dSYM.
2
3$ cat dwarf5.c
4__attribute__ ((optnone))
5int foo() {
6  volatile i;
7  return i;
8}
9
10int main(int argc, char** argv) {
11  return foo();
12}
13
14$ clang -gdwarf-5 dwarf5.c -c -o dwarf5.o
15$ clang dwarf5.o -o dwarf5.out
16
17RUN: dsymutil -oso-prepend-path %p/../Inputs %p/../Inputs/private/tmp/dwarf5/dwarf5.out -o %t.dSYM 2>&1 | FileCheck %s --allow-empty
18RUN: llvm-dwarfdump --verify %t.dSYM 2>&1 | FileCheck %s
19CHECK-NOT: error:
20
21RUN: llvm-dwarfdump %t.dSYM | FileCheck %s --check-prefix DWARF
22DWARF: DW_TAG_compile_unit
23DWARF:   DW_AT_producer    ("clang version 12.0.0
24DWARF:   DW_AT_language    (DW_LANG_C99)
25DWARF:   DW_AT_name        ("dwarf5.c")
26DWARF:   DW_AT_LLVM_sysroot        ("/")
27DWARF:   DW_AT_stmt_list   (0x00000000)
28DWARF:   DW_AT_comp_dir    ("/private/tmp/dwarf5")
29DWARF:   DW_AT_low_pc      (0x0000000100003f80)
30DWARF:   DW_AT_high_pc     (0x0000000100003fb1)
31DWARF:   DW_AT_addr_base   (0x00000008)
32DWARF:   DW_TAG_subprogram
33DWARF:     DW_AT_name      ("foo")
34DWARF:     DW_AT_decl_file (0x00)
35DWARF:     DW_AT_decl_line (2)
36DWARF:     DW_AT_type      (0x00000091 "int")
37DWARF:     DW_AT_external  (true)
38DWARF:     DW_TAG_variable
39DWARF:       DW_AT_name    ("i")
40DWARF:       DW_AT_decl_file       (0x00)
41DWARF:       DW_AT_decl_line       (3)
42DWARF:       DW_AT_type    (0x00000098 "volatile int")
43DWARF:   DW_TAG_subprogram
44DWARF:     DW_AT_name      ("main")
45DWARF:     DW_AT_decl_file (0x00)
46DWARF:     DW_AT_decl_line (7)
47DWARF:     DW_AT_prototyped        (true)
48DWARF:     DW_AT_type      (0x00000091 "int")
49DWARF:     DW_AT_external  (true)
50DWARF:     DW_TAG_formal_parameter
51DWARF:       DW_AT_name    ("argc")
52DWARF:       DW_AT_decl_file       (0x00)
53DWARF:       DW_AT_decl_line       (7)
54DWARF:       DW_AT_type    (0x00000091 "int")
55DWARF:     DW_TAG_formal_parameter
56DWARF:       DW_AT_name    ("argv")
57DWARF:       DW_AT_decl_file       (0x00)
58DWARF:       DW_AT_decl_line       (7)
59DWARF:       DW_AT_type    (0x0000009d "char **")
60