Index: test/tools/dsymutil/X86/dwarf4-linetable.test =================================================================== --- /dev/null +++ test/tools/dsymutil/X86/dwarf4-linetable.test @@ -0,0 +1,23 @@ +# RUN: llvm-dsymutil -f -oso-prepend-path=%p/../Inputs/ -y %s -o - | llvm-dwarfdump -debug-line - | FileCheck %s + +# Source: +# int main() { +# return 0; +# } +# Compile with: +# clang -gdwarf-4 dwarf4.c -c -o dwarf4.o + +--- +triple: 'x86_64-apple-darwin' +objects: + - filename: dwarf4.o + timestamp: 1513021112 + symbols: + - { sym: _main, objAddr: 0x0000000000000000, binAddr: 0x0000000100000FA0, size: 0x0000000F } +... + +# CHECK: .debug_line contents: +# CHECK: debug_line +# CHECK: Line table prologue: +# CHECK: total_length: +# CHECK: version: 4 Index: tools/dsymutil/DwarfLinker.cpp =================================================================== --- tools/dsymutil/DwarfLinker.cpp +++ tools/dsymutil/DwarfLinker.cpp @@ -3237,7 +3237,8 @@ // prologue over and that works because we act as both producer and // consumer. It would be nicer to have a real configurable line // table emitter. - if (LineTable.Prologue.getVersion() != 2 || + if (LineTable.Prologue.getVersion() < 2 || + LineTable.Prologue.getVersion() > 5 || LineTable.Prologue.DefaultIsStmt != DWARF2_LINE_DEFAULT_IS_STMT || LineTable.Prologue.OpcodeBase > 13) reportWarning("line table parameters mismatch. Cannot emit.");