compiler: report error for ++/-- applied to a non-numeric type
This avoids a compiler crash. Fixes GCC PR 83071. Reviewed-on: https://go-review.googlesource.com/78875 From-SVN: r254983
This commit is contained in:
parent
8c09856788
commit
5e43a9eeca
2 changed files with 6 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
|||
cb5dc1ce98857884a2215c461dd1d7de530f9f5e
|
||||
5485b3faed476f6d051833d1790b5f77be9d1efc
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
|
|
@ -1826,6 +1826,11 @@ Statement*
|
|||
Inc_dec_statement::do_lower(Gogo*, Named_object*, Block*, Statement_inserter*)
|
||||
{
|
||||
Location loc = this->location();
|
||||
if (!this->expr_->type()->is_numeric_type())
|
||||
{
|
||||
this->report_error("increment or decrement of non-numeric type");
|
||||
return Statement::make_error_statement(loc);
|
||||
}
|
||||
Expression* oexpr = Expression::make_integer_ul(1, this->expr_->type(), loc);
|
||||
Operator op = this->is_inc_ ? OPERATOR_PLUSEQ : OPERATOR_MINUSEQ;
|
||||
return Statement::make_assignment_operation(op, this->expr_, oexpr, loc);
|
||||
|
|
Loading…
Add table
Reference in a new issue