summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-03-25 06:08:46 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-03-25 06:08:46 +0000
commit0e378b1e26f9dd899cb5ee66a8509182b0bf7e2a (patch)
tree22ed609aad80ee3fc3c0ff95a1f3856f40576cd8
parent24e7eade19c023132fe73eb85dedcd5b70ecf61d (diff)
downloadbcm5719-llvm-0e378b1e26f9dd899cb5ee66a8509182b0bf7e2a.tar.gz
bcm5719-llvm-0e378b1e26f9dd899cb5ee66a8509182b0bf7e2a.zip
Driver: Replace Option::ForwardToGCC by Option::DriverOption (which
matches the flag in Options.def). llvm-svn: 67679
-rw-r--r--clang/include/clang/Driver/Option.h10
-rw-r--r--clang/lib/Driver/OptTable.cpp7
-rw-r--r--clang/lib/Driver/Option.cpp2
3 files changed, 8 insertions, 11 deletions
diff --git a/clang/include/clang/Driver/Option.h b/clang/include/clang/Driver/Option.h
index 79b512e607b..c7b6d0e08c1 100644
--- a/clang/include/clang/Driver/Option.h
+++ b/clang/include/clang/Driver/Option.h
@@ -82,8 +82,8 @@ namespace driver {
/// Always render this option joined with its value.
bool ForceJoinedRender : 1;
- /// Forward to generic GCC tools.
- bool ForwardToGCC : 1;
+ /// This option is only for consumed by the driver.
+ bool DriverOption : 1;
protected:
Option(OptionClass Kind, options::ID ID, const char *Name,
@@ -112,8 +112,10 @@ namespace driver {
bool hasForceJoinedRender() const { return ForceJoinedRender; }
void setForceJoinedRender(bool Value) { ForceJoinedRender = Value; }
- bool hasForwardToGCC() const { return ForwardToGCC; }
- void setForwardToGCC(bool Value) { ForwardToGCC = Value; }
+ bool isDriverOption() const { return DriverOption; }
+ void setDriverOption(bool Value) { DriverOption = Value; }
+
+ bool hasForwardToGCC() const { return !DriverOption && !LinkerInput; }
/// getUnaliasedOption - Return the final option this option
/// aliases (itself, if the option has no alias).
diff --git a/clang/lib/Driver/OptTable.cpp b/clang/lib/Driver/OptTable.cpp
index baaa886fec1..2e449995809 100644
--- a/clang/lib/Driver/OptTable.cpp
+++ b/clang/lib/Driver/OptTable.cpp
@@ -185,18 +185,13 @@ Option *OptTable::constructOption(options::ID id) const {
case 'S':
assert(info.Kind == Option::JoinedClass && "Invalid option.");
Opt->setForceSeparateRender(true); break;
- case 'd': Opt->setForwardToGCC(false); break;
+ case 'd': Opt->setDriverOption(true); break;
case 'i': Opt->setNoOptAsInput(true); break;
case 'l': Opt->setLinkerInput(true); break;
case 'u': Opt->setUnsupported(true); break;
}
}
- // Linker inputs shouldn't be forwarded to GCC as arguments (they
- // will, however, be forwarded as inputs).
- if (Opt->isLinkerInput())
- Opt->setForwardToGCC(false);
-
return Opt;
}
diff --git a/clang/lib/Driver/Option.cpp b/clang/lib/Driver/Option.cpp
index 6ea02aaf40e..624854815d6 100644
--- a/clang/lib/Driver/Option.cpp
+++ b/clang/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),
- ForwardToGCC(true)
+ DriverOption(false)
{
// Multi-level aliases are not supported, and alias options cannot
OpenPOWER on IntegriCloud