On Mon, Feb 26, 2018 at 03:36:38PM -0800, Christopher Li wrote: > > You said you did not found crash in your first round testing. > However there is some regression of the IR. Can you share > the regression test case you found? I didn't spend much time at it but a typical small example of what I've seen is: void a(void) { long b; unsigned c = 0; for (;;) if (c) c = b; } Before it linearized as: .L0: br .L2 .L2: br .L2 Now it linearizes as: .L0: phisrc.32 %phi1(c) <- $0 br .L1 .L1: phi.32 %r1 <- %phi1(c), %phi2(c) cbr %r1, .L5, .L1 .L5: phisrc.32 %phi2(c) <- $0 br .L1 It's clearly one of the problem with casts and the CSE changes I've talked about. I'm sure that the fact that b is uninitialized has a role here in the ocurence of the problem but I'm convinced that it's independent of the problem itself. You can play with this example to create other cases with more dramatic differences, of course. -- Luc -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html