http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52349

--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-23 
10:31:59 UTC ---
Type built in

// Create a placeholder for a pointer type.

Btype*
Gcc_backend::placeholder_pointer_type(const std::string& name,
                                      Location location, bool)
{
  tree ret = build_variant_type_copy(ptr_type_node);
  if (!name.empty())
    {
      tree decl = build_decl(location.gcc_location(), TYPE_DECL,
                             get_identifier_from_string(name),
                             ret);
      TYPE_NAME(ret) = decl;
    }
  return this->make_type(ret);
}

that's bogus.  Consider using build_distinct_type_copy instead.

That fixes it for me.

Reply via email to