Re-enable modules pruning for fake compile actions. I think our initial
assessment was wrong and this does work properly now that all the inputs are
properly declared.

--
MOS_MIGRATED_REVID=140618631
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
index ca4c177..d1ee7f3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
@@ -270,12 +270,9 @@
     // something that uses A (a header of it), we mark A and all of its transitive deps as inputs.
     // We still don't need to rebuild A, as none of its inputs have changed, but we do rebuild B
     // now and then the two modules are out of sync.
-    // We also have to disable this for fake C++ compile actions as those currently do a build first
-    // before discovering inputs and thus would not declare their inputs properly.
     boolean shouldPruneModules =
         shouldScanIncludes
             && useHeaderModules
-            && !fake
             && !getActionName().equals(CppCompileAction.CPP_MODULE_COMPILE);
     if (useHeaderModules && !shouldPruneModules) {
       realMandatoryInputsBuilder.addTransitive(context.getTransitiveModules(usePic));