1 /** bug 1618050 2 * global variable px in function buggy, is marked rematr.. 3 * and is erronously assumed to retain its value "x" across 4 * the function call to fiddle_px 5 */ 6 7 #include <testfwk.h> 8 9 _STATMEM char * __data px; 10 _STATMEM char x[2] = {0,42}; 11 12 void fiddle_px(_STATMEM char * unused)13fiddle_px (_STATMEM char * unused) 14 { 15 (volatile char) unused[0]; // shut up 16 px++; 17 } 18 19 char buggy(void)20buggy (void) 21 { 22 px = x; 23 fiddle_px (x); 24 return *px; 25 } 26 27 void testBug(void)28testBug (void) 29 { 30 ASSERT (buggy () == 42); 31 } 32