https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95970

--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> ---
On second thought, I think the warning might be correct.  The function it's
issued for is a static member of class Type (I at first thought it was
virtual):

Expression*
Type::type_descriptor(Gogo* gogo, Type* type)
{
  return type->do_type_descriptor(gogo, NULL);   <<< -Wnonnull
}

and the call to it is below:

Expression*
Named_type::do_type_descriptor(Gogo* gogo, Named_type* name)
{
  if (this->is_error_)
    return Expression::make_error(this->location_);
  if (name == NULL && this->is_alias_)
    {
      if (this->seen_alias_)
        return Expression::make_error(this->location_);
      this->seen_alias_ = true;
      Expression* ret = this->type_->type_descriptor(gogo, NULL);   <<<
      this->seen_alias_ = false;
      return ret;
    }

I'll leave it to Ian to confirm one way or the other.

Reply via email to