Re: [Patch] Shut up warnings from files under drivers/

From: Sam Ravnborg
Date: Sat Jan 26 2008 - 14:30:42 EST


> I checked up on the synclink.c warning.
> We have the following code:
>
> static void synclink_remove_one (struct pci_dev *dev);
>
> ...
>
> static struct pci_driver synclink_pci_driver = {
> .remove = __devexit_p(synclink_remove_one),
> };
>
> ...
>
> static void __devexit synclink_remove_one (struct pci_dev *dev)
> {
> }
>
> And I double checked the preprocessed source to check
> that we applied the __attribute__((__used__)) to the function.
>
> Investigating a bit more I realized that gcc looses the
> __used__ attribution due to the prototype.
> So there are two correct fixes:
> a) move the function up so we do not need the forward
> declaration
> b) add a __devexit to the forward decalration too.
>
> I strongly prefer the first version and this is the
> correct fix for these cases.
>
> Do we have a gcc bug here - I did not see a definitive answer in gcc docs?

I have reported it now - follow:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34985

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