Thursday, December 11, 2014

There's another problem that was found on AtariAge. In this one, global variables which are not initialized are not being declared as global. Additionally, for initialized data, the label is emitted before the section directive. It's a mess.


eric@compaq:~/dev/tios/src/temp$ cat emw4.c
int no_init[10];
int init_zero[10] = {0};
int init_val[] = {1,2,3,4};
eric@compaq:~/dev/tios/src/temp$ cat emw4.s
    cseg
# No "def no_init", symbol will not be visible to other modules

no_init
    bss 20

    def    init_zero

    def    init_zero
init_zero
    bss 20

    def    init_val
    dseg
    even


# The "def init_val" line should be here
init_val
    data    1
    data    2
    data    3
    data    4

No comments:

Post a Comment