Switch to standard integer types in tools/.

BUG=138542
TBR=thakis@chromium.org

Review URL: https://codereview.chromium.org/1549203002

Cr-Original-Commit-Position: refs/heads/master@{#366895}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: cab0f83c7f6c4401bc59c8b797461b6a2f7b08e1
diff --git a/tools/gn/builder.cc b/tools/gn/builder.cc
index 5548d2b..5af7c3d 100644
--- a/tools/gn/builder.cc
+++ b/tools/gn/builder.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/builder.h"
 
+#include <stddef.h>
+
 #include "tools/gn/config.h"
 #include "tools/gn/deps_iterator.h"
 #include "tools/gn/err.h"
diff --git a/tools/gn/c_include_iterator.cc b/tools/gn/c_include_iterator.cc
index bb43803..cc3cb35 100644
--- a/tools/gn/c_include_iterator.cc
+++ b/tools/gn/c_include_iterator.cc
@@ -5,6 +5,7 @@
 #include "tools/gn/c_include_iterator.h"
 
 #include "base/logging.h"
+#include "base/macros.h"
 #include "base/strings/string_util.h"
 #include "tools/gn/input_file.h"
 #include "tools/gn/location.h"
diff --git a/tools/gn/c_include_iterator.h b/tools/gn/c_include_iterator.h
index 5099d8b..e81a60c 100644
--- a/tools/gn/c_include_iterator.h
+++ b/tools/gn/c_include_iterator.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_C_INCLUDE_ITERATOR_H_
 #define TOOLS_GN_C_INCLUDE_ITERATOR_H_
 
+#include <stddef.h>
+
 #include "base/macros.h"
 #include "base/strings/string_piece.h"
 
diff --git a/tools/gn/c_include_iterator_unittest.cc b/tools/gn/c_include_iterator_unittest.cc
index 1add29b..5adbb65 100644
--- a/tools/gn/c_include_iterator_unittest.cc
+++ b/tools/gn/c_include_iterator_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/c_include_iterator.h"
 #include "tools/gn/input_file.h"
diff --git a/tools/gn/command_args.cc b/tools/gn/command_args.cc
index a8b0097..12c20d7 100644
--- a/tools/gn/command_args.cc
+++ b/tools/gn/command_args.cc
@@ -2,8 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include <map>
 
@@ -13,6 +15,7 @@
 #include "base/process/launch.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
+#include "build/build_config.h"
 #include "tools/gn/commands.h"
 #include "tools/gn/filesystem_utils.h"
 #include "tools/gn/input_file.h"
diff --git a/tools/gn/command_check.cc b/tools/gn/command_check.cc
index 73660c9..9f89dc0 100644
--- a/tools/gn/command_check.cc
+++ b/tools/gn/command_check.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include "base/command_line.h"
 #include "base/strings/stringprintf.h"
 #include "tools/gn/commands.h"
diff --git a/tools/gn/command_desc.cc b/tools/gn/command_desc.cc
index d920f2c..27b1d01 100644
--- a/tools/gn/command_desc.cc
+++ b/tools/gn/command_desc.cc
@@ -2,11 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include <algorithm>
 #include <set>
 #include <sstream>
 
 #include "base/command_line.h"
+#include "build/build_config.h"
 #include "tools/gn/commands.h"
 #include "tools/gn/config.h"
 #include "tools/gn/config_values_extractors.h"
diff --git a/tools/gn/command_format.cc b/tools/gn/command_format.cc
index 3620a80..d7301c9 100644
--- a/tools/gn/command_format.cc
+++ b/tools/gn/command_format.cc
@@ -2,10 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include <sstream>
 
 #include "base/command_line.h"
 #include "base/files/file_util.h"
+#include "base/macros.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "tools/gn/commands.h"
diff --git a/tools/gn/command_path.cc b/tools/gn/command_path.cc
index 021ffe3..2368788 100644
--- a/tools/gn/command_path.cc
+++ b/tools/gn/command_path.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include <algorithm>
 
 #include "base/command_line.h"
diff --git a/tools/gn/command_refs.cc b/tools/gn/command_refs.cc
index 742b43b..821fd88 100644
--- a/tools/gn/command_refs.cc
+++ b/tools/gn/command_refs.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include <map>
 #include <set>
 
diff --git a/tools/gn/config_values_extractors.h b/tools/gn/config_values_extractors.h
index 14eb118..f87f52b 100644
--- a/tools/gn/config_values_extractors.h
+++ b/tools/gn/config_values_extractors.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_CONFIG_VALUES_EXTRACTORS_H_
 #define TOOLS_GN_CONFIG_VALUES_EXTRACTORS_H_
 
+#include <stddef.h>
+
 #include <ostream>
 #include <string>
 #include <vector>
diff --git a/tools/gn/deps_iterator.h b/tools/gn/deps_iterator.h
index cf28718..58f2b34 100644
--- a/tools/gn/deps_iterator.h
+++ b/tools/gn/deps_iterator.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_DEPS_ITERATOR_H_
 #define TOOLS_GN_DEPS_ITERATOR_H_
 
+#include <stddef.h>
+
 #include "tools/gn/label_ptr.h"
 
 class Target;
diff --git a/tools/gn/err.cc b/tools/gn/err.cc
index 319bfa8..e10f001 100644
--- a/tools/gn/err.cc
+++ b/tools/gn/err.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/err.h"
 
+#include <stddef.h>
+
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "tools/gn/filesystem_utils.h"
diff --git a/tools/gn/escape.cc b/tools/gn/escape.cc
index 08d893e..5f27523 100644
--- a/tools/gn/escape.cc
+++ b/tools/gn/escape.cc
@@ -4,8 +4,11 @@
 
 #include "tools/gn/escape.h"
 
+#include <stddef.h>
+
 #include "base/containers/stack_container.h"
 #include "base/logging.h"
+#include "build/build_config.h"
 
 namespace {
 
diff --git a/tools/gn/exec_process.cc b/tools/gn/exec_process.cc
index 8a66307..e80abd6 100644
--- a/tools/gn/exec_process.cc
+++ b/tools/gn/exec_process.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/exec_process.h"
 
+#include <stddef.h>
+
 #include "base/command_line.h"
 #include "base/files/file_util.h"
 #include "base/logging.h"
diff --git a/tools/gn/filesystem_utils.h b/tools/gn/filesystem_utils.h
index e6a17ab..f64c00d 100644
--- a/tools/gn/filesystem_utils.h
+++ b/tools/gn/filesystem_utils.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_FILESYSTEM_UTILS_H_
 #define TOOLS_GN_FILESYSTEM_UTILS_H_
 
+#include <stddef.h>
+
 #include <string>
 
 #include "base/files/file_path.h"
diff --git a/tools/gn/function_get_path_info.cc b/tools/gn/function_get_path_info.cc
index 09f29dc..d994f06 100644
--- a/tools/gn/function_get_path_info.cc
+++ b/tools/gn/function_get_path_info.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include "tools/gn/err.h"
 #include "tools/gn/filesystem_utils.h"
 #include "tools/gn/functions.h"
diff --git a/tools/gn/function_get_path_info_unittest.cc b/tools/gn/function_get_path_info_unittest.cc
index e9746a7..79020df 100644
--- a/tools/gn/function_get_path_info_unittest.cc
+++ b/tools/gn/function_get_path_info_unittest.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/functions.h"
 #include "tools/gn/test_with_scope.h"
diff --git a/tools/gn/function_rebase_path.cc b/tools/gn/function_rebase_path.cc
index ffe4eae..6661d81 100644
--- a/tools/gn/function_rebase_path.cc
+++ b/tools/gn/function_rebase_path.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include "tools/gn/build_settings.h"
 #include "tools/gn/filesystem_utils.h"
 #include "tools/gn/functions.h"
diff --git a/tools/gn/function_write_file.cc b/tools/gn/function_write_file.cc
index 02acca4..9159975 100644
--- a/tools/gn/function_write_file.cc
+++ b/tools/gn/function_write_file.cc
@@ -9,6 +9,7 @@
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "build/build_config.h"
 #include "tools/gn/err.h"
 #include "tools/gn/filesystem_utils.h"
 #include "tools/gn/functions.h"
diff --git a/tools/gn/function_write_file_unittest.cc b/tools/gn/function_write_file_unittest.cc
index 8212e99..50a0f43 100644
--- a/tools/gn/function_write_file_unittest.cc
+++ b/tools/gn/function_write_file_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stdint.h>
+
 #include "base/files/file.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
@@ -59,7 +61,7 @@
   // Update the contents with a list of a string and a number.
   Value some_list(nullptr, Value::LIST);
   some_list.list_value().push_back(Value(nullptr, "line 1"));
-  some_list.list_value().push_back(Value(nullptr, static_cast<int64>(2)));
+  some_list.list_value().push_back(Value(nullptr, static_cast<int64_t>(2)));
   EXPECT_TRUE(CallWriteFile(setup.scope(), "//out/foo.txt", some_list));
   EXPECT_TRUE(base::ReadFileToString(foo_name, &result_contents));
   EXPECT_EQ("line 1\n2\n", result_contents);
diff --git a/tools/gn/functions.cc b/tools/gn/functions.cc
index 5101a41..d3d5d25 100644
--- a/tools/gn/functions.cc
+++ b/tools/gn/functions.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/functions.h"
 
+#include <stddef.h>
+
 #include <iostream>
 
 #include "base/environment.h"
diff --git a/tools/gn/generate_test_gn_data.cc b/tools/gn/generate_test_gn_data.cc
index 11dbf36..f80a4c2 100644
--- a/tools/gn/generate_test_gn_data.cc
+++ b/tools/gn/generate_test_gn_data.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include <fstream>
 #include <iostream>
 
diff --git a/tools/gn/gn_main.cc b/tools/gn/gn_main.cc
index 50d55e7..135ed56 100644
--- a/tools/gn/gn_main.cc
+++ b/tools/gn/gn_main.cc
@@ -5,6 +5,7 @@
 #include "base/at_exit.h"
 #include "base/command_line.h"
 #include "base/strings/utf_string_conversions.h"
+#include "build/build_config.h"
 #include "tools/gn/commands.h"
 #include "tools/gn/err.h"
 #include "tools/gn/location.h"
diff --git a/tools/gn/import_manager.h b/tools/gn/import_manager.h
index 725a5b2..70aeee7 100644
--- a/tools/gn/import_manager.h
+++ b/tools/gn/import_manager.h
@@ -7,6 +7,7 @@
 
 #include <map>
 
+#include "base/macros.h"
 #include "base/synchronization/lock.h"
 
 class Err;
diff --git a/tools/gn/inherited_libraries.h b/tools/gn/inherited_libraries.h
index 371c9a5..e8568b2 100644
--- a/tools/gn/inherited_libraries.h
+++ b/tools/gn/inherited_libraries.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_INHERITED_LIBRARIES_H_
 #define TOOLS_GN_INHERITED_LIBRARIES_H_
 
+#include <stddef.h>
+
 #include <map>
 #include <utility>
 #include <vector>
diff --git a/tools/gn/input_conversion.cc b/tools/gn/input_conversion.cc
index 57a8038..cca23e1 100644
--- a/tools/gn/input_conversion.cc
+++ b/tools/gn/input_conversion.cc
@@ -4,6 +4,7 @@
 
 #include "tools/gn/input_conversion.h"
 
+#include "base/macros.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "tools/gn/build_settings.h"
diff --git a/tools/gn/label.cc b/tools/gn/label.cc
index 171511a..7c13ed2 100644
--- a/tools/gn/label.cc
+++ b/tools/gn/label.cc
@@ -6,6 +6,7 @@
 
 #include "base/logging.h"
 #include "base/strings/string_util.h"
+#include "build/build_config.h"
 #include "tools/gn/err.h"
 #include "tools/gn/filesystem_utils.h"
 #include "tools/gn/parse_tree.h"
diff --git a/tools/gn/label.h b/tools/gn/label.h
index 33cac56..469e8b6 100644
--- a/tools/gn/label.h
+++ b/tools/gn/label.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_LABEL_H_
 #define TOOLS_GN_LABEL_H_
 
+#include <stddef.h>
+
 #include "base/containers/hash_tables.h"
 #include "tools/gn/source_dir.h"
 
diff --git a/tools/gn/label_pattern.cc b/tools/gn/label_pattern.cc
index 6c8addd..98a4138 100644
--- a/tools/gn/label_pattern.cc
+++ b/tools/gn/label_pattern.cc
@@ -4,7 +4,10 @@
 
 #include "tools/gn/label_pattern.h"
 
+#include <stddef.h>
+
 #include "base/strings/string_util.h"
+#include "build/build_config.h"
 #include "tools/gn/err.h"
 #include "tools/gn/filesystem_utils.h"
 #include "tools/gn/value.h"
diff --git a/tools/gn/label_pattern_unittest.cc b/tools/gn/label_pattern_unittest.cc
index 9cd5de0..19e2530 100644
--- a/tools/gn/label_pattern_unittest.cc
+++ b/tools/gn/label_pattern_unittest.cc
@@ -2,6 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
+#include "base/macros.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/err.h"
 #include "tools/gn/label_pattern.h"
diff --git a/tools/gn/label_ptr.h b/tools/gn/label_ptr.h
index c1cf910..4ce20a6 100644
--- a/tools/gn/label_ptr.h
+++ b/tools/gn/label_ptr.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_LABEL_PTR_H_
 #define TOOLS_GN_LABEL_PTR_H_
 
+#include <stddef.h>
+
 #include <functional>
 
 #include "tools/gn/label.h"
diff --git a/tools/gn/label_unittest.cc b/tools/gn/label_unittest.cc
index 9fea812..37c097f 100644
--- a/tools/gn/label_unittest.cc
+++ b/tools/gn/label_unittest.cc
@@ -2,6 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
+#include "base/macros.h"
+#include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/err.h"
 #include "tools/gn/label.h"
diff --git a/tools/gn/lib_file.h b/tools/gn/lib_file.h
index 8e471f2..675a48c 100644
--- a/tools/gn/lib_file.h
+++ b/tools/gn/lib_file.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_LIB_FILE_H_
 #define TOOLS_GN_LIB_FILE_H_
 
+#include <stddef.h>
+
 #include <algorithm>
 #include <string>
 
diff --git a/tools/gn/ninja_action_target_writer.cc b/tools/gn/ninja_action_target_writer.cc
index d0edc34..aed8ffb 100644
--- a/tools/gn/ninja_action_target_writer.cc
+++ b/tools/gn/ninja_action_target_writer.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/ninja_action_target_writer.h"
 
+#include <stddef.h>
+
 #include "base/strings/string_util.h"
 #include "tools/gn/deps_iterator.h"
 #include "tools/gn/err.h"
diff --git a/tools/gn/ninja_action_target_writer_unittest.cc b/tools/gn/ninja_action_target_writer_unittest.cc
index 38a175b..82f42e2 100644
--- a/tools/gn/ninja_action_target_writer_unittest.cc
+++ b/tools/gn/ninja_action_target_writer_unittest.cc
@@ -5,6 +5,7 @@
 #include <algorithm>
 #include <sstream>
 
+#include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/ninja_action_target_writer.h"
 #include "tools/gn/substitution_list.h"
diff --git a/tools/gn/ninja_binary_target_writer.cc b/tools/gn/ninja_binary_target_writer.cc
index 70ba039..593d769 100644
--- a/tools/gn/ninja_binary_target_writer.cc
+++ b/tools/gn/ninja_binary_target_writer.cc
@@ -4,6 +4,9 @@
 
 #include "tools/gn/ninja_binary_target_writer.h"
 
+#include <stddef.h>
+#include <string.h>
+
 #include <cstring>
 #include <set>
 #include <sstream>
diff --git a/tools/gn/ninja_build_writer.cc b/tools/gn/ninja_build_writer.cc
index a6bea91..d27ce2d 100644
--- a/tools/gn/ninja_build_writer.cc
+++ b/tools/gn/ninja_build_writer.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/ninja_build_writer.h"
 
+#include <stddef.h>
+
 #include <fstream>
 #include <map>
 
diff --git a/tools/gn/ninja_build_writer.h b/tools/gn/ninja_build_writer.h
index fe7b7a5..2df3365 100644
--- a/tools/gn/ninja_build_writer.h
+++ b/tools/gn/ninja_build_writer.h
@@ -9,6 +9,7 @@
 #include <set>
 #include <vector>
 
+#include "base/macros.h"
 #include "tools/gn/path_output.h"
 
 class BuildSettings;
diff --git a/tools/gn/ninja_toolchain_writer.h b/tools/gn/ninja_toolchain_writer.h
index 50cb7ef..a1e39c3 100644
--- a/tools/gn/ninja_toolchain_writer.h
+++ b/tools/gn/ninja_toolchain_writer.h
@@ -11,6 +11,7 @@
 #include <vector>
 
 #include "base/gtest_prod_util.h"
+#include "base/macros.h"
 #include "tools/gn/path_output.h"
 #include "tools/gn/toolchain.h"
 
diff --git a/tools/gn/operators.cc b/tools/gn/operators.cc
index b78e935..6b3f7c7 100644
--- a/tools/gn/operators.cc
+++ b/tools/gn/operators.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/operators.h"
 
+#include <stddef.h>
+
 #include "base/strings/string_number_conversions.h"
 #include "tools/gn/err.h"
 #include "tools/gn/parse_tree.h"
diff --git a/tools/gn/operators_unittest.cc b/tools/gn/operators_unittest.cc
index b5b3b02..20e344f 100644
--- a/tools/gn/operators_unittest.cc
+++ b/tools/gn/operators_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stdint.h>
+
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/operators.h"
 #include "tools/gn/parse_tree.h"
@@ -10,7 +12,7 @@
 
 namespace {
 
-bool IsValueIntegerEqualing(const Value& v, int64 i) {
+bool IsValueIntegerEqualing(const Value& v, int64_t i) {
   if (v.type() != Value::INTEGER)
     return false;
   return v.int_value() == i;
diff --git a/tools/gn/ordered_set.h b/tools/gn/ordered_set.h
index 2fd15ad..c67439b 100644
--- a/tools/gn/ordered_set.h
+++ b/tools/gn/ordered_set.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_ORDERED_SET_H_
 #define TOOLS_GN_ORDERED_SET_H_
 
+#include <stddef.h>
+
 #include <set>
 
 // An ordered set of items. Only appending is supported. Iteration is designed
diff --git a/tools/gn/output_file.h b/tools/gn/output_file.h
index 5f43a64..a7882fd 100644
--- a/tools/gn/output_file.h
+++ b/tools/gn/output_file.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_OUTPUT_FILE_H_
 #define TOOLS_GN_OUTPUT_FILE_H_
 
+#include <stddef.h>
+
 #include <string>
 
 #include "base/containers/hash_tables.h"
diff --git a/tools/gn/parse_tree.cc b/tools/gn/parse_tree.cc
index 38133dd..2c55037 100644
--- a/tools/gn/parse_tree.cc
+++ b/tools/gn/parse_tree.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/parse_tree.h"
 
+#include <stdint.h>
+
 #include <string>
 #include <tuple>
 
@@ -184,7 +186,7 @@
   if (!base_value->VerifyTypeIs(Value::LIST, err))
     return Value();
 
-  int64 index_int = index_value.int_value();
+  int64_t index_int = index_value.int_value();
   if (index_int < 0) {
     *err = Err(index_->GetRange(), "Negative array subscript.",
         "You gave me " + base::Int64ToString(index_int) + ".");
@@ -192,12 +194,13 @@
   }
   size_t index_sizet = static_cast<size_t>(index_int);
   if (index_sizet >= base_value->list_value().size()) {
-    *err = Err(index_->GetRange(), "Array subscript out of range.",
-        "You gave me " + base::Int64ToString(index_int) +
-        " but I was expecting something from 0 to " +
-        base::Int64ToString(
-            static_cast<int64>(base_value->list_value().size()) - 1) +
-        ", inclusive.");
+    *err =
+        Err(index_->GetRange(), "Array subscript out of range.",
+            "You gave me " + base::Int64ToString(index_int) +
+                " but I was expecting something from 0 to " +
+                base::Int64ToString(
+                    static_cast<int64_t>(base_value->list_value().size()) - 1) +
+                ", inclusive.");
     return Value();
   }
 
@@ -704,7 +707,7 @@
           *err = MakeErrorDescribing("Leading zeros not allowed");
         return Value();
       }
-      int64 result_int;
+      int64_t result_int;
       if (!base::StringToInt64(s, &result_int)) {
         *err = MakeErrorDescribing("This does not look like an integer");
         return Value();
diff --git a/tools/gn/parse_tree.h b/tools/gn/parse_tree.h
index 36c511a..3e6f87a 100644
--- a/tools/gn/parse_tree.h
+++ b/tools/gn/parse_tree.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_PARSE_TREE_H_
 #define TOOLS_GN_PARSE_TREE_H_
 
+#include <stddef.h>
+
 #include <vector>
 
 #include "base/macros.h"
diff --git a/tools/gn/parse_tree_unittest.cc b/tools/gn/parse_tree_unittest.cc
index 29a0faf..bf6c716 100644
--- a/tools/gn/parse_tree_unittest.cc
+++ b/tools/gn/parse_tree_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stdint.h>
+
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/input_file.h"
 #include "tools/gn/parse_tree.h"
@@ -40,7 +42,7 @@
   EXPECT_EQ(Value::NONE, result.type());
 
   // Define b, accessor should succeed now.
-  const int64 kBValue = 42;
+  const int64_t kBValue = 42;
   err = Err();
   setup.scope()
       ->GetMutableValue("a", false)
diff --git a/tools/gn/parser.h b/tools/gn/parser.h
index 02bb462..42d41ef 100644
--- a/tools/gn/parser.h
+++ b/tools/gn/parser.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_PARSER_H_
 #define TOOLS_GN_PARSER_H_
 
+#include <stddef.h>
+
 #include <map>
 #include <vector>
 
diff --git a/tools/gn/path_output_unittest.cc b/tools/gn/path_output_unittest.cc
index 65dae8d..6a7da19 100644
--- a/tools/gn/path_output_unittest.cc
+++ b/tools/gn/path_output_unittest.cc
@@ -5,6 +5,7 @@
 #include <sstream>
 
 #include "base/files/file_path.h"
+#include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/output_file.h"
 #include "tools/gn/path_output.h"
diff --git a/tools/gn/pattern.h b/tools/gn/pattern.h
index 39895bf..1aa7097 100644
--- a/tools/gn/pattern.h
+++ b/tools/gn/pattern.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_PATTERN_H_
 #define TOOLS_GN_PATTERN_H_
 
+#include <stddef.h>
+
 #include <string>
 #include <vector>
 
diff --git a/tools/gn/pattern_unittest.cc b/tools/gn/pattern_unittest.cc
index e9ffea6..683fe56 100644
--- a/tools/gn/pattern_unittest.cc
+++ b/tools/gn/pattern_unittest.cc
@@ -2,6 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
+#include "base/macros.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/pattern.h"
 
diff --git a/tools/gn/runtime_deps_unittest.cc b/tools/gn/runtime_deps_unittest.cc
index 3b3c880..915fbc2 100644
--- a/tools/gn/runtime_deps_unittest.cc
+++ b/tools/gn/runtime_deps_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include <algorithm>
 
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/tools/gn/settings.h b/tools/gn/settings.h
index e07ee2e..9192551 100644
--- a/tools/gn/settings.h
+++ b/tools/gn/settings.h
@@ -6,6 +6,7 @@
 #define TOOLS_GN_SETTINGS_H_
 
 #include "base/files/file_path.h"
+#include "base/macros.h"
 #include "tools/gn/build_settings.h"
 #include "tools/gn/import_manager.h"
 #include "tools/gn/output_file.h"
diff --git a/tools/gn/source_dir.cc b/tools/gn/source_dir.cc
index d9fb4cc..41c8931 100644
--- a/tools/gn/source_dir.cc
+++ b/tools/gn/source_dir.cc
@@ -5,6 +5,7 @@
 #include "tools/gn/source_dir.h"
 
 #include "base/logging.h"
+#include "build/build_config.h"
 #include "tools/gn/filesystem_utils.h"
 #include "tools/gn/source_file.h"
 
diff --git a/tools/gn/source_dir.h b/tools/gn/source_dir.h
index 43f7e53..422fa89 100644
--- a/tools/gn/source_dir.h
+++ b/tools/gn/source_dir.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_SOURCE_DIR_H_
 #define TOOLS_GN_SOURCE_DIR_H_
 
+#include <stddef.h>
+
 #include <algorithm>
 #include <string>
 
diff --git a/tools/gn/source_dir_unittest.cc b/tools/gn/source_dir_unittest.cc
index 0c73865..80f9a5f 100644
--- a/tools/gn/source_dir_unittest.cc
+++ b/tools/gn/source_dir_unittest.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/err.h"
 #include "tools/gn/source_dir.h"
diff --git a/tools/gn/source_file.h b/tools/gn/source_file.h
index 3b6dbfb..87fd590 100644
--- a/tools/gn/source_file.h
+++ b/tools/gn/source_file.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_SOURCE_FILE_H_
 #define TOOLS_GN_SOURCE_FILE_H_
 
+#include <stddef.h>
+
 #include <algorithm>
 #include <string>
 
diff --git a/tools/gn/standard_out.cc b/tools/gn/standard_out.cc
index 0c5b54f..6f7dcc8 100644
--- a/tools/gn/standard_out.cc
+++ b/tools/gn/standard_out.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/standard_out.h"
 
+#include <stddef.h>
+
 #include <vector>
 
 #include "base/command_line.h"
diff --git a/tools/gn/string_utils.cc b/tools/gn/string_utils.cc
index 496970b..5ee12d9 100644
--- a/tools/gn/string_utils.cc
+++ b/tools/gn/string_utils.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/string_utils.h"
 
+#include <stddef.h>
+
 #include "tools/gn/err.h"
 #include "tools/gn/input_file.h"
 #include "tools/gn/parser.h"
diff --git a/tools/gn/string_utils_unittest.cc b/tools/gn/string_utils_unittest.cc
index 951a849..a00e824 100644
--- a/tools/gn/string_utils_unittest.cc
+++ b/tools/gn/string_utils_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stdint.h>
+
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/err.h"
 #include "tools/gn/scope.h"
@@ -14,7 +16,7 @@
 
 bool CheckExpansionCase(const char* input, const char* expected, bool success) {
   Scope scope(static_cast<const Settings*>(nullptr));
-  int64 one = 1;
+  int64_t one = 1;
   scope.SetValue("one", Value(nullptr, one), nullptr);
   scope.SetValue("onestring", Value(nullptr, "one"), nullptr);
 
diff --git a/tools/gn/substitution_list.cc b/tools/gn/substitution_list.cc
index a5bd30b..4004286 100644
--- a/tools/gn/substitution_list.cc
+++ b/tools/gn/substitution_list.cc
@@ -4,6 +4,7 @@
 
 #include "tools/gn/substitution_list.h"
 
+#include <stddef.h>
 #include <string.h>
 
 #include "tools/gn/value.h"
diff --git a/tools/gn/substitution_pattern.cc b/tools/gn/substitution_pattern.cc
index 838a5a7..dd703d7 100644
--- a/tools/gn/substitution_pattern.cc
+++ b/tools/gn/substitution_pattern.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/substitution_pattern.h"
 
+#include <stddef.h>
+
 #include "base/strings/string_number_conversions.h"
 #include "tools/gn/build_settings.h"
 #include "tools/gn/err.h"
diff --git a/tools/gn/substitution_type.cc b/tools/gn/substitution_type.cc
index 1b74d58..b92c756 100644
--- a/tools/gn/substitution_type.cc
+++ b/tools/gn/substitution_type.cc
@@ -4,6 +4,7 @@
 
 #include "tools/gn/substitution_type.h"
 
+#include <stddef.h>
 #include <stdlib.h>
 
 #include "tools/gn/err.h"
diff --git a/tools/gn/substitution_writer_unittest.cc b/tools/gn/substitution_writer_unittest.cc
index 5abd619..36d027b 100644
--- a/tools/gn/substitution_writer_unittest.cc
+++ b/tools/gn/substitution_writer_unittest.cc
@@ -4,6 +4,7 @@
 
 #include <sstream>
 
+#include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/err.h"
 #include "tools/gn/escape.h"
diff --git a/tools/gn/target.cc b/tools/gn/target.cc
index 0d275ac..bec13c9 100644
--- a/tools/gn/target.cc
+++ b/tools/gn/target.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/target.h"
 
+#include <stddef.h>
+
 #include "base/bind.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
diff --git a/tools/gn/target_generator.cc b/tools/gn/target_generator.cc
index dd83639..3734ea9 100644
--- a/tools/gn/target_generator.cc
+++ b/tools/gn/target_generator.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/target_generator.h"
 
+#include <stddef.h>
+
 #include "tools/gn/action_target_generator.h"
 #include "tools/gn/binary_target_generator.h"
 #include "tools/gn/build_settings.h"
diff --git a/tools/gn/tokenizer.h b/tools/gn/tokenizer.h
index a37f4dc..bf3285b 100644
--- a/tools/gn/tokenizer.h
+++ b/tools/gn/tokenizer.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_TOKENIZER_H_
 #define TOOLS_GN_TOKENIZER_H_
 
+#include <stddef.h>
+
 #include <vector>
 
 #include "base/macros.h"
diff --git a/tools/gn/tokenizer_unittest.cc b/tools/gn/tokenizer_unittest.cc
index 07f0d85..1f34c33 100644
--- a/tools/gn/tokenizer_unittest.cc
+++ b/tools/gn/tokenizer_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/input_file.h"
 #include "tools/gn/token.h"
diff --git a/tools/gn/toolchain.cc b/tools/gn/toolchain.cc
index 826c875..96cf166 100644
--- a/tools/gn/toolchain.cc
+++ b/tools/gn/toolchain.cc
@@ -4,6 +4,7 @@
 
 #include "tools/gn/toolchain.h"
 
+#include <stddef.h>
 #include <string.h>
 
 #include "base/logging.h"
diff --git a/tools/gn/trace.cc b/tools/gn/trace.cc
index 5844293..13ebf62 100644
--- a/tools/gn/trace.cc
+++ b/tools/gn/trace.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/trace.h"
 
+#include <stddef.h>
+
 #include <algorithm>
 #include <map>
 #include <sstream>
@@ -14,6 +16,7 @@
 #include "base/files/file_util.h"
 #include "base/json/string_escape.h"
 #include "base/logging.h"
+#include "base/macros.h"
 #include "base/strings/stringprintf.h"
 #include "base/synchronization/lock.h"
 #include "tools/gn/filesystem_utils.h"
diff --git a/tools/gn/unique_vector.h b/tools/gn/unique_vector.h
index b5bc65d..e629ce2 100644
--- a/tools/gn/unique_vector.h
+++ b/tools/gn/unique_vector.h
@@ -5,6 +5,8 @@
 #ifndef TOOLS_GN_UNIQUE_VECTOR_H_
 #define TOOLS_GN_UNIQUE_VECTOR_H_
 
+#include <stddef.h>
+
 #include <algorithm>
 
 #include "base/containers/hash_tables.h"
diff --git a/tools/gn/unique_vector_unittest.cc b/tools/gn/unique_vector_unittest.cc
index 0f5d461..d735423 100644
--- a/tools/gn/unique_vector_unittest.cc
+++ b/tools/gn/unique_vector_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stddef.h>
+
 #include <algorithm>
 
 #include "base/time/time.h"
diff --git a/tools/gn/value.cc b/tools/gn/value.cc
index 32a96ff7..6e8bcfa 100644
--- a/tools/gn/value.cc
+++ b/tools/gn/value.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/value.h"
 
+#include <stddef.h>
+
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "tools/gn/scope.h"
diff --git a/tools/gn/value_extractors.cc b/tools/gn/value_extractors.cc
index ec42e66..23c5a27 100644
--- a/tools/gn/value_extractors.cc
+++ b/tools/gn/value_extractors.cc
@@ -4,6 +4,8 @@
 
 #include "tools/gn/value_extractors.h"
 
+#include <stddef.h>
+
 #include "tools/gn/build_settings.h"
 #include "tools/gn/err.h"
 #include "tools/gn/label.h"
diff --git a/tools/gn/value_unittest.cc b/tools/gn/value_unittest.cc
index f934e66..75f9f60 100644
--- a/tools/gn/value_unittest.cc
+++ b/tools/gn/value_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stdint.h>
+
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/test_with_scope.h"
 #include "tools/gn/value.h"
@@ -23,7 +25,7 @@
   listval.list_value().push_back(Value(nullptr, "hi\"me"));
   listval.list_value().push_back(Value(nullptr, true));
   listval.list_value().push_back(Value(nullptr, false));
-  listval.list_value().push_back(Value(nullptr, static_cast<int64>(42)));
+  listval.list_value().push_back(Value(nullptr, static_cast<int64_t>(42)));
   // Printing lists always causes embedded strings to be quoted (ignoring the
   // quote flag), or else they wouldn't make much sense.
   EXPECT_EQ("[\"hi\\\"me\", true, false, 42]", listval.ToString(false));
@@ -35,7 +37,7 @@
   Value scopeval(nullptr, scoped_ptr<Scope>(scope));
   EXPECT_EQ("{ }", scopeval.ToString(false));
 
-  scope->SetValue("a", Value(nullptr, static_cast<int64>(42)), nullptr);
+  scope->SetValue("a", Value(nullptr, static_cast<int64_t>(42)), nullptr);
   scope->SetValue("b", Value(nullptr, "hello, world"), nullptr);
   EXPECT_EQ("{\n  a = 42\n  b = \"hello, world\"\n}", scopeval.ToString(false));
 }