lynn / chibicc

A small C compiler… for uxn
MIT License
114 stars 4 forks source link

initialization only inits first 2 bytes #39

Open youbitchoc opened 2 months ago

youbitchoc commented 2 months ago

initialization uses store to load the initial value, but store only loads the first two bytes, so the rest of the struct is left uninitialized.

typedef struct {
    char a, b;
    int c;
} Ty2;

Ty2 foo = { 1, 2, 3 }; // only initializes a and b (first two bytes), c left uninitialized
Ty2 bar; bar = { 4, 5, 6 }; // assignment works though

just documenting this here in case i forget to circle back to it, ideas for deduplicating assign/store stuff greatly appreciated

youbitchoc commented 2 months ago

same problem with arrays :(

EDIT: nvm, {0,0,...} works but i had expected {0} to work too