aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-04-07 19:04:18 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-04-07 19:04:18 +0000
commit1e23f5f963dd6a3cee43ace77578161798e41e2d (patch)
treeee56d24643fcf40e3d080840f704bf1fdc0b9f11 /lib/Driver
parent235c5ed8bee5bbcb45de1707d6988635e49b10b8 (diff)
Driver: Add 'q' flag for options which shouldn't be reported as unused.
- <rdar://problem/6756295> warning about '-dynamic' argument unused during compilation seems incorrect git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68535 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver')
-rw-r--r--lib/Driver/Driver.cpp6
-rw-r--r--lib/Driver/OptTable.cpp1
-rw-r--r--lib/Driver/Option.cpp2
3 files changed, 7 insertions, 2 deletions
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index 68ff8bc8b0..f9a82ff78d 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -802,7 +802,8 @@ void Driver::BuildJobs(Compilation &C) const {
// If the user passed -Qunused-arguments or there were errors, don't
// warn about any unused arguments.
- if (Diags.getNumErrors() || C.getArgs().hasArg(options::OPT_Qunused_arguments))
+ if (Diags.getNumErrors() ||
+ C.getArgs().hasArg(options::OPT_Qunused_arguments))
return;
// Claim -### here.
@@ -816,6 +817,9 @@ void Driver::BuildJobs(Compilation &C) const {
// Diagnostic, so that extra values, position, and so on could be
// printed.
if (!A->isClaimed()) {
+ if (A->getOption().hasNoArgumentUnused())
+ continue;
+
// Suppress the warning automatically if this is just a flag,
// and it is an instance of an argument we already claimed.
const Option &Opt = A->getOption();
diff --git a/lib/Driver/OptTable.cpp b/lib/Driver/OptTable.cpp
index cbbeea1974..7ea6a8b0d9 100644
--- a/lib/Driver/OptTable.cpp
+++ b/lib/Driver/OptTable.cpp
@@ -204,6 +204,7 @@ Option *OptTable::constructOption(options::ID id) const {
case 'd': Opt->setDriverOption(true); break;
case 'i': Opt->setNoOptAsInput(true); break;
case 'l': Opt->setLinkerInput(true); break;
+ case 'q': Opt->setNoArgumentUnused(true); break;
case 'u': Opt->setUnsupported(true); break;
}
}
diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp
index 624854815d..cad2bbf2b7 100644
--- a/lib/Driver/Option.cpp
+++ b/lib/Driver/Option.cpp
@@ -21,7 +21,7 @@ Option::Option(OptionClass _Kind, options::ID _ID, const char *_Name,
: Kind(_Kind), ID(_ID), Name(_Name), Group(_Group), Alias(_Alias),
Unsupported(false), LinkerInput(false), NoOptAsInput(false),
ForceSeparateRender(false), ForceJoinedRender(false),
- DriverOption(false)
+ DriverOption(false), NoArgumentUnused(false)
{
// Multi-level aliases are not supported, and alias options cannot