Commit 1f599d75 by Than McIntosh Committed by Ian Lance Taylor

re PR go/80226 (ICE gimple-expr.c:474 on Go function returning multiple empty struct/array values)

	PR go/80226
	* go-gcc.cc (Gcc_backend::return_statement): Check for
	void_type_node when checking result size.

From-SVN: r246553
parent 0c6b03b5
2017-03-28 Than McIntosh <thanm@google.com>
PR go/80226
* go-gcc.cc (Gcc_backend::return_statement): Check for
void_type_node when checking result size.
2017-02-20 Ian Lance Taylor <iant@golang.org> 2017-02-20 Ian Lance Taylor <iant@golang.org>
PR go/79642 PR go/79642
......
...@@ -2081,7 +2081,8 @@ Gcc_backend::return_statement(Bfunction* bfunction, ...@@ -2081,7 +2081,8 @@ Gcc_backend::return_statement(Bfunction* bfunction,
// If the result size is zero bytes, we have set the function type // If the result size is zero bytes, we have set the function type
// to have a result type of void, so don't return anything. // to have a result type of void, so don't return anything.
// See the function_type method. // See the function_type method.
if (int_size_in_bytes(TREE_TYPE(result)) == 0) tree res_type = TREE_TYPE(result);
if (res_type == void_type_node || int_size_in_bytes(res_type) == 0)
{ {
tree stmt_list = NULL_TREE; tree stmt_list = NULL_TREE;
for (std::vector<Bexpression*>::const_iterator p = vals.begin(); for (std::vector<Bexpression*>::const_iterator p = vals.begin();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment