mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-21 04:50:24 +08:00
compiler: don't report runtime escapes if we've seen errors
If we get errors during compilation, we skip the escape analysis pass. If we are compiling the runtime package, we report an error if a bound method expression escapes. The effect is that if we get an error while compiling the runtime package, we would report confusing and meaningless errors about bound method expressions escaping. This CL stops doing that. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/192720 From-SVN: r275238
This commit is contained in:
parent
d24c41ef1a
commit
e7c8f75569
@ -1,4 +1,4 @@
|
||||
2444eb1e8c697531f8beb403679e4ab00b16dbf5
|
||||
80403eb9e95c9642ebabb4d7c43deedaa763211f
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
@ -7948,7 +7948,9 @@ Bound_method_expression::do_flatten(Gogo* gogo, Named_object*,
|
||||
Node* n = Node::make_node(this);
|
||||
if ((n->encoding() & ESCAPE_MASK) == Node::ESCAPE_NONE)
|
||||
ret->heap_expression()->set_allocate_on_stack();
|
||||
else if (gogo->compiling_runtime() && gogo->package_name() == "runtime")
|
||||
else if (gogo->compiling_runtime()
|
||||
&& gogo->package_name() == "runtime"
|
||||
&& !saw_errors())
|
||||
go_error_at(loc, "%s escapes to heap, not allowed in runtime",
|
||||
n->ast_format(gogo).c_str());
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user