Subject: Re: linux-next: build failure after merge of the pm tree (Was: linux-next: build warning after merge of the pm tree)

From: Andy Shevchenko <[email-masked]>
Date: Wed, 16 Oct 2019 12:33:39 +0300

On Wed, Oct 16, 2019 at 11:15:44AM +0200, Geert Uytterhoeven wrote:
> On Tue, Oct 15, 2019 at 1:27 PM Rafael J. Wysocki <[email-masked]> wrote:
> > On Tuesday, October 15, 2019 1:16:50 AM CEST Stephen Rothwell wrote:
> > > On Tue, 15 Oct 2019 10:08:55 +1100 Stephen Rothwell <[email-masked]> =
> > > wrote:

> > > This became a build failure for the powerpc ppc64_allmodconfig build:
> > >
> > > In file included from include/linux/i2c.h:13,
> > >                  from arch/powerpc/platforms/pasemi/misc.c:14:
> > > include/linux/acpi.h:682:31: error: 'struct acpi_device' declared inside pa=
> > > rameter list will not be visible outside of this definition or declaration =
> > > [-Werror]
> > >   682 | acpi_dev_hid_uid_match(struct acpi_device *adev, const char *hid2, =
> > > const char *uid2)
> > >       |                               ^~~~~~~~~~~
> > > cc1: all warnings being treated as errors
> > >
> > > (and many more)
> > >
> > > I have used the pm tree from next-20191014 for today.
> >
> > So this looks weird, because there is an acpi_dev_put() stub in
> > include/linux/acpi.h too in the same #else block and it takes a
> > (struct acpi_device *) pointer too and it has not been touched by
> > the commit in question.  So why has it built successfully so far?
> 
> Looks like that never warned because acpi_dev_put() is located after
> 
>     static inline struct acpi_device *
>     acpi_dev_get_first_match_dev(const char *hid, const char *uid, s64 hrv)
>     {
>             return NULL;
>     }
> 
> Moving acpi_dev_hid_uid_match() down gets rid of the warning, too.

Sounds like a compiler bug.

It thinks that struct acpi_device * is defined as function prototype?

-- 
With Best Regards,
Andy Shevchenko