After CL 536643 passing NULL as the expected type permitted an untyped
constant expression to remain untyped. Change to passing the empty
interface type.
The panic and print/println functions are the only builtin functions
that turn an untyped constant expression into a regular function call,
and we already handled print/println specially.
The test case is https://go.dev/cl/603096.
Fixes golang/go#68734
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/603215
-60f985a7852632834936b4b859aa75d9df88f038
+5f6fae5ff33e996243acd098c71904695c414c53
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
is_print = false;
break;
+ case BUILTIN_PANIC:
+ arg_type =
+ Type::make_empty_interface_type(Linemap::predeclared_location());
+ is_print = false;
+ break;
+
case BUILTIN_PRINT:
case BUILTIN_PRINTLN:
// Do not force a large integer constant to "int".