Add '--experimental_allow_fastbuild_debug' which when set, adds flag'-DDEBUG=1' to 'fastbuild' for objc.

RELNOTES: Make '-DDEBUG=1' available for objc fastbuild via --experimental_allow_fastbuild_debug

--
MOS_MIGRATED_REVID=99896083
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
index 9f405e7..7ac2e61 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
@@ -136,6 +136,14 @@
           + "built with --cpu set to \"ios_<--ios_cpu>\" for any values in --ios_multi_cpu.")
   public boolean enableCcDeps;
 
+  // TODO(bazel-team): Add "-DDEBUG=1" to FASTBUILD_COPTS.
+  @Option(name = "experimental_objc_fastbuild_options",
+      defaultValue = "-O0",
+      category = "undocumented",
+      converter = CommaSeparatedOptionListConverter.class,
+      help = "Adds these strings to fastbuild compiler options.")
+  public List<String> fastbuildOptions;
+
   @Option(name = "objc_enable_binary_stripping",
       defaultValue = "false",
       category = "flags",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
index 08ebca8..8741f67 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
@@ -43,10 +43,6 @@
       "-fstack-protector", "-fstack-protector-all", "-D_GLIBCXX_DEBUG_PEDANTIC", "-D_GLIBCXX_DEBUG",
       "-D_GLIBCPP_CONCEPT_CHECKS");
 
-  // TODO(bazel-team): Add "-DDEBUG=1" to FASTBUILD_COPTS.
-  @VisibleForTesting
-  static final ImmutableList<String> FASTBUILD_COPTS = ImmutableList.of("-O0");
-
   @VisibleForTesting
   static final ImmutableList<String> OPT_COPTS =
       ImmutableList.of(
@@ -65,6 +61,7 @@
   private final List<String> iosMultiCpus;
   private final String iosSplitCpu;
   private final boolean perProtoIncludes;
+  private final List<String> fastbuildOptions;
   private final boolean enableBinaryStripping;
   private final ConfigurationDistinguisher configurationDistinguisher;
   @Nullable private final Path clientWorkspaceRoot;
@@ -99,6 +96,7 @@
     this.iosMultiCpus = Preconditions.checkNotNull(objcOptions.iosMultiCpus, "iosMultiCpus");
     this.iosSplitCpu = Preconditions.checkNotNull(objcOptions.iosSplitCpu, "iosSplitCpu");
     this.perProtoIncludes = objcOptions.perProtoIncludes;
+    this.fastbuildOptions = ImmutableList.copyOf(objcOptions.fastbuildOptions);
     this.enableBinaryStripping = objcOptions.enableBinaryStripping;
     this.configurationDistinguisher = objcOptions.configurationDistinguisher;
     this.clientWorkspaceRoot = directories != null ? directories.getWorkspace() : null;
@@ -180,7 +178,7 @@
       case DBG:
         return DBG_COPTS;
       case FASTBUILD:
-        return FASTBUILD_COPTS;
+        return fastbuildOptions;
       case OPT:
         return OPT_COPTS;
       default: