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