aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend/expressions.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2012-01-20 15:42:38 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2012-01-20 15:42:38 +0000
commit7c0434e5770960aa20de0fb0d0ace91e1757438a (patch)
treedbda0920b40eb4619acf931b7375d151ac4f323a /gcc/go/gofrontend/expressions.cc
parent0ab6e1eceb167b931222d4d092acaca60f88a7a0 (diff)
downloadgcc-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.cc8
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();