r266814 - cc1as: Don't crash when CIE is requested and no DWARF version is specified.

Adrian Prantl via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 19 13:31:19 PDT 2016


Author: adrian
Date: Tue Apr 19 15:31:19 2016
New Revision: 266814

URL: http://llvm.org/viewvc/llvm-project?rev=266814&view=rev
Log:
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

Added:
    cfe/trunk/test/Driver/as-dwarf-cie.s
Modified:
    cfe/trunk/tools/driver/cc1as_main.cpp

Added: cfe/trunk/test/Driver/as-dwarf-cie.s
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/as-dwarf-cie.s?rev=266814&view=auto
==============================================================================
--- cfe/trunk/test/Driver/as-dwarf-cie.s (added)
+++ cfe/trunk/test/Driver/as-dwarf-cie.s Tue Apr 19 15:31:19 2016
@@ -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:

Modified: cfe/trunk/tools/driver/cc1as_main.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/cc1as_main.cpp?rev=266814&r1=266813&r2=266814&view=diff
==============================================================================
--- cfe/trunk/tools/driver/cc1as_main.cpp (original)
+++ cfe/trunk/tools/driver/cc1as_main.cpp Tue Apr 19 15:31:19 2016
@@ -200,7 +200,7 @@ bool AssemblerInvocation::CreateFromArgs
   // 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);




More information about the cfe-commits mailing list