summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug-2222.c
blob: 7a2ab888616472626741dce5a6e357c67a014db9 (plain)
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
   bug-2222.c - gave a SIGSEGV in z80 port, triggered an assertion in stm8 port.
 */

#include <testfwk.h>

#pragma disable_warning 283

typedef unsigned short u16;

static u16 vn[20];

#ifndef __SDCC_pdk14 // Lack of memory
#ifndef __SDCC_pic16
void crash1()
{
  int m = 4, n = 4;
  unsigned short *u = 0, *v = 0;
  long s = 0, i = 0;

  for (i = n - 1; i > 0; i--)
    vn[i] = (v[i] << s) | (v[i-1] >> 16-s);
  vn[0] = v[0] << s;
}

void crash2()
{
  int m = 4, n = 4;
  unsigned short *u = 0, *v = 0;
  long s = 0, i = 0;

  for (i = n - 1; i > 0; i--)
    vn[i] = (v[i] >> s) | (v[i-1] << 16-s);
  vn[0] = v[0] >> s;
}
#endif
#endif

void testBug(void)
{
}