Add unitialized_var() macro for suppressing gcc warnings
Introduce a macro for suppressing gcc from generating a warning about a probable uninitialized state of a variable. Example: - spinlock_t *ptl; + spinlock_t *uninitialized_var(ptl); Not a happy solution, but those warnings are obnoxious. - Using the usual pointlessly-set-it-to-zero approach wastes several bytes of text. - Using a macro means we can (hopefully) do something else if gcc changes cause the `x = x' hack to stop working - Using a macro means that people who are worried about hiding true bugs can easily turn it off. Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a8127717cb
commit
9490991482
|
@ -13,4 +13,10 @@
|
|||
#define __must_check __attribute__((warn_unused_result))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* A trick to suppress uninitialized variable warning without generating any
|
||||
* code
|
||||
*/
|
||||
#define uninitialized_var(x) x = x
|
||||
|
||||
#define __always_inline inline __attribute__((always_inline))
|
||||
|
|
|
@ -16,3 +16,9 @@
|
|||
#define __must_check __attribute__((warn_unused_result))
|
||||
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
|
||||
#define __always_inline inline __attribute__((always_inline))
|
||||
|
||||
/*
|
||||
* A trick to suppress uninitialized variable warning without generating any
|
||||
* code
|
||||
*/
|
||||
#define uninitialized_var(x) x = x
|
||||
|
|
|
@ -22,3 +22,5 @@
|
|||
(typeof(ptr)) (__ptr + (off)); })
|
||||
|
||||
#endif
|
||||
|
||||
#define uninitialized_var(x) x
|
||||
|
|
|
@ -1455,7 +1455,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
|
|||
pte_t *pte;
|
||||
int err;
|
||||
struct page *pmd_page;
|
||||
spinlock_t *ptl = ptl; /* Suppress gcc warning */
|
||||
spinlock_t *uninitialized_var(ptl);
|
||||
|
||||
pte = (mm == &init_mm) ?
|
||||
pte_alloc_kernel(pmd, addr) :
|
||||
|
|
Loading…
Reference in New Issue
Block a user