commit 3c0164bdc94c1ea16fb4fe8f318be4dc41efe82c
Author: David Blaikie <dblaikie@gmail.com>
Date:   Wed Jun 13 16:46:58 2012 -0700

    Support -f[no-]rewrite-includes from the driver.

diff --git include/clang/Driver/CC1Options.td include/clang/Driver/CC1Options.td
index c128d6e..f7de6f8 100644
--- include/clang/Driver/CC1Options.td
+++ include/clang/Driver/CC1Options.td
@@ -493,8 +493,6 @@ def token_cache : Separate<"-token-cache">, MetaVarName<"<path>">,
   HelpText<"Use specified token cache file">;
 def detailed_preprocessing_record : Flag<"-detailed-preprocessing-record">,
   HelpText<"include a detailed record of preprocessing actions">;
-def frewrite_includes : Flag<"-frewrite-includes">,
-  HelpText<"Expand includes without full preprocessing">;
 
 //===----------------------------------------------------------------------===//
 // OpenCL Options
diff --git include/clang/Driver/Options.td include/clang/Driver/Options.td
index 73f5fbb..ba4d20e 100644
--- include/clang/Driver/Options.td
+++ include/clang/Driver/Options.td
@@ -407,6 +407,10 @@ def fno_trapping_math : Flag<"-fno-trapping-math">, Group<f_Group>;
 def ffor_scope : Flag<"-ffor-scope">, Group<f_Group>;
 def fno_for_scope : Flag<"-fno-for-scope">, Group<f_Group>;
 
+def frewrite_includes : Flag<"-frewrite-includes">, Group<f_Group>,
+  Flags<[CC1Option]>;
+def fno_rewrite_includes : Flag<"-fno-rewrite-includes">, Group<f_Group>;
+
 def ffreestanding : Flag<"-ffreestanding">, Group<f_Group>, Flags<[CC1Option]>,
   HelpText<"Assert that the compilation takes place in a freestanding environment">;
 def fgnu_keywords : Flag<"-fgnu-keywords">, Group<f_Group>, Flags<[CC1Option]>,
diff --git lib/Driver/Tools.cpp lib/Driver/Tools.cpp
index dec9dba..1508150 100644
--- lib/Driver/Tools.cpp
+++ lib/Driver/Tools.cpp
@@ -2233,6 +2233,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
   if (Args.getLastArg(options::OPT_fapple_kext))
     CmdArgs.push_back("-fapple-kext");
 
+  if (Args.hasFlag(options::OPT_frewrite_includes,
+                   options::OPT_fno_rewrite_includes, false))
+    CmdArgs.push_back("-frewrite-includes");
+
   Args.AddLastArg(CmdArgs, options::OPT_fobjc_sender_dependent_dispatch);
   Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_print_source_range_info);
   Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_parseable_fixits);
