1*89a1d03eSRichard // RUN: %check_clang_tidy %s linuxkernel-must-check-errs %t 2*89a1d03eSRichard 3*89a1d03eSRichard #define __must_check __attribute__((warn_unused_result)) 4*89a1d03eSRichard 5*89a1d03eSRichard // Prototypes of the error functions. 6*89a1d03eSRichard void * __must_check ERR_PTR(long error); 7*89a1d03eSRichard long __must_check PTR_ERR(const void *ptr); 8*89a1d03eSRichard int __must_check IS_ERR(const void *ptr); 9*89a1d03eSRichard int __must_check IS_ERR_OR_NULL(const void *ptr); 10*89a1d03eSRichard void * __must_check ERR_CAST(const void *ptr); 11*89a1d03eSRichard int __must_check PTR_ERR_OR_ZERO(const void *ptr); 12*89a1d03eSRichard f(void)13*89a1d03eSRichardvoid f(void) { 14*89a1d03eSRichard ERR_PTR(0); 15*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: result from function 'ERR_PTR' is unused 16*89a1d03eSRichard PTR_ERR((void *)0); 17*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: result from function 'PTR_ERR' is unused 18*89a1d03eSRichard IS_ERR((void *)0); 19*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: result from function 'IS_ERR' is unused 20*89a1d03eSRichard ERR_CAST((void *)0); 21*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: result from function 'ERR_CAST' is unused 22*89a1d03eSRichard out: 23*89a1d03eSRichard PTR_ERR_OR_ZERO((void *)0); 24*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: result from function 'PTR_ERR_OR_ZERO' is unused 25*89a1d03eSRichard } 26*89a1d03eSRichard f1(void)27*89a1d03eSRichardvoid *f1(void) { 28*89a1d03eSRichard return ERR_PTR(0); 29*89a1d03eSRichard } 30*89a1d03eSRichard f2(void)31*89a1d03eSRichardlong f2(void) { 32*89a1d03eSRichard if (IS_ERR((void *)0)) { 33*89a1d03eSRichard return PTR_ERR((void *)0); 34*89a1d03eSRichard } 35*89a1d03eSRichard return -1; 36*89a1d03eSRichard } 37*89a1d03eSRichard f3(void)38*89a1d03eSRichardvoid f3(void) { 39*89a1d03eSRichard f1(); 40*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: result from function 'f1' is unused but represents an error value 41*89a1d03eSRichard f2(); 42*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: result from function 'f2' is unused but represents an error value 43*89a1d03eSRichard } 44