I have problem with attached source code
I would like to add some bytes to xram memory, but if I use union byte_in_bit_memory compilation finished with error:
sdcc Main.c
Main.c:28: warning 88: cast of LITERAL value to 'generic' pointer
from type 'const-unsigned-int literal'
to type 'volatile-unsigned-char generic* fixed'
Internal error: validateOpType failed in OP_SYMBOL(IC_RESULT (ic)) @ SDCCptropt.c:335: expected symbol, got value
In second example if I use dummy_byte I've go only warning
Main.c:29: warning 88: cast of LITERAL value to 'generic' pointer
from type 'const-unsigned-int literal'
to type 'volatile-unsigned-char generic* fixed'
I used the newest version from svn:
SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/TININative/ds400/hc08/s08/stm8 3.3.1 #8840 (Sep 11 2013) (Linux)
Attached file
Why don't you specify the memory type in the definition of BIG_ARRAY if you know (according to the comment) where it should be. You are aware that there are several distinctive addresses 0x8000 in the mcs51 memory spaces, right? If you don't tell SDCC how should it know what you mean?
Maarten
I add xdata specifier:
BIG_ARRAY ((xdata volatile unsigned char *)0x8000)
Warning 88 disapear, but internal error is the same:
Internal error: validateOpType failed in OP_SYMBOL(IC_RESULT (ic)) @ SDCCptropt.c:335: expected symbol, got value
I think, the adress value (0x8000 is not a problem).
Fixed in SDCC 3.3.2 #8903.