mirror of git://gcc.gnu.org/git/gcc.git
compiler: add types used by inline functions to export data
Reviewed-on: https://go-review.googlesource.com/c/150069 From-SVN: r266531
This commit is contained in:
parent
34ea95978d
commit
340632e97b
|
|
@ -1,4 +1,4 @@
|
|||
c11d9528a0846293e4d615c86fc773c97252fdce
|
||||
21cf8069ceb078de54cc43ac25c9c89bd15cba56
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
|
|
|||
|
|
@ -290,6 +290,11 @@ Find_types_to_prepare::type(Type* type)
|
|||
if (type->is_void_type())
|
||||
return TRAVERSE_SKIP_COMPONENTS;
|
||||
|
||||
// Skip abstract types. We should never see these in real code,
|
||||
// only in things like const declarations.
|
||||
if (type->is_abstract())
|
||||
return TRAVERSE_SKIP_COMPONENTS;
|
||||
|
||||
if (!this->exp_->set_type_index(type))
|
||||
{
|
||||
// We've already seen this type.
|
||||
|
|
@ -367,7 +372,12 @@ Find_types_to_prepare::traverse_named_type(Named_type* nt)
|
|||
methods->begin_definitions();
|
||||
pm != methods->end_definitions();
|
||||
++pm)
|
||||
this->traverse_function((*pm)->func_value()->type());
|
||||
{
|
||||
Function* fn = (*pm)->func_value();
|
||||
this->traverse_function(fn->type());
|
||||
if (fn->export_for_inlining())
|
||||
fn->block()->traverse(this);
|
||||
}
|
||||
|
||||
for (Bindings::const_declarations_iterator pm =
|
||||
methods->begin_declarations();
|
||||
|
|
@ -434,7 +444,12 @@ Export::prepare_types(const std::vector<Named_object*>* exports,
|
|||
break;
|
||||
|
||||
case Named_object::NAMED_OBJECT_FUNC:
|
||||
find.traverse_function(no->func_value()->type());
|
||||
{
|
||||
Function* fn = no->func_value();
|
||||
find.traverse_function(fn->type());
|
||||
if (fn->export_for_inlining())
|
||||
fn->block()->traverse(&find);
|
||||
}
|
||||
break;
|
||||
|
||||
case Named_object::NAMED_OBJECT_FUNC_DECLARATION:
|
||||
|
|
|
|||
Loading…
Reference in New Issue