Author: David Blaikie Date: 2019-11-01T15:17:51-07:00 New Revision: 098d901bd1be07f60c41450fa4af775b130117b9
URL: https://github.com/llvm/llvm-project/commit/098d901bd1be07f60c41450fa4af775b130117b9 DIFF: https://github.com/llvm/llvm-project/commit/098d901bd1be07f60c41450fa4af775b130117b9.diff LOG: DebugInfo: Let -gdwarf use the toolchain default DWARF version, instead of hardcoded/aliased to -gdwarf-4 Added: Modified: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/CodeGen/dwarf-version.c Removed: ################################################################################ diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 07c27ebcefee..44259a2a53e8 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -1972,6 +1972,10 @@ def ggdb2 : Flag<["-"], "ggdb2">, Group<ggdbN_Group>; def ggdb3 : Flag<["-"], "ggdb3">, Group<ggdbN_Group>; def glldb : Flag<["-"], "glldb">, Group<gTune_Group>; def gsce : Flag<["-"], "gsce">, Group<gTune_Group>; +// Equivalent to our default dwarf version. Forces usual dwarf emission when +// CodeView is enabled. +def gdwarf : Flag<["-"], "gdwarf">, Group<g_Group>, + HelpText<"Generate source-level debug information with the default dwarf version">; def gdwarf_2 : Flag<["-"], "gdwarf-2">, Group<g_Group>, HelpText<"Generate source-level debug information with dwarf version 2">; def gdwarf_3 : Flag<["-"], "gdwarf-3">, Group<g_Group>, @@ -1989,10 +1993,6 @@ def gcodeview_ghash : Flag<["-"], "gcodeview-ghash">, Flags<[CC1Option, CoreOption]>; def gno_codeview_ghash : Flag<["-"], "gno-codeview-ghash">, Flags<[CoreOption]>; -// Equivalent to our default dwarf version. Forces usual dwarf emission when -// CodeView is enabled. -def gdwarf : Flag<["-"], "gdwarf">, Alias<gdwarf_4>, Flags<[CoreOption]>; - def gfull : Flag<["-"], "gfull">, Group<g_Group>; def gused : Flag<["-"], "gused">, Group<g_Group>; def gstabs : Joined<["-"], "gstabs">, Group<g_Group>, Flags<[Unsupported]>; diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 9cfa39840566..529c33a16748 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -3198,9 +3198,9 @@ static void RenderDebugOptions(const ToolChain &TC, const Driver &D, } // If a -gdwarf argument appeared, remember it. - const Arg *GDwarfN = - Args.getLastArg(options::OPT_gdwarf_2, options::OPT_gdwarf_3, - options::OPT_gdwarf_4, options::OPT_gdwarf_5); + const Arg *GDwarfN = Args.getLastArg( + options::OPT_gdwarf_2, options::OPT_gdwarf_3, options::OPT_gdwarf_4, + options::OPT_gdwarf_5, options::OPT_gdwarf); bool EmitDwarf = false; if (GDwarfN) { if (checkDebugInfoOption(GDwarfN, Args, D, TC)) @@ -3231,6 +3231,7 @@ static void RenderDebugOptions(const ToolChain &TC, const Driver &D, if (EmitDwarf) { // Start with the platform default DWARF version DWARFVersion = TC.GetDefaultDwarfVersion(); + assert(DWARFVersion && "toolchain default DWARF version must be nonzero"); // Override with a user-specified DWARF version if (GDwarfN) diff --git a/clang/test/CodeGen/dwarf-version.c b/clang/test/CodeGen/dwarf-version.c index 39bcbc209037..10add21d88dd 100644 --- a/clang/test/CodeGen/dwarf-version.c +++ b/clang/test/CodeGen/dwarf-version.c @@ -14,6 +14,7 @@ // RUN: %clang -target powerpc-unknown-openbsd -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER2 // RUN: %clang -target powerpc-unknown-freebsd -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER2 // RUN: %clang -target i386-pc-solaris -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER2 +// RUN: %clang -target i386-pc-solaris -gdwarf -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER2 // Check which debug info formats we use on Windows. By default, in an MSVC // environment, we should use codeview. You can enable dwarf, which implicitly _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits