User Activity

  • Created ticket #511 on Small Device C Compiler (SDCC)

    A compound literal without a storage class is not const

  • Modified a comment on ticket #2810 on Small Device C Compiler (SDCC)

    This one looks fixed by patches/508. The reproducer from the report: struct s { union { int a; int b; }; int c; int d; }; struct s s2 = { .a = 0, .c = 3, .d = 4 }; compiled to assembly against [r16747] and against [r16747] plus that patch set: port r16747 with patches/508 z80 warning 147 x2, data 0000 0000 0003 no warning, data 0000 0003 0004 stm8 same correct hc08 same correct s08 same correct mcs51 correct already correct The two warnings are the visible symptom; the data is the reason it matters....

  • Posted a comment on ticket #2810 on Small Device C Compiler (SDCC)

    This one looks fixed by patches/508. The reproducer from the report: struct s { union { int a; int b; }; int c; int d; }; struct s s2 = { .a = 0, .c = 3, .d = 4 }; compiled to assembly against r16747 and against r16747 plus that patch set: port r16747 with patches/508 z80 warning 147 x2, data 0000 0000 0003 no warning, data 0000 0003 0004 stm8 same correct hc08 same correct s08 same correct mcs51 correct already correct The two warnings are the visible symptom; the data is the reason it matters....

  • Posted a comment on ticket #3886 on Small Device C Compiler (SDCC)

    This looks fixed by patches/509, which addresses the same root cause from the other end: a compound literal in a declaration initializer is never given storage, so the temporary has no rname and the operand that reads it is emitted empty. Compiling the reproducer from this report to assembly, before and after that patch: port without patches/509 with it z80 ld hl, # (empty) correct z180 ld hl, # (empty) correct mcs51 mov ___memcpy_PARM_2,# correct stm8 correct correct That matches the workarounds...

  • Created ticket #510 on Small Device C Compiler (SDCC)

    Two regression-harness defects: TEST_PREFIX is inert, and a test's cases can be silently lost

  • Created ticket #509 on Small Device C Compiler (SDCC)

    A compound literal in a declaration initializer is never allocated

  • Posted a comment on ticket #3393 on Small Device C Compiler (SDCC)

    [r16733] fixes the reported case. Your commit message notes that it still fails when there are multiple structs with bitfields in the union — the case bug-3393.c carries under #if 0. 0001 of the set now on the patch tracker as patches/508 fixes that, and deletes the #if 0. On mcs51 the entire difference for struct S v = {1, 2, 3, 4} at file scope is one instruction: before: mov ((_gv + 0x0002) + 0),#0x04 ; the 4 lands at offset 2 -> c after: mov ((_gv + 0x0004) + 0),#0x04 ; the 4 lands at offset...

  • Created ticket #508 on Small Device C Compiler (SDCC)

    Anonymous-union initializers: six fixes for bug #3393

View All

Personal Data

Username:
hharte
Joined:
2004-12-04 21:17:09

Projects

  • No projects to display.

Personal Tools