compiler: Don't crash on invalid print call.

When the print builtins are called with no arguments, the compiler
    issues a warning and crashes when trying to produce the backend
    representation for the arguments.
    
    Fixes golang/go#11526.
    
    Reviewed-on: https://go-review.googlesource.com/13131

From-SVN: r227039
This commit is contained in:
Ian Lance Taylor 2015-08-20 17:43:55 +00:00
parent f999c862ec
commit f4cd6a8d56
2 changed files with 7 additions and 1 deletions

View File

@ -1,4 +1,4 @@
ec34cfb0b148ff461df12c8f5270a06e2f438b7c
cc7303c97b232ea979cab950d95aaf76c4e0f5b5
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -8177,6 +8177,12 @@ Builtin_call_expression::do_get_backend(Translate_context* context)
location);
}
// There aren't any arguments to the print builtin. The compiler
// issues a warning for this so we should avoid getting the backend
// representation for this call. Instead, perform a no-op.
if (print_stmts == NULL)
return context->backend()->boolean_constant_expression(false);
return print_stmts->get_backend(context);
}