]> granicus.if.org Git - clang/commitdiff
Driver: Replace Option::ForwardToGCC by Option::DriverOption (which
authorDaniel Dunbar <daniel@zuster.org>
Wed, 25 Mar 2009 06:08:46 +0000 (06:08 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 25 Mar 2009 06:08:46 +0000 (06:08 +0000)
matches the flag in Options.def).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67679 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Driver/Option.h
lib/Driver/OptTable.cpp
lib/Driver/Option.cpp

index 79b512e607b156e3ddfc98209ea7b7ffbc0e1592..c7b6d0e08c1085061c4474dba97840ae886a12ca 100644 (file)
@@ -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).
index baaa886fec10bd16db2c16c3937c2de0014f2259..2e449995809785760ca187e38509dbe26d59fb8c 100644 (file)
@@ -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;
 }
 
index 6ea02aaf40e0ccfad8984cf0469623a3cb718667..624854815d64b9b080b10caa918d3fa23d32d6ae 100644 (file)
@@ -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