On 5 March 2018 at 21:21, Dibyendu Majumdar <mobile@xxxxxxxxxxxxxxx> wrote: > Hi, > > Almost a year ago I had reported a problem with Sparse simplification phase. > > https://marc.info/?l=linux-sparse&m=148953605610758&w=2 > > Given below is a test program. > > With the release Sparse 0.5.1 release, the output from test-linearizer is: > > cbrtl: > ep 0x7f5a27050010: cbrtl > > .L0: > bug1.c:1 > <entry-point> > set.64 %r4 <- 0.000000 > ret.64 %r4 > > Now I had a hunch that the bug may be resolved when PSEUDO_VALs have a > size. So I tried the same program with Chris' git repo version. > > The output is: > > cbrtl: > .L0x7f4c4c3b0010: > <entry-point> > set.64 %r1 <- 1.000000 > set.64 %r4 <- 0.000000 > ret.64 %r4 > > Hurray! > > I think some of the bugs in Sparse simplification phase is because all > PSEUDO_VALs with same value are considered equal - irrespective of > size! > > Here is the test: > > double cbrtl (double x) > { > int hx; > double r,s,w; > double lt; > unsigned sign; > union { > double t; > unsigned pt[2]; > } ut, ux; > int n0; > ut.t = 1.0; > n0 = (ut.pt[0] == 0); > ut.t = 0.0; > ux.t = x; > return ut.t; > } > Apologies looks like my example above is wrong (i.e. does not reflect the original issue) ... please ignore. Regards -- 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