EDIT:
same bugs with v2.9.0 from sourcefourge!
- - -
I downloaded an SCC, it is a v2.9.7, but I don't remember from where, I think I got it from an MSX site of the sort "list of dev tools". on sourceforge there is 2.9.0, is 2.9.7 an unofficial beta?
char* fp = 0; //mallocstart;
void* f(int n) { void* rv = (void*)fp; fp += n; return rv; }
at the end he forgets to stuff BC into returnregister HL. in HL is something like the address of fp. not the previous content of fp, but the address of fp (+-1) is returned.
_f_start::
_f:
push ix
ld ix,#0
add ix,sp
ld bc,(_fp)
ld hl,#_fp
ld a,(hl)
add a,4 (ix)
inc hl
dec hl
push bc
ld c, a
inc hl
ld a, (hl)
ld b, a
ld a, c
dec hl
ld (hl), a
ld a, b
pop bc
adc a,5 (ix)
inc hl
ld (hl),a
pop ix
ret
_f_end::
another one
tmp = 0; //if this removed, then crash, must be compiler bug
for (i = 0; i < 2; i++) {
SETWRT(6144 + i * 32*8);
len = drawplaneW(testcommand, vdpname, plane, ph, modulo)
- testcommand;
if (i == 0) tmp = len;
}
feels like a bug in the same corner.
Sigh, things are hardcore on 8bit, one got to take care that innocent looking glue code does not eat lots rastertime, one got to take lot care of memory adresses, the built in malloc is fix compiled to maxsize 1k or so, and finally the compiler got bugs in basics.

. 
I guess they are commercial?