1 /*
2    961213-1.c from the execute part of the gcc torture suite.
3  */
4 
5 #include <testfwk.h>
6 
7 #ifdef __SDCC
8 #pragma std_c99
9 #endif
10 
11 #if !defined(__SDCC_pic14) && !defined(__SDCC_pic16) && !defined(__SDCC_pdk14)
12 int
g(unsigned long long int * v,int n,unsigned int a[],int b)13 g (unsigned long long int *v, int n, unsigned int a[], int b)
14 {
15   int cnt;
16   *v = 0;
17   for (cnt = 0; cnt < n; ++cnt)
18     *v = *v * b + a[cnt];
19   return n;
20 }
21 #endif
22 
23 void
testTortureExecute(void)24 testTortureExecute (void)
25 {
26 #if !defined(__SDCC_mcs51) && !defined(__SDCC_pic14) && !defined(__SDCC_pic16) && !defined(__SDCC_pdk14) // Lack of memory
27   int res;
28   unsigned int ar[] = { 10, 11, 12, 13, 14 };
29   unsigned long long int v;
30 
31   res = g (&v, sizeof(ar)/sizeof(ar[0]), ar, 16);
32   if (v != 0xabcdeUL)
33     ASSERT (0);
34 
35   return;
36 #endif
37 }
38 
39