compiler: Really only make descriptors when needed.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Jun 2013 00:29:54 +0000 (00:29 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Jun 2013 00:29:54 +0000 (00:29 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200280 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/go/gofrontend/expressions.cc
gcc/go/gofrontend/expressions.h

index 240e455..9f3b6f5 100644 (file)
@@ -1242,24 +1242,6 @@ Func_expression::do_traverse(Traverse* traverse)
          : Expression::traverse(&this->closure_, traverse));
 }
 
-// Lower a function reference.  If this reference is not called
-// directly, make sure there is a function descriptor.
-
-Expression*
-Func_expression::do_lower(Gogo* gogo, Named_object*, Statement_inserter*, int)
-{
-  // Make sure that the descriptor exists.  FIXME: If the function is
-  // only ever called, and is never referenced otherwise, then we
-  // don't need the descriptor.  We could do that with another pass
-  // over the tree.
-  if (this->closure_ == NULL
-      && this->function_->is_function()
-      && !this->function_->func_value()->is_method())
-    this->function_->func_value()->descriptor(gogo, this->function_);
-
-  return this;
-}
-
 // Return the type of a function expression.
 
 Type*
index 133b237..dd00286 100644 (file)
@@ -1524,9 +1524,6 @@ class Func_expression : public Expression
   int
   do_traverse(Traverse*);
 
-  Expression*
-  do_lower(Gogo*, Named_object*, Statement_inserter*, int);
-
   Type*
   do_type();