Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
  • Antonio Borneo's avatar
    checkpatch: fix incorrect camelcase detection on numeric constant · f858e23a
    Antonio Borneo authored
    The code fragment below
    
    	int foo(int *array, int index)
    	{
    		return array[index & 0xFF];
    	}
    
    triggers an incorrect camelcase detection by checking a substring of the
    hex constant:
    
    	CHECK: Avoid CamelCase: <xFF>
    	#3: FILE: test.c:3:
    	+	return array[index & 0xFF];
    
    This is caused by passing the whole string "array[index & 0xFF]" to the
    inner loop that iterates over a "$Ident" match.  The numeric constant is
    not a $Ident as it doesn't start with [A-Za-z_] and should be excluded
    from the match.
    
    Similar issue can be detected with other constants like "1uL", "0xffffU".
    
    Force the match to start at word boundary so the $Ident will be properly
    checked starting from its first char and the constants will be
    filtered-out.
    
    Link: https://lkml.kernel.org/r/20220613100055.77821-1-borneo.antonio@gmail.com
    
    
    Signed-off-by: default avatarAntonio Borneo <borneo.antonio@gmail.com>
    Cc: Joe Perches <joe@perches.com>
    Cc: Andy Whitcroft <apw@canonical.com>
    Cc: Dwaipayan Ray <dwaipayanray1@gmail.com>
    Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    f858e23a