On Fri, Nov 23, 2012 at 10:27:12AM +0800, Qing Xu wrote: > But, in fact, it is not necessary to initialize regulator_idx. > for (i = 0; i < ARRAY_SIZE(max8925_regulator_info); i++) { > ri = &max8925_regulator_info[i]; > if (ri->vol_reg == res->start) { > ****** if regulator_idx can not get a match "i" here, it will return > -EINVAL in below code > regulator_idx = i; > break; > } > } > if (i == ARRAY_SIZE(max8925_regulator_info)) { > dev_err(&pdev->dev, "Failed to find regulator %llu\n", > (unsigned long long)res->start); > return -EINVAL; > } > How to solve such compiler warning? Typically by reporting a compiler bug, though sometimes in the process of doing that one finds out that there's some non-obvious way in which the code can break.