aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2010-12-22 23:57:28 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2010-12-22 23:57:28 +0000
commit7838059fb2e20689a98ece0f077ed288146515b6 (patch)
treeef282e7613aa6e03768ac3175788c5910a493765
parentabff6b5fb5513ae84cff69f36e2d3f8a485c4a1a (diff)
downloadgcc-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.cc7
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))