diff --git a/tools/gn/analyzer.cc b/tools/gn/analyzer.cc
index 8ee303f..f89c93d 100644
--- a/tools/gn/analyzer.cc
+++ b/tools/gn/analyzer.cc
@@ -252,17 +252,11 @@
     return OutputsToJSON(outputs, default_toolchain_, err);
   }
 
-  TargetSet affected_targets = AllAffectedTargets(inputs.source_files);
-  if (affected_targets.empty()) {
-    outputs.status = "No dependency";
-    return OutputsToJSON(outputs, default_toolchain_, err);
-  }
-
-  // TODO: We can do smarter things when we detect changes to build files.
-  // For example, if all of the ninja files are unchanged, we know that we
-  // can ignore changes to these files. Also, for most .gn files, we can
-  // treat a change as simply affecting every target, config, or toolchain
-  // defined in that file.
+  // TODO(crbug.com/555273): We can do smarter things when we detect changes
+  // to build files. For example, if all of the ninja files are unchanged,
+  // we know that we can ignore changes to these files. Also, for most .gn
+  // files, we can treat a change as simply affecting every target, config,
+  // or toolchain defined in that file.
   if (AnyBuildFilesWereModified(inputs.source_files)) {
     outputs.status = "Found dependency (all)";
     outputs.compile_labels = inputs.compile_labels;
@@ -270,6 +264,12 @@
     return OutputsToJSON(outputs, default_toolchain_, err);
   }
 
+  TargetSet affected_targets = AllAffectedTargets(inputs.source_files);
+  if (affected_targets.empty()) {
+    outputs.status = "No dependency";
+    return OutputsToJSON(outputs, default_toolchain_, err);
+  }
+
   TargetSet compile_targets = TargetsFor(inputs.compile_labels);
   if (inputs.compile_included_all) {
     for (auto& root : roots_)
diff --git a/tools/gn/analyzer_unittest.cc b/tools/gn/analyzer_unittest.cc
index dba0e77..4d5c8d4 100644
--- a/tools/gn/analyzer_unittest.cc
+++ b/tools/gn/analyzer_unittest.cc
@@ -200,3 +200,20 @@
       "\"invalid_targets\":[]"
       "}");
 }
+
+TEST_F(AnalyzerTest, BuildFilesWereModified) {
+  // This tests that if a build file is modified, we bail out early with
+  // "Found dependency (all)" error since we can't handle changes to
+  // build files yet (crbug.com/555273).
+  RunBasicTest(
+      "{"
+      "  \"files\": [ \"//a.cc\", \"//BUILD.gn\" ],"
+      "  \"additional_compile_targets\": [],"
+      "  \"test_targets\": [ \"//:a\" ]"
+      "}",
+      "{"
+      "\"compile_targets\":[],"
+      "\"status\":\"Found dependency (all)\","
+      "\"test_targets\":[\"//:a\"]"
+      "}");
+}
