Replace use of output_object_file with output_file in CROSSTOOLS.

RELNOTES: None.
PiperOrigin-RevId: 196870840
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java
index 626f343..f1ec0a1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java
@@ -1145,21 +1145,17 @@
                     "    action: 'c++-header-parsing'",
                     "    action: 'lto-backend'",
                     "    flag_group {",
-                    "      expand_if_all_available: 'output_object_file'",
-                    "      flag: '-o'",
-                    "      flag: '%{output_object_file}'",
-                    "    }",
-                    "    flag_group {",
                     "      expand_if_all_available: 'output_assembly_file'",
                     "      flag: '-S'",
-                    "      flag: '-o'",
-                    "      flag: '%{output_assembly_file}'",
                     "    }",
                     "    flag_group {",
                     "      expand_if_all_available: 'output_preprocess_file'",
                     "      flag: '-E'",
+                    "    }",
+                    "    flag_group {",
+                    "      expand_if_all_available: 'output_file'",
                     "      flag: '-o'",
-                    "      flag: '%{output_preprocess_file}'",
+                    "      flag: '%{output_file}'",
                     "    }",
                     "  }",
                     "}")));
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
index 40e2b6a..f283dce 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL
@@ -1240,22 +1240,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -2982,22 +2978,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -4719,22 +4711,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -6456,22 +6444,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -8201,22 +8185,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -9950,22 +9930,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -11722,22 +11698,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -13476,22 +13448,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -15245,22 +15213,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -17014,22 +16978,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -18806,22 +18766,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
@@ -20580,22 +20536,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   feature {
diff --git a/tools/cpp/CROSSTOOL b/tools/cpp/CROSSTOOL
index d6a3a53..29a71a1 100644
--- a/tools/cpp/CROSSTOOL
+++ b/tools/cpp/CROSSTOOL
@@ -679,31 +679,8 @@
     tool {
       tool_path: 'wrapper/bin/msvc_cl.bat'
     }
-    flag_set {
-      flag_group {
-        flag: '/c'
-        flag: '%{source_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_object_file'
-      flag_group {
-        flag: '/Fo%{output_object_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_assembly_file'
-      flag_group {
-        flag: '/Fa%{output_assembly_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_preprocess_file'
-      flag_group {
-        flag: '/P'
-        flag: '/Fi%{output_preprocess_file}'
-      }
-    }
+    implies: 'compiler_input_flags'
+    implies: 'compiler_output_flags'
     implies: 'legacy_compile_flags'
     implies: 'user_compile_flags'
     implies: 'sysroot'
@@ -716,31 +693,8 @@
     tool {
       tool_path: 'wrapper/bin/msvc_cl.bat'
     }
-    flag_set {
-      flag_group {
-        flag: '/c'
-        flag: '%{source_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_object_file'
-      flag_group {
-        flag: '/Fo%{output_object_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_assembly_file'
-      flag_group {
-        flag: '/Fa%{output_assembly_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_preprocess_file'
-      flag_group {
-        flag: '/P'
-        flag: '/Fi%{output_preprocess_file}'
-      }
-    }
+    implies: 'compiler_input_flags'
+    implies: 'compiler_output_flags'
     implies: 'legacy_compile_flags'
     implies: 'user_compile_flags'
     implies: 'sysroot'
@@ -870,6 +824,65 @@
     }
   }
 
+  feature {
+    name: 'compiler_output_flags'
+    flag_set {
+      action: 'assemble'
+      flag_group {
+        expand_if_all_available: 'output_file'
+        expand_if_none_available: 'output_assembly_file'
+        expand_if_none_available: 'output_preprocess_file'
+        flag: '/Fo%{output_file}'
+        flag: '/Zi'
+      }
+    }
+    flag_set {
+      action: 'preprocess-assemble'
+      action: 'c-compile'
+      action: 'c++-compile'
+      action: 'c++-header-parsing'
+      action: 'c++-header-preprocessing'
+      action: 'c++-module-compile'
+      action: 'c++-module-codegen'
+      flag_group {
+        expand_if_all_available: 'output_file'
+        expand_if_none_available: 'output_assembly_file'
+        expand_if_none_available: 'output_preprocess_file'
+        flag: '/Fo%{output_file}'
+      }
+      flag_group {
+        expand_if_all_available: 'output_file'
+        expand_if_all_available: 'output_assembly_file'
+        flag: '/Fa%{output_file}'
+      }
+      flag_group {
+        expand_if_all_available: 'output_file'
+        expand_if_all_available: 'output_preprocess_file'
+        flag: '/P'
+        flag: '/Fi%{output_file}'
+      }
+    }
+  }
+
+  feature {
+    name: 'compiler_input_flags'
+    flag_set {
+      action: 'assemble'
+      action: 'preprocess-assemble'
+      action: 'c-compile'
+      action: 'c++-compile'
+      action: 'c++-header-parsing'
+      action: 'c++-header-preprocessing'
+      action: 'c++-module-compile'
+      action: 'c++-module-codegen'
+      flag_group {
+        expand_if_all_available: 'source_file'
+        flag: '/c'
+        flag: '%{source_file}'
+      }
+    }
+  }
+
   compilation_mode_flags {
     mode: DBG
     compiler_flag: "/DDEBUG=1"
diff --git a/tools/cpp/CROSSTOOL.tpl b/tools/cpp/CROSSTOOL.tpl
index d830aded..b4d9edd 100644
--- a/tools/cpp/CROSSTOOL.tpl
+++ b/tools/cpp/CROSSTOOL.tpl
@@ -327,15 +327,8 @@
     tool {
       tool_path: '%{msvc_ml_path}'
     }
-    flag_set {
-      expand_if_all_available: 'output_object_file'
-      flag_group {
-        flag: '/Fo%{output_object_file}'
-        flag: '/Zi'
-        flag: '/c'
-        flag: '%{source_file}'
-      }
-    }
+    implies: 'compiler_input_flags'
+    implies: 'compiler_output_flags'
     implies: 'nologo'
     implies: 'msvc_env'
     implies: 'sysroot'
@@ -347,31 +340,8 @@
     tool {
       tool_path: '%{msvc_cl_path}'
     }
-    flag_set {
-      flag_group {
-        flag: '/c'
-        flag: '%{source_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_object_file'
-      flag_group {
-        flag: '/Fo%{output_object_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_assembly_file'
-      flag_group {
-        flag: '/Fa%{output_assembly_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_preprocess_file'
-      flag_group {
-        flag: '/P'
-        flag: '/Fi%{output_preprocess_file}'
-      }
-    }
+    implies: 'compiler_input_flags'
+    implies: 'compiler_output_flags'
     implies: 'legacy_compile_flags'
     implies: 'nologo'
     implies: 'msvc_env'
@@ -387,31 +357,8 @@
     tool {
       tool_path: '%{msvc_cl_path}'
     }
-    flag_set {
-      flag_group {
-        flag: '/c'
-        flag: '%{source_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_object_file'
-      flag_group {
-        flag: '/Fo%{output_object_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_assembly_file'
-      flag_group {
-        flag: '/Fa%{output_assembly_file}'
-      }
-    }
-    flag_set {
-      expand_if_all_available: 'output_preprocess_file'
-      flag_group {
-        flag: '/P'
-        flag: '/Fi%{output_preprocess_file}'
-      }
-    }
+    implies: 'compiler_input_flags'
+    implies: 'compiler_output_flags'
     implies: 'legacy_compile_flags'
     implies: 'nologo'
     implies: 'msvc_env'
@@ -1043,6 +990,65 @@
   }
 
   feature {
+    name: 'compiler_output_flags'
+    flag_set {
+      action: 'assemble'
+      flag_group {
+        expand_if_all_available: 'output_file'
+        expand_if_none_available: 'output_assembly_file'
+        expand_if_none_available: 'output_preprocess_file'
+        flag: '/Fo%{output_file}'
+        flag: '/Zi'
+      }
+    }
+    flag_set {
+      action: 'preprocess-assemble'
+      action: 'c-compile'
+      action: 'c++-compile'
+      action: 'c++-header-parsing'
+      action: 'c++-header-preprocessing'
+      action: 'c++-module-compile'
+      action: 'c++-module-codegen'
+      flag_group {
+        expand_if_all_available: 'output_file'
+        expand_if_none_available: 'output_assembly_file'
+        expand_if_none_available: 'output_preprocess_file'
+        flag: '/Fo%{output_file}'
+      }
+      flag_group {
+        expand_if_all_available: 'output_file'
+        expand_if_all_available: 'output_assembly_file'
+        flag: '/Fa%{output_file}'
+      }
+      flag_group {
+        expand_if_all_available: 'output_file'
+        expand_if_all_available: 'output_preprocess_file'
+        flag: '/P'
+        flag: '/Fi%{output_file}'
+      }
+    }
+  }
+
+  feature {
+    name: 'compiler_input_flags'
+    flag_set {
+      action: 'assemble'
+      action: 'preprocess-assemble'
+      action: 'c-compile'
+      action: 'c++-compile'
+      action: 'c++-header-parsing'
+      action: 'c++-header-preprocessing'
+      action: 'c++-module-compile'
+      action: 'c++-module-codegen'
+      flag_group {
+        expand_if_all_available: 'source_file'
+        flag: '/c'
+        flag: '%{source_file}'
+      }
+    }
+  }
+
+  feature {
     name : 'def_file',
     flag_set {
       expand_if_all_available: 'def_file_path'
diff --git a/tools/cpp/crosstool_lib.bzl b/tools/cpp/crosstool_lib.bzl
index 875386d..1ddd838 100644
--- a/tools/cpp/crosstool_lib.bzl
+++ b/tools/cpp/crosstool_lib.bzl
@@ -223,18 +223,18 @@
       feature(
           "compiler_output_flags", [
               flag_set(COMPILE_ACTIONS,[
-                flag_group(
-                    flags("-o", "%{output_object_file}"),
-                    expand_if_all_available=["output_object_file"],
-                  ),
                   flag_group(
-                    flags("-S", "-o", "%{output_assembly_file}"),
+                    flags("-S"),
                     expand_if_all_available=["output_assembly_file"],
                   ),
                   flag_group(
-                    flags("-E", "-o", "%{output_preprocess_file}"),
+                    flags("-E"),
                     expand_if_all_available=["output_preprocess_file"],
                   ),
+                  flag_group(
+                    flags("-o", "%{output_file}"),
+                    expand_if_all_available=["output_file"],
+                  ),
               ])
           ]
       ),
diff --git a/tools/osx/crosstool/CROSSTOOL.tpl b/tools/osx/crosstool/CROSSTOOL.tpl
index 79c294c..63d1cad 100644
--- a/tools/osx/crosstool/CROSSTOOL.tpl
+++ b/tools/osx/crosstool/CROSSTOOL.tpl
@@ -1166,22 +1166,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {
@@ -2812,22 +2808,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {
@@ -4462,22 +4454,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {
@@ -6132,22 +6120,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {
@@ -7790,22 +7774,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {
@@ -9428,22 +9408,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {
@@ -11066,22 +11042,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {
@@ -12724,22 +12696,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {
@@ -14370,22 +14338,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {
@@ -16007,22 +15971,18 @@
       action: "objc-compile"
       action: "objc++-compile"
       flag_group {
-        flag: "-o"
-        flag: "%{output_object_file}"
-        expand_if_all_available: "output_object_file"
-      }
-      flag_group {
         flag: "-S"
-        flag: "-o"
-        flag: "%{output_assembly_file}"
         expand_if_all_available: "output_assembly_file"
       }
       flag_group {
         flag: "-E"
-        flag: "-o"
-        flag: "%{output_preprocess_file}"
         expand_if_all_available: "output_preprocess_file"
       }
+      flag_group {
+        flag: "-o"
+        flag: "%{output_file}"
+        expand_if_all_available: "output_file"
+      }
     }
   }
   action_config {