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

llvm-svn: 266814
This commit is contained in:
Adrian Prantl 2016-04-19 20:31:19 +00:00
parent 04ccbd4053
commit ae39ccc49f
2 changed files with 38 additions and 1 deletions

View File

@ -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:

View File

@ -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);