Dear Heiko, In message <545b81d9.6070...@denx.de> you wrote: > > > > [drivers/mtd/ubi/eba.c:1275]: (error) Uninitialized variable: aeb > > > > can you please have a look? Thanks! > > I see in drivers/mtd/ubi/eba.c: > > 1267: ubi_rb_for_each_entry(rb, aeb, &av->root, u.rb) > 1268: scan_eba[i][aeb->lnum] = aeb->pnum; > 1269: > 1270: av = ubi_find_av(ai_fastmap, idx2vol_id(ubi, i)); > 1271: if (!av) > 1272: continue; > 1273: > 1274: ubi_rb_for_each_entry(rb, aeb, &av->root, u.rb) > 1275: fm_eba[i][aeb->lnum] = aeb->pnum; > > Why does cppcheck only report line 1275 not also line 1268 and also > 1351? I could not currently see, why this pops up for line 1274 ...
we should also look at the ubi_rb_for_each_entry() macro: 912 #define ubi_rb_for_each_entry(rb, pos, root, member) \ 913 for (rb = rb_first(root), \ 914 pos = (rb ? container_of(rb, typeof(*pos), member) : NULL); \ 915 rb; \ 916 rb = rb_next(rb), \ 917 pos = (rb ? container_of(rb, typeof(*pos), member) : NULL)) We can see there, that this will always set "pos", i. e. the 2nd argument, to a well-defined value. Looks like a false positive to me, then. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Where would we be without rhetorical questions? _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot