diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-22 23:57:28 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2010-12-22 23:57:28 +0000 |
commit | 7838059fb2e20689a98ece0f077ed288146515b6 (patch) | |
tree | ef282e7613aa6e03768ac3175788c5910a493765 | |
parent | abff6b5fb5513ae84cff69f36e2d3f8a485c4a1a (diff) | |
download | gcc-7838059fb2e20689a98ece0f077ed288146515b6.zip gcc-7838059fb2e20689a98ece0f077ed288146515b6.tar.gz gcc-7838059fb2e20689a98ece0f077ed288146515b6.tar.bz2 |
Don't crash on invalid call to append.
From-SVN: r168187
-rw-r--r-- | gcc/go/gofrontend/expressions.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 491b71a..ea5821b 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -7387,8 +7387,11 @@ Builtin_call_expression::do_check_types(Gogo*) this->report_error(_("not enough arguments")); break; } - /* Lowering varargs should have left us with 2 arguments. */ - gcc_assert(args->size() == 2); + if (args->size() > 2) + { + this->report_error(_("too many arguments")); + break; + } std::string reason; if (!Type::are_assignable(args->front()->type(), args->back()->type(), &reason)) |