compiler: clean up unresolved placeholders for pointer types
commit9b0818e352ae5eea0f7eee6671d16e9b2a46066f
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Jul 2017 22:54:23 +0000 (25 22:54 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 25 Jul 2017 22:54:23 +0000 (25 22:54 +0000)
treed45157c11b96e49a3175cd09161923fe1925180c
parenta04c40d482507bed66329f1b4e9d8f23aa283ef5
compiler: clean up unresolved placeholders for pointer types

    Add a new helper routine Type::finish_pointer_types that walks through
    the pointer type cache and looks for placeholder types that may have
    been created at some point before conversion of named types, and
    invokes Type::finish_backend() on said placeholders.  This is needed
    to handle cases where the compiler manufactures a pointer type as part
    of lowering, then a placeholder is created for it due to a call to
    Type::backend_type_size(), but there is no explicit reference to the
    type in user code.

    Reviewed-on: https://go-review.googlesource.com/51131

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250548 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/gogo.cc
gcc/go/gofrontend/types.cc
gcc/go/gofrontend/types.h