re PR go/89019 (LTO and gccgo cause ICE during free_lang_data)
gcc/go: PR go/89019 * go-gcc.cc (Gcc_backend::placeholder_struct_type): Mark placeholder structs as requiring structural equality. (Gcc_backend::set_placeholder_pointer_type): Propagate the canonical type from the desired pointer type to the placeholder pointer type. gcc/testsuite/: * lib/go-torture.exp: Test compiling with -flto. From-SVN: r268572
This commit is contained in:
parent
fbe83e6b4d
commit
ce4321c918
@ -1,3 +1,12 @@
|
||||
2019-02-05 Nikhil Benesch <nikhil.benesch@gmail.com>
|
||||
|
||||
PR go/89019
|
||||
* go-gcc.cc (Gcc_backend::placeholder_struct_type): Mark
|
||||
placeholder structs as requiring structural equality.
|
||||
(Gcc_backend::set_placeholder_pointer_type): Propagate the
|
||||
canonical type from the desired pointer type to the placeholder
|
||||
pointer type.
|
||||
|
||||
2019-01-09 Ian Lance Taylor <iant@golang.org>
|
||||
|
||||
PR go/86343
|
||||
|
@ -1049,6 +1049,7 @@ Gcc_backend::set_placeholder_pointer_type(Btype* placeholder,
|
||||
}
|
||||
gcc_assert(TREE_CODE(tt) == POINTER_TYPE);
|
||||
TREE_TYPE(pt) = TREE_TYPE(tt);
|
||||
TYPE_CANONICAL(pt) = TYPE_CANONICAL(tt);
|
||||
if (TYPE_NAME(pt) != NULL_TREE)
|
||||
{
|
||||
// Build the data structure gcc wants to see for a typedef.
|
||||
@ -1080,6 +1081,12 @@ Gcc_backend::placeholder_struct_type(const std::string& name,
|
||||
get_identifier_from_string(name),
|
||||
ret);
|
||||
TYPE_NAME(ret) = decl;
|
||||
|
||||
// The struct type that eventually replaces this placeholder will require
|
||||
// structural equality. The placeholder must too, so that the requirement
|
||||
// for structural equality propagates to references that are constructed
|
||||
// before the replacement occurs.
|
||||
SET_TYPE_STRUCTURAL_EQUALITY(ret);
|
||||
}
|
||||
return this->make_type(ret);
|
||||
}
|
||||
|
@ -1,3 +1,8 @@
|
||||
2019-02-05 Nikhil Benesch <nikhil.benesch@gmail.com>
|
||||
|
||||
PR go/89019
|
||||
* lib/go-torture.exp: Test compiling with -flto.
|
||||
|
||||
2019-02-06 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR c/88584
|
||||
|
@ -34,7 +34,8 @@ if ![info exists TORTURE_OPTIONS] {
|
||||
{ -O2 -fomit-frame-pointer -finline-functions -funroll-loops } \
|
||||
{ -O2 -fbounds-check } \
|
||||
{ -O3 -g } \
|
||||
{ -Os }]
|
||||
{ -Os } \
|
||||
{ -flto }]
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user