From: Adrian Prantl Date: Tue, 19 Apr 2016 20:31:19 +0000 (+0000) Subject: cc1as: Don't crash when CIE is requested and no DWARF version is specified. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=99fb8a4a1fbb18b0031f22e5d8aa320a37c0acbb;p=clang cc1as: Don't crash when CIE is requested and no DWARF version is specified. This patch changes the default DWARF version for cc1as from invalid 0 to 2, which should be the lowest common denominator on all platforms. rdar://problem/24735813 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@266814 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Driver/as-dwarf-cie.s b/test/Driver/as-dwarf-cie.s new file mode 100644 index 0000000000..73d987afd4 --- /dev/null +++ b/test/Driver/as-dwarf-cie.s @@ -0,0 +1,37 @@ +# REQUIRES: x86-registered-target +# Test that there is a sane default CIE version. +# RUN: %clang -cc1as -triple i386-apple-darwin -filetype obj %s -o %t +# RUN: llvm-objdump -dwarf=frames %t | FileCheck %s +# CHECK: .debug_frame contents: +# CHECK: CIE +# CHECK: Version: 1 + .section __TEXT,__text,regular,pure_instructions + .globl _f + .p2align 4, 0x90 +_f: ## @f +Lfunc_begin0: + .file 1 "test.c" + .loc 1 1 0 ## test.c:1:0 + .cfi_startproc +## BB#0: ## %entry + pushl %ebp +Ltmp0: + .cfi_def_cfa_offset 8 +Ltmp1: + .cfi_offset %ebp, -8 + movl %esp, %ebp +Ltmp2: + .cfi_def_cfa_register %ebp +Ltmp3: + .loc 1 1 11 prologue_end ## test.c:1:11 + popl %ebp + retl +Ltmp4: +Lfunc_end0: + .cfi_endproc + .cfi_sections .debug_frame + +.subsections_via_symbols + .section __DWARF,__debug_line,regular,debug +Lsection_line: +Lline_table_start0: diff --git a/tools/driver/cc1as_main.cpp b/tools/driver/cc1as_main.cpp index 388a769358..bcc2cde17a 100644 --- a/tools/driver/cc1as_main.cpp +++ b/tools/driver/cc1as_main.cpp @@ -200,7 +200,7 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts, // Any DebugInfoKind implies GenDwarfForAssembly. Opts.GenDwarfForAssembly = Args.hasArg(OPT_debug_info_kind_EQ); Opts.CompressDebugSections = Args.hasArg(OPT_compress_debug_sections); - Opts.DwarfVersion = getLastArgIntValue(Args, OPT_dwarf_version_EQ, 0, Diags); + Opts.DwarfVersion = getLastArgIntValue(Args, OPT_dwarf_version_EQ, 2, Diags); Opts.DwarfDebugFlags = Args.getLastArgValue(OPT_dwarf_debug_flags); Opts.DwarfDebugProducer = Args.getLastArgValue(OPT_dwarf_debug_producer); Opts.DebugCompilationDir = Args.getLastArgValue(OPT_fdebug_compilation_dir);