wgtdkp / wgtcc

A small C11 compiler
MIT License
765 stars 130 forks source link

string initializer truncate #16

Open huangguiyang opened 7 years ago

huangguiyang commented 7 years ago
struct S {
    char c[10];
};

struct S s = {"abc", .c[0] = 89};

gcc:

    .globl  s1
    .data
    .align 8
    .type   s1, @object
    .size   s1, 10
s1:
    .byte   89
    .byte   98
    .byte   99
    .byte   0
    .zero   6

wgtcc:

    .data
    .globl  s1
    .align  1
    .type   s1, @object
    .size   s1, 10
s1:
    .byte   89
    .zero   9
wgtdkp commented 7 years ago

是的,这是一个已知的bug,我的做法只是简单地让后面的initializer覆盖前面的 (用set维护初始化列表)。在测试用例里面,我应该注释了这个问题。