diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-01-27 18:52:43 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-01-27 18:52:43 +0000 |
commit | f36d9bac47dac3df7a1eba47e60816eb4d76e42d (patch) | |
tree | c8af607c6fa2d8a010613bb3e6df54d286b13909 | |
parent | 924eb2afdc511c976fba9428681313772700967e (diff) | |
download | llvm-f36d9bac47dac3df7a1eba47e60816eb4d76e42d.zip llvm-f36d9bac47dac3df7a1eba47e60816eb4d76e42d.tar.gz llvm-f36d9bac47dac3df7a1eba47e60816eb4d76e42d.tar.bz2 |
Driver: support -fno-debug-types-section to override -fdebug-types-section
llvm-svn: 200236
-rw-r--r-- | clang/include/clang/Driver/Options.td | 2 | ||||
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 3 | ||||
-rw-r--r-- | clang/test/Driver/debug-options.c | 6 |
3 files changed, 10 insertions, 1 deletions
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 25a1d12..6b7e198 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -873,6 +873,8 @@ def fno_data_sections : Flag <["-"], "fno-data-sections">, Group<f_Group>, Flags<[CC1Option]>; def fdebug_types_section: Flag <["-"], "fdebug-types-section">, Group<f_Group>, Flags<[CC1Option]>, HelpText<"Place debug types in their own section (ELF Only)">; +def fno_debug_types_section: Flag<["-"], "fno-debug-types-section">, Group<f_Group>, + Flags<[CC1Option]>; def g_Flag : Flag<["-"], "g">, Group<g_Group>, HelpText<"Generate source level debug information">, Flags<[CC1Option]>; def gline_tables_only : Flag<["-"], "gline-tables-only">, Group<g_Group>, diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 3176f1f..615c375 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -2606,7 +2606,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-generate-gnu-dwarf-pub-sections"); } - if (Args.hasArg(options::OPT_fdebug_types_section)) { + if (Args.hasFlag(options::OPT_fdebug_types_section, + options::OPT_fno_debug_types_section, false)) { CmdArgs.push_back("-backend-option"); CmdArgs.push_back("-generate-type-units"); } diff --git a/clang/test/Driver/debug-options.c b/clang/test/Driver/debug-options.c index 65350a6..e17cc01 100644 --- a/clang/test/Driver/debug-options.c +++ b/clang/test/Driver/debug-options.c @@ -53,6 +53,10 @@ // RUN: %clang -### -fdebug-types-section %s 2>&1 \ // RUN: | FileCheck -check-prefix=FDTS %s // +// RUN: %clang -### -fdebug-types-section -fno-debug-types-section %s 2>&1 \ +// RUN: | FileCheck -check-prefix=NOFDTS %s +// +// // G: "-cc1" // G: "-g" // @@ -94,3 +98,5 @@ // GOPT: -generate-gnu-dwarf-pub-sections // // FDTS: "-backend-option" "-generate-type-units" +// +// NOFDTS-NOT: "-backend-option" "-generate-type-units" |