Add -Winline
diff mbox series

Message ID 20040114090743.GA1975@averell
State New, archived
Headers show
Series
  • Add -Winline
Related show

Commit Message

Andi Kleen Jan. 14, 2004, 9:07 a.m. UTC
Add -Winline by default. This makes the compiler warn when something
marked inline is not getting inlined. This is often because the 

It should only make a difference with gcc 3.4, because in earlier
compilers we use always_inline and not inlining with always_inline
is an error already.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Comments

Adrian Bunk Jan. 15, 2004, 12:42 p.m. UTC | #1
On Wed, Jan 14, 2004 at 10:07:43AM +0100, Andi Kleen wrote:
> 
> Add -Winline by default. This makes the compiler warn when something
> marked inline is not getting inlined. This is often because the 
> 
> It should only make a difference with gcc 3.4, because in earlier
> compilers we use always_inline and not inlining with always_inline
> is an error already.
>...

Attached are all inlining warnings I get with this patch applied in
2.6.1-mm3 using gcc 3.3.3 20040110 (prerelease) (Debian).

I've gzip'ed it since it was > 100 kB.

A few warnings might be missing since I used a .config with 
CONFIG_SMP=y.

cu
Adrian
Jan Hubicka Jan. 15, 2004, 12:55 p.m. UTC | #2
> On Wed, Jan 14, 2004 at 10:07:43AM +0100, Andi Kleen wrote:
> > 
> > Add -Winline by default. This makes the compiler warn when something
> > marked inline is not getting inlined. This is often because the 
> > 
> > It should only make a difference with gcc 3.4, because in earlier
> > compilers we use always_inline and not inlining with always_inline
> > is an error already.
> >...
> 
> Attached are all inlining warnings I get with this patch applied in
> 2.6.1-mm3 using gcc 3.3.3 20040110 (prerelease) (Debian).
> 
> I've gzip'ed it since it was > 100 kB.
> 
> A few warnings might be missing since I used a .config with 
> CONFIG_SMP=y.

Are you sure that you do use always_inline?  (ie can you look into one
of preprocessed file for declaration of some of failed functions?)

Honza
> 
> cu
> Adrian
> 
> -- 
> 
>        "Is there not promise of rain?" Ling Tan asked suddenly out
>         of the darkness. There had been need of rain for many days.
>        "Only a promise," Lao Er said.
>                                        Pearl S. Buck - Dragon Seed
> 


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Adrian Bunk Jan. 17, 2004, 1:12 a.m. UTC | #3
On Thu, Jan 15, 2004 at 01:55:44PM +0100, Jan Hubicka wrote:
> > On Wed, Jan 14, 2004 at 10:07:43AM +0100, Andi Kleen wrote:
> > > 
> > > Add -Winline by default. This makes the compiler warn when something
> > > marked inline is not getting inlined. This is often because the 
> > > 
> > > It should only make a difference with gcc 3.4, because in earlier
> > > compilers we use always_inline and not inlining with always_inline
> > > is an error already.
> > >...
> > 
> > Attached are all inlining warnings I get with this patch applied in
> > 2.6.1-mm3 using gcc 3.3.3 20040110 (prerelease) (Debian).
> > 
> > I've gzip'ed it since it was > 100 kB.
> > 
> > A few warnings might be missing since I used a .config with 
> > CONFIG_SMP=y.
> 
> Are you sure that you do use always_inline?  (ie can you look into one
> of preprocessed file for declaration of some of failed functions?)

Yes, e.g. in drivers/ieee1394/eth1394.c:

<--  snip  -->

...
static __inline__ __attribute__((always_inline)) __attribute__((always_inline)) 
void purge_partial_datagram(struct list_head *old)
{
...

<--  snip  -->


> Honza

cu
Adrian

Patch
diff mbox series

--- linux-34/Makefile-o	2004-01-09 09:27:08.000000000 +0100
+++ linux-34/Makefile	2004-01-14 09:36:18.172866544 +0100
@@ -448,6 +449,9 @@ 
 # warn about C99 declaration after statement
 CFLAGS += $(call check_gcc,-Wdeclaration-after-statement,)
 
+# warn about impossible inlines
+CFLAGS += $(call check_gcc,-Winline,)
+
 #
 # INSTALL_PATH specifies where to place the updated kernel and system map
 # images.  Uncomment if you want to place them anywhere other than root.