Messages in this thread | | | Date | Sat, 26 Jan 2008 20:30:36 +0100 | From | Sam Ravnborg <> | Subject | Re: [Patch] Shut up warnings from files under drivers/ |
| |
> 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
| |