summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug-2235.c
blob: acb032d2404e2f5f99b5db0f6e5fa06edaa33109 (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
/*      bug-2235.c
*/

#include <testfwk.h>

#ifdef __SDCC_mcs51
__sfr32 __at (0xFCFBFAF9) SFR32;
#else
volatile unsigned long SFR32;
#endif

void foo(unsigned long u1, unsigned long u2, unsigned long u3)
{
        u1;
        u2;
        u3;
}

/* This failed to compile due to iTemps getting SFR storage class */
void testBug2235(void)
{
        unsigned long U1, U2, U3;

        U1 = 0xABCDEF01 + SFR32;
        U2 = U1 + SFR32;
        U3 = U2 + SFR32;
        foo(U1, U2, U3);
        ASSERT(1);
}