OSDN Git Service

Fix global var initialized to function call with calls as arguments.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Oct 2011 23:16:32 +0000 (23:16 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Oct 2011 23:16:32 +0000 (23:16 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179529 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/go/gofrontend/gogo.cc

index 9df9402..f1f7680 100644 (file)
@@ -2063,6 +2063,8 @@ Order_eval::variable(Named_object* no)
       return TRAVERSE_SKIP_COMPONENTS;
     }
 
+  Expression* orig_init = init;
+
   for (Find_eval_ordering::const_iterator p = find_eval_ordering.begin();
        p != find_eval_ordering.end();
        ++p)
@@ -2087,6 +2089,9 @@ Order_eval::variable(Named_object* no)
       var->add_preinit_statement(this->gogo_, s);
     }
 
+  if (init != orig_init)
+    var->set_init(init);
+
   return TRAVERSE_SKIP_COMPONENTS;
 }