這篇的對象是 static function,
static function 若沒有其它 function 去存取的話,
在 compile 時,會發生 unused error,
可以在 function 前加上 attribute((unused)) 避免出現 unused error,
但如果 function 本體實作有 error 時,仍會被檢查出來。
Case 1
function 沒有被存取
1335 static irqreturn_t xxx_handler(int irq, void *data) 1336 { 1337 struct smbchg_chip *chip = (struct smbchg_chip *)data; ..... .....
..... ..... android/kernel/msm-3.18/drivers/power/qpnp-smbcharger.c:1335:20: warning: 'xxx_handler' defined but not used [-Wunused-function] error, forbidden warning: qpnp-smbcharger.c:1335 make[3]: *** [drivers/power/qpnp-smbcharger.o] Error 1 make[2]: *** [drivers/power] Error 2 make[1]: *** [drivers] Error 2 make[1]: *** Waiting for unfinished jobs.... ..... ..... .....
Case 2
function 沒有被存取 且 加上 attribute((unused))
1335 __attribute__((unused)) static irqreturn_t xxx_handler(int irq, void *data) 1336 { 1337 struct smbchg_chip *chip = (struct smbchg_chip *)data; ..... ..... .....
compile success
Case 3
function 沒有被存取 且 加上 attribute((unused)) 且 function 本體有 error
1335 static _attribute__((unused)) irqreturn_t xxx_handler(int irq, void *data) 1336 { 1337 asfadsf 1338 struct smbchg_chip *chip = (struct smbchg_chip *)data; ..... ..... .....
..... ..... android/kernel/msm-3.18/drivers/power/qpnp-smbcharger.c:1337:9: error: 'asfadsf' undeclared (first use in this function) asfadsf ^ ..... .....
應用時機
當 coder 尚在 實作 function 本體,並想檢查是否有錯誤時,可以使用