Johannes Berg wrote: > My optimisation to avoid recursion into BBs when checking contexts > lead to a failure in a case like this: > > static int warn_conditional(void) > { > if (condition) > return 0; > > a(); > if (condition == 0) > return 1; > r(); > return 0; > } > > because some blocks are called with different contexts and thus > need to be checked multiple times. > > The obvious fix would be to decrease the recursion depth at the > end of the BB check function, but that, while correct, leads to > extremely long sparse runtimes on somewhat complex functions. > Thus, this patch also makes sparse cache which contexts it has > checked a block in and avoid the re-checking in that case. > > Signed-off-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> Applied and pushed; thanks! - Josh Triplett
Attachment:
signature.asc
Description: OpenPGP digital signature