diff options
Diffstat (limited to 'lib/Driver/Tools.cpp')
-rw-r--r-- | lib/Driver/Tools.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index e152b93121..27a222a840 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1910,21 +1910,19 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, // Use the last option from "-g" group. "-gline-tables-only" is // preserved, all other debug options are substituted with "-g". - // FIXME: We should eventually do the following: - // 1) collapse gdb and dwarf variations to -g (as we do now); - // 2) support things like -gtoggle; - // 3) ignore flag options like -gstrict-dwarf or -grecord-gcc-switches; - // 4) produce a driver error on unsupported formats - // (-gstabs, -gcoff, -gvms etc.) Args.ClaimAllArgs(options::OPT_g_Group); if (Arg *A = Args.getLastArg(options::OPT_g_Group)) { if (A->getOption().matches(options::OPT_gline_tables_only)) { CmdArgs.push_back("-gline-tables-only"); - } else if (!A->getOption().matches(options::OPT_g0)) { + } else if (!A->getOption().matches(options::OPT_g0) && + !A->getOption().matches(options::OPT_ggdb0)) { CmdArgs.push_back("-g"); } } + // We ignore flags -gstrict-dwarf and -grecord-gcc-switches for now. + Args.ClaimAllArgs(options::OPT_g_flags_Group); + Args.AddAllArgs(CmdArgs, options::OPT_ffunction_sections); Args.AddAllArgs(CmdArgs, options::OPT_fdata_sections); |