• Vasily Gorbik's avatar
    s390/perf: fix gcc 8 array-bounds warning · ad82a928
    Vasily Gorbik authored
    arch/s390/kernel/perf_regs.c:36:19: warning: array subscript 16 is above
    array bounds of 'long unsigned int[16]' [-Warray-bounds]
      return regs->gprs[idx];
    
    gcc tries to be smart here and since there is a condition:
    if (idx >= PERF_REG_S390_R0 && idx <= PERF_REG_S390_R15)
    	return regs->gprs[idx];
    which covers all possible array subscripts, it gives the warning
    for the last function return statement:
    	return regs->gprs[idx];
    which in presence of that condition does not really make sense and
    should be replaced with "return 0;"
    
    Also move WARN_ON_ONCE((u32)idx >= PERF_REG_S390_MAX) to the end of the
    function.
    Reviewed-by: default avatarHendrik Brueckner <brueckner@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    ad82a928
perf_regs.c 1.55 KB