Commit a6c723e2 by Ian Lance Taylor

re PR go/89321 (cross build with riscv64 gccgo compilation failed due to assert…

re PR go/89321 (cross build with riscv64 gccgo compilation failed due to assert in constructor_expression)

	PR go/89321
    compiler: copy has_padding field from converted struct
    
    Test case is https://golang.org/cl/162617.
    
    Fixes https://gcc.gnu.org/PR89321
    
    Reviewed-on: https://go-review.googlesource.com/c/162618

From-SVN: r268904
parent cc259397
a487c86418488f6a17dab4f9945e2a5d495e3ddb c2fc3b83d832725accd4fa5874a5b5ca02dd90dc
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -1003,6 +1003,16 @@ Type::get_backend(Gogo* gogo) ...@@ -1003,6 +1003,16 @@ Type::get_backend(Gogo* gogo)
ins.first->second.is_placeholder = false; ins.first->second.is_placeholder = false;
} }
// We set the has_padding field of a Struct_type when we convert
// to the backend type, so if we have multiple Struct_type's
// mapping to the same backend type we need to copy the
// has_padding field. FIXME: This is awkward. We shouldn't
// really change the type when setting the backend type, but
// there isn't any other good time to add the padding field.
if (ins.first->first->struct_type() != NULL
&& ins.first->first->struct_type()->has_padding())
this->struct_type()->set_has_padding();
return ins.first->second.btype; return ins.first->second.btype;
} }
......
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