I can confirm this is now fixed. Thanks !. only two more FPs in 2.8 to get back to 2.7 for me 10681 11009 :)
Sorry something went wrong with cut and paste void f(int step) { int a[11]; int *p = a; int height = 10; for (int i = 0; i < (height * step); i += step) *p++ = 0; for (int i = 0; i < height; i++) if (a[i]) {} } This gives : Checking ../FP6.c ... ../FP6.c:8:21: error: Uninitialized variable: a [uninitvar] if (a[i]) {} ^ ../FP6.c:5:27: note: Assuming condition is false for (int i = 0; i < (height * step); i += step) ^ ../FP6.c:8:21: note: Uninitialized variable: a if (a[i]) {}
Sorry thats a typo should be int step =1;
Thanks for the fix of 11006. Unfortunately my original case still fails before being cut down . New test case here void f() { int a[11]; int *p = a; int height = 10; int step 1; for (int i = 0; i < (height * step); i += step) *p++ = 0; for (int i = 0; i < height; i++) if (a[i]) {} }
This wasn't an FP a few weeks ago. int main(const char *params) { uint8_t *a = calloc(10 , 1); if ( a == NULL ) return 0; uint8_t *b = calloc(10, 1); if ( b == NULL ) { free(a); return 0; } free(a); free(b); return 0; } FP4c.c:12:7: error: Memory leak: a [memleak] return 0;
int main () { int screendata[11]; int *dp = screendata; int height = font->height; int step = 2; for (int i = 0; i < (height * step); i += step) { *dp++ = 0; } for (y = 0; y < height; y++) { if (screendata[y]) { break; } } return 0; } The above gives : ../FP23c.c:12:7: error: Uninitialized variable: screendata [uninitvar] if (screendata[y]) { ^ ../FP23c.c:7:22: note: Assuming condition is false for (int i = 0; i < (height * step); i += step) { ^ ../FP23c.c:12:7: note: Uninitialized variable: screendata...
int main () { int screendata[11]; int *dp = screendata; int height = font->height << font->rounding; int step = 2; for (int i = 0; i < (height * step); i += step) { *dp++ = 0; } for (y = 0; y < height; y++) { if (screendata[y]) { break; } } return 0; } The above gives : ../FP23c.c:12:7: error: Uninitialized variable: screendata [uninitvar] if (screendata[y]) { ^ ../FP23c.c:7:22: note: Assuming condition is false for (int i = 0; i < (height * step); i += step) { ^ ../FP23c.c:12:7: note: Uninitialized...
Thanks for the extra info.