> 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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/