diff options
author | Ian Lance Taylor <iant@google.com> | 2012-01-20 15:42:38 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-01-20 15:42:38 +0000 |
commit | 7c0434e5770960aa20de0fb0d0ace91e1757438a (patch) | |
tree | dbda0920b40eb4619acf931b7375d151ac4f323a /gcc/go/gofrontend/expressions.cc | |
parent | 0ab6e1eceb167b931222d4d092acaca60f88a7a0 (diff) | |
download | gcc-7c0434e5770960aa20de0fb0d0ace91e1757438a.zip gcc-7c0434e5770960aa20de0fb0d0ace91e1757438a.tar.gz gcc-7c0434e5770960aa20de0fb0d0ace91e1757438a.tar.bz2 |
compiler: Handle recursive interfaces.
* go-gcc.cc (Gcc_backend::placeholder_struct_type): Permit name to
be empty.
(Gcc_backend::set_placeholder_struct_type): Likewise.
From-SVN: r183340
Diffstat (limited to 'gcc/go/gofrontend/expressions.cc')
-rw-r--r-- | gcc/go/gofrontend/expressions.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 5cada3a..7550a56 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -7566,7 +7566,7 @@ Builtin_call_expression::do_lower(Gogo* gogo, Named_object* function, { // Calling recover outside of a function always returns the // nil empty interface. - Type* eface = Type::make_interface_type(NULL, loc); + Type* eface = Type::make_empty_interface_type(loc); return Expression::make_cast(eface, Expression::make_nil(loc), loc); } break; @@ -8189,7 +8189,7 @@ Builtin_call_expression::do_type() return Type::make_void_type(); case BUILTIN_RECOVER: - return Type::make_interface_type(NULL, Linemap::predeclared_location()); + return Type::make_empty_interface_type(Linemap::predeclared_location()); case BUILTIN_APPEND: { @@ -8883,7 +8883,7 @@ Builtin_call_expression::do_get_tree(Translate_context* context) if (arg_tree == error_mark_node) return error_mark_node; Type *empty = - Type::make_interface_type(NULL, Linemap::predeclared_location()); + Type::make_empty_interface_type(Linemap::predeclared_location()); arg_tree = Expression::convert_for_assignment(context, empty, arg->type(), arg_tree, location); @@ -8916,7 +8916,7 @@ Builtin_call_expression::do_get_tree(Translate_context* context) return error_mark_node; Type *empty = - Type::make_interface_type(NULL, Linemap::predeclared_location()); + Type::make_empty_interface_type(Linemap::predeclared_location()); tree empty_tree = type_to_tree(empty->get_backend(context->gogo())); Type* nil_type = Type::make_nil_type(); |