http://bugs.winehq.org/show_bug.cgi?id=15397
--- Comment #9 from Andrey Turkin andrey.turkin@gmail.com 2008-09-30 05:55:56 --- OK, I was able to reproduce and sort-of minimize this down to:
int a(); void b(int*out, const int in) { *out += in; } void c(int* out, int count) { if (count>0) { int point, startpt; for(point=0;point<count;point++) { int pt = a(); if (!pt) return; if (point==0) startpt = pt; } b(out, startpt); } }
While it is clear that startpt cannot be used uninitialized, GCC 3.4.4 and 4.2.3 both claim it can be. Commenting out line with return make this warning go away for some reason. GCC bug or is there something I cannot see?