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)13 fiddle_px (_STATMEM char * unused)
14 {
15   (volatile char) unused[0]; // shut up
16   px++;
17 }
18 
19 char
buggy(void)20 buggy (void)
21 {
22   px = x;
23   fiddle_px (x);
24   return *px;
25 }
26 
27 void
testBug(void)28 testBug (void)
29 {
30   ASSERT (buggy () == 42);
31 }
32