Commit ba6413bd by Ian Lance Taylor

Don't crash getting type descriptor of abstract types.

From-SVN: r170642
parent 4d04d67a
......@@ -1764,7 +1764,12 @@ Integer_type::do_hash_for_method(Gogo*) const
tree
Integer_type::do_get_tree(Gogo*)
{
gcc_assert(!this->is_abstract_);
if (this->is_abstract_)
{
gcc_assert(saw_errors());
return error_mark_node;
}
if (this->is_unsigned_)
{
if (this->bits_ == INT_TYPE_SIZE)
......@@ -1818,7 +1823,7 @@ Integer_type::do_type_descriptor(Gogo* gogo, Named_type* name)
void
Integer_type::do_reflection(Gogo*, std::string*) const
{
gcc_unreachable();
gcc_assert(saw_errors());
}
// Mangled name.
......@@ -1974,7 +1979,7 @@ Float_type::do_type_descriptor(Gogo* gogo, Named_type* name)
void
Float_type::do_reflection(Gogo*, std::string*) const
{
gcc_unreachable();
gcc_assert(saw_errors());
}
// Mangled name.
......@@ -2134,7 +2139,7 @@ Complex_type::do_type_descriptor(Gogo* gogo, Named_type* name)
void
Complex_type::do_reflection(Gogo*, std::string*) const
{
gcc_unreachable();
gcc_assert(saw_errors());
}
// Mangled name.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment