Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#2216 copy bit field variable to memory

closed-fixed
Maarten Brock
None
MCS51
5
2013-12-15
2013-09-11
c_gapinski
No

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)

Discussion

  • c_gapinski
    c_gapinski
    2013-09-11

    Attached file

     
    Attachments
  • Maarten Brock
    Maarten Brock
    2013-09-11

    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

     
  • c_gapinski
    c_gapinski
    2013-09-12

    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).

     
  • Maarten Brock
    Maarten Brock
    2013-12-15

    • status: open --> closed-fixed
    • assigned_to: Maarten Brock
     
  • Maarten Brock
    Maarten Brock
    2013-12-15

    Fixed in SDCC 3.3.2 #8903.