Hi all, Clang recently added a new diagnostic in r371605, -Wsizeof-array-div, that tries to warn when sizeof(X) / sizeof(Y) does not compute the number of elements in an array X (i.e., sizeof(Y) is wrong). See that commit for more details:
https://github.com/llvm/llvm-project/commit/3240ad4ced0d3223149b72a4fc2a4d9b67589427 Some ethernet drivers have an instance of this warning due to receive side scaling support: ../drivers/net/ethernet/amd/xgbe/xgbe-dev.c:361:49: warning: expression does not compute the number of elements in this array; element type is 'u8' (aka 'unsigned char'), not 'u32' (aka 'unsigned int') [-Wsizeof-array-div] unsigned int key_regs = sizeof(pdata->rss_key) / sizeof(u32); ~~~~~~~~~~~~~~ ^ ../drivers/net/ethernet/amd/xgbe/xgbe-dev.c:361:49: note: place parentheses around the 'sizeof(u32)' expression to silence this warning ../drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c:537:36: warning: expression does not compute the number of elements in this array; element type is 'u8' (aka 'unsigned char'), not 'u32' (aka 'unsigned int') [-Wsizeof-array-div] for (i = 0; i < (sizeof(cfg->key) / sizeof(u32)); i++) { ~~~~~~~~ ^ ../drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c:537:36: note: place parentheses around the 'sizeof(u32)' expression to silence this warning ../drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c:2329:49: warning: expression does not compute the number of elements in this array; element type is 'u8' (aka 'unsigned char'), not 'u32' (aka 'unsigned int') [-Wsizeof-array-div] unsigned int key_regs = sizeof(pdata->rss_key) / sizeof(u32); ~~~~~~~~~~~~~~ ^ ../drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c:2329:49: note: place parentheses around the 'sizeof(u32)' expression to silence this warning What is the reasoning behind having the key being an array of u8s but seemlingly converting it into an array of u32s? It's not immediately apparent from reading over the code but I am not familiar with it so I might be making a mistake. I assume this is intentional? If so, the warning can be silenced and we'll send patches to do so but we want to make sure we aren't actually papering over a mistake. Cheers! Nathan