When adding a function declaration in a .c file without extern
keywork decoration, checkpatch.pl will report *externs should be
avoided in .c files* false error. This patch fixes the bug.
Signed-off-by: Jiang Biao <jiang.biao2@zte.com.cn>
---
scripts/checkpatch.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 3c0a28e..c12bc4c 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2534,7 +2534,7 @@ sub process {
# check for new externs in .c files.
if ($realfile =~ /\.c$/ && defined $stat &&
- $stat =~ /^.\s*(?:extern\s+)?$Type\s+($Ident)(\s*)\(/s)
+ $stat =~ /^.\s*(?:extern\s+)$Type\s+($Ident)(\s*)\(/s)
{
my $function_name = $1;
my $paren_space = $2;
--
2.7.4
On 10 October 2017 at 08:54, Jiang Biao <jiang.biao2@zte.com.cn> wrote: > When adding a function declaration in a .c file without extern > keywork decoration, checkpatch.pl will report *externs should be > avoided in .c files* false error. This patch fixes the bug. I don't think this is a bug. "extern int foo(void);" and "int foo(void);" have the same effect: they declare a function prototype that can be called from outside the file. We don't want to permit that in QEMU. Either: (1) the function is for use only within this file: the declaration should be "static int foo(void);" (2) the function is for use by other files too: the declaration should be in a header file, not a .c file, so the other files can use it Do you have an example of code where this warning is a problem? thanks -- PMM
PiBPbiAxMCBPY3RvYmVyIDIwMTcgYXQgMDg6NTQsIEppYW5nIEJpYW8gPGppYW5nLmJpYW8yQHp0 ZS5jb20uY24+IHdyb3RlOg0KDQoNCj4gPiBXaGVuIGFkZGluZyBhIGZ1bmN0aW9uIGRlY2xhcmF0 aW9uIGluIGEgLmMgZmlsZSB3aXRob3V0IGV4dGVybg0KPiA+a2V5d29yayBkZWNvcmF0aW9uLCBj aGVja3BhdGNoLnBsIHdpbGwgcmVwb3J0ICpleHRlcm5zIHNob3VsZCBiZQ0KPiA+IGF2b2lkZWQg aW4gLmMgZmlsZXMqIGZhbHNlIGVycm9yLiBUaGlzIHBhdGNoIGZpeGVzIHRoZSBidWcuDQo+IA0K PiBJIGRvbid0IHRoaW5rIHRoaXMgaXMgYSBidWcuICJleHRlcm4gaW50IGZvbyh2b2lkKTsiIGFu ZA0KPiAiaW50IGZvbyh2b2lkKTsiIGhhdmUgdGhlIHNhbWUgZWZmZWN0OiB0aGV5IGRlY2xhcmUg YSBmdW5jdGlvbg0KPiBwcm90b3R5cGUgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gb3V0c2lkZSB0 aGUgZmlsZS4NCj4gV2UgZG9uJ3Qgd2FudCB0byBwZXJtaXQgdGhhdCBpbiBRRU1VLiBFaXRoZXI6 DQo+ICAoMSkgdGhlIGZ1bmN0aW9uIGlzIGZvciB1c2Ugb25seSB3aXRoaW4gdGhpcyBmaWxlOiB0 aGUNCj4gIGRlY2xhcmF0aW9uIHNob3VsZCBiZSAic3RhdGljIGludCBmb28odm9pZCk7Ig0KPiAg KDIpIHRoZSBmdW5jdGlvbiBpcyBmb3IgdXNlIGJ5IG90aGVyIGZpbGVzIHRvbzogdGhlDQo+ICBk ZWNsYXJhdGlvbiBzaG91bGQgYmUgaW4gYSBoZWFkZXIgZmlsZSwgbm90IGEgLmMgZmlsZSwNCj4g IHNvIHRoZSBvdGhlciBmaWxlcyBjYW4gdXNlIGl0DQo+IA0KPiBEbyB5b3UgaGF2ZSBhbiBleGFt cGxlIG9mIGNvZGUgd2hlcmUgdGhpcyB3YXJuaW5nIGlzIGEgcHJvYmxlbT8NCkhpIFBldGVyLA0K DQpJIHVuZGVyc3RhbmQgZXh0ZXJuYWwgZnVuY3Rpb25zIHNob3VsZCBiZSBwdXQgaW4gaGVhZGVy IGZpbGVzLiBCdXQgdGhlcmUNCg0KaXMgc29tZSByYXJlIGV4Y2VwdGlvbnMsIHRha2UgdGhlIGNv ZGUgc2VnbWVudCBpbiANCg0KDQp0Y2cvbWlwcy90Y2ctdGFyZ2V0LmluYy5jIGZvciBleGFtcGxl LA0KDQojaWYgVENHX1RBUkdFVF9SRUdfQklUUyA9PSAzMg0KIyBkZWZpbmUgTE9fT0ZGICAoTUlQ U19CRSAqIDQpDQojIGRlZmluZSBISV9PRkYgICg0IC0gTE9fT0ZGKQ0KI2Vsc2UNCi8qIFRvIGFz c2VydCBhdCBjb21waWxlLXRpbWUgdGhhdCB0aGVzZSB2YWx1ZXMgYXJlIG5ldmVyIHVzZWQNCiAg IGZvciBUQ0dfVEFSR0VUX1JFR19CSVRTID09IDY0LiAgKi8NCi8qIGV4dGVybiAqLyBpbnQgbGlu a19lcnJvcih2b2lkKTsNCiMgZGVmaW5lIExPX09GRiAgbGlua19lcnJvcigpDQojIGRlZmluZSBI SV9PRkYgIGxpbmtfZXJyb3IoKQ0KI2VuZGlmDQoNCkluIHRoaXMgY2FzZSwgdGhlIGV4dGVybmFs IGZ1bmNpdG9uIGlzIGp1c3QgdXNlZCB0byBhc3NlcnQgYXQgY29tcGxpZS10aW1lLg0KDQoNCklm IEkgbWFrZSBhIHBhdGNoIHRvIGRlbGV0ZSB0aGUgY29tbWVudGVkIG91dCBleHRlcm4gYmVmb3Jl ICppbnQgbGlua19lcnJvcigpKiwNCg0KdGhlIGNoZWNrcGF0Y2gucGwgd2lsbCBjb21wbGFpbiB0 aGUgICpleHRlcm5zIHNob3VsZCBiZSBhdm9pZGVkIGluIC5jIGZpbGVzKiANCg0KDQplcnJvci4N Cg0KVGhlIHNhbWUgdXNhZ2UgY2FuIGFsc28gYmUgZm91bmQgaW4gdGNnL3RjZy1vcC5jLA0KDQov KiBSZWR1Y2UgdGhlIG51bWJlciBvZiBpZmRlZnMgYmVsb3cuICBUaGlzIGFzc3VtZXMgdGhhdCBh bGwgdXNlcyBvZg0KICAgVENHVl9ISUdIIGFuZCBUQ0dWX0xPVyBhcmUgcHJvcGVybHkgcHJvdGVj dGVkIGJ5IGEgY29uZGl0aW9uYWwgdGhhdA0KICAgdGhlIGNvbXBpbGVyIGNhbiBlbGltaW5hdGUu ICAqLw0KI2lmIFRDR19UQVJHRVRfUkVHX0JJVFMgPT0gNjQNCmV4dGVybiBUQ0d2X2kzMiBUQ0dW X0xPV19saW5rX2Vycm9yKFRDR3ZfaTY0KTsNCmV4dGVybiBUQ0d2X2kzMiBUQ0dWX0hJR0hfbGlu a19lcnJvcihUQ0d2X2k2NCk7DQojZGVmaW5lIFRDR1ZfTE9XICBUQ0dWX0xPV19saW5rX2Vycm9y DQojZGVmaW5lIFRDR1ZfSElHSCBUQ0dWX0hJR0hfbGlua19lcnJvcg0KI2VuZGlmDQoNCkknbSBu b3Qgc3VyZSBpZiB0aGUgY2hlY2twYXRjaC5wbCBzaG91bGQgdGFrZSB0aGVzZSBjYXNlIGludG8g Y29uc2lkZXJhdGlvbi4gOikNCg0KVGhhbmtzLg0KDQoNCg0KDQoNClJlZ2FyZHMu
© 2016 - 2024 Red Hat, Inc.