summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug-2239.c
blob: d2c972e7a01c8ffc01a96c3e5c18185adc30890a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
  bug-2239.c
*/

#include <testfwk.h>

static unsigned short buf[] = {0x8765, 0xa5a5, 0xc3c3, 0xf0f0, 0xabcd};

void testBug(void)
{
  unsigned char *p = ((unsigned char *) buf) + 4;
  ASSERT (*((unsigned char *) (p + 2 - 4)) == 0xa5);
  ASSERT (*((unsigned char *) (p - 2)) == 0xa5);
  ASSERT (*((unsigned short *) (p + 3 - 7)) == 0x8765);
  ASSERT (*((unsigned short *) (p - 4)) == 0x8765);
  ASSERT (*((unsigned char *) (p - 2 + 4)) == 0xf0);
  ASSERT (*((unsigned char *) (p + 2)) == 0xf0);
  ASSERT (*((unsigned short *) (p - 3 + 7)) == 0xabcd);
  ASSERT (*((unsigned short *) (p + 4)) == 0xabcd);
}