]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Report errors for temporary statements rather than crashing.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 21 Dec 2010 18:31:48 +0000 (18:31 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 21 Dec 2010 18:31:48 +0000 (18:31 +0000)
From-SVN: r168128

gcc/go/gofrontend/statements.cc

index 97b89551e279f4684cd76261319a3b20dae474b9..047045cffc372619bed5b4050e6a8bd2ce8c35f0 100644 (file)
@@ -350,7 +350,18 @@ void
 Temporary_statement::do_check_types(Gogo*)
 {
   if (this->type_ != NULL && this->init_ != NULL)
-    gcc_assert(Type::are_assignable(this->type_, this->init_->type(), NULL));
+    {
+      std::string reason;
+      if (!Type::are_assignable(this->type_, this->init_->type(), &reason))
+       {
+         if (reason.empty())
+           error_at(this->location(), "incompatible types in assignment");
+         else
+           error_at(this->location(), "incompatible types in assignment (%s)",
+                    reason.c_str());
+         this->set_is_error();
+       }
+    }
 }
 
 // Return a tree.