| Index: tools/gn/parse_tree.cc
|
| diff --git a/tools/gn/parse_tree.cc b/tools/gn/parse_tree.cc
|
| index f5897065548f01b102328c3edaa41a7f31a27af6..5e5b9ea01b719b1e5f1ca69fe06868dd570c74a3 100644
|
| --- a/tools/gn/parse_tree.cc
|
| +++ b/tools/gn/parse_tree.cc
|
| @@ -634,8 +634,16 @@ Value LiteralNode::Execute(Scope* scope, Err* err) const {
|
| case Token::FALSE_TOKEN:
|
| return Value(this, false);
|
| case Token::INTEGER: {
|
| + base::StringPiece s = value_.value();
|
| + if ((s.starts_with("0") && s.size() > 1) || s.starts_with("-0")) {
|
| + if (s == "-0")
|
| + *err = MakeErrorDescribing("Negative zero doesn't make sense");
|
| + else
|
| + *err = MakeErrorDescribing("Leading zeros not allowed");
|
| + return Value();
|
| + }
|
| int64 result_int;
|
| - if (!base::StringToInt64(value_.value(), &result_int)) {
|
| + if (!base::StringToInt64(s, &result_int)) {
|
| *err = MakeErrorDescribing("This does not look like an integer");
|
| return Value();
|
| }
|
|
|