summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug3482146.c
blob: 127786d137a7e0519cc62cf3123aae748fc3cf45 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* 
  Bug #3482146.
*/

#include <testfwk.h>

void
testBug(void)
{
#if !defined(__SDCC_mcs51) && !defined(__SDCC_pdk14) && !defined(__SDCC_pdk15) // Lack of memory
  unsigned char buff[176];
  unsigned char i;
  for(i = 0; i < 22*8; ++i)
    buff[i] = 0xff;
  buff[0] = buff[1] = 0x42;
  i = buff[0] - buff[1]; // The bug doesn't occur if you just use "i=0;"

  buff[88 + i] = buff[16 + i];

  buff[8 + i] = buff[i] >> 1;
  buff[16 + i] = buff[8+i] >> 1;	// This operation will not write into the right memory address

  ASSERT(buff[16] == 0x10);
#endif
}