Fix gn CHECK()ing on not_needed() when given undefined identifiers

GN now gives an error message that looks like:

ERROR at //BUILD.gn:76:23: Undefined identifier
  not_needed(["deps", "deps_____________"])
                      ^------------------

R=dpranke

Change-Id: Ic55afef672a7aefab7934875ceb22aff52b68f94
Reviewed-on: https://chromium-review.googlesource.com/1063118
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#559899}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4497a44f0d8236cb069ed89c013154c1adfc2087
diff --git a/tools/gn/functions.cc b/tools/gn/functions.cc
index 105dadf..e7fb524 100644
--- a/tools/gn/functions.cc
+++ b/tools/gn/functions.cc
@@ -746,7 +746,10 @@
     for (const Value& cur : value->list_value()) {
       if (!cur.VerifyTypeIs(Value::STRING, err))
         return Value();
-      source->MarkUsed(cur.string_value());
+      if (!source->GetValue(cur.string_value(), true)) {
+        *err = Err(cur, "Undefined identifier");
+        return Value();
+      }
     }
     return Value();
   }