Imported Upstream version 2.9.0
[debian/cc1111] / support / regression / tests / bug-460010.c
1 /* bug 460010
2  */
3 #include <testfwk.h>
4
5 #ifdef SDCC
6 #ifdef SDCC_pic16
7 #define ADDRESS 0x0070
8 #else
9 #define ADDRESS 0xa000
10 #endif  /* SDCC_pic16 */
11 #endif  /* SDCC */
12
13 void 
14 func( unsigned char a )
15 {
16   UNUSED(a);
17 }
18
19 void
20 testBadPromotion(void)
21 {
22
23 #ifdef SDCC
24   unsigned char c=*((unsigned xdata char*)(ADDRESS));
25 #else
26   unsigned char loc_c;
27   unsigned char c=*(unsigned char*)&loc_c;
28 #endif 
29   
30   func(c); 
31   
32   c+='0'; /* is evaluated as an 8-bit expr */ 
33   
34   func(c); 
35
36   c+='A'-'0'; /* is a 16-bit expr ??? */ 
37   
38   func(c); 
39 }