I found a bug in gcc. Reproducible using:
Expected result is "a is 100" but instead it prints "a is"Code:#include <stdio.h> const char *usage(int test) { char s[15]; sprintf(s, "%d\n", test); return s; } void main(void) { int a; a += 100; printf("a is %s\n", usage(a)); }