The only other compiler for 6502 I've ever used (and had to modify) is the old cc65. The original author stop developing it (10+ years ago): https://cc65.github.io/
But there is some development ongoing: https://cc65.github.io/
Would be interesting to see comparison with the new one.
68000 CPU. There's a mature and helpful homebrew scene. Documentation is good. The SGDK devkit/framework is nice and gives you a no fuss pipeline from C through GCC to a ROM file output that you can run on any emulator, or actual Genesis console (flash cart), or an FPGA like the MiSTer project. 68K assembly is pleasant IMO, if you want to sprinkle in some of that with your C. And, to satisfy an 8-bit itch, the Genesis also has a Z80 CPU on board, typically used for audio programming. Which, by the way, gives you authentic 1980s arcade/console FM synthesis.
IMO the Genesis' architecture of sprites, tilemaps, and palettes is very sane and easy to grok (compared to, say, the Super Nintendo of the era). Also, flat memory model. Yay.
But why? I know better then to ask for such projects, but here I do, because the project's readme provides a 'history & motivation' section, albeit which doesn't really tells much of the latter.
"The original idea for the oscar64 compiler was to translate the C source to an intermediate 16 bit byte code". That's (afair) the approach taken by the (out-of-tree) GCC port to the Parallax P8X32A (itself not an easy target for C: registers, if one wants to call the local memory location used as such that are wide, but the architecture is memory starved and there's no hardware stack). Is there some overlap?
Does that mean that the whole thing was ultimately a failed experiment, or that the native code optimizations have become so good that the interpreted mode is made obsolete in most situations?
Do you have a link or reference? Doesn't appear to be on your blog?
C was indeed not ideal for 8 bitter (hence the astonishment around this topic). CP/M istself was written in PL/0 (I suppose with a sprinkle of assembler). Macro assemblers were popular then for shrink-wrap software. Custom software was often done in BASIC.
Professionals used cross compilers (or cross assemblers) when they had a chance. Microsoft BASIC e.g. was developed on a PDP-10.
This included graphics.
Circa 1989 so it was the backend of C64 development.
On one side most Pascal dialects did not have the issues he had with raw ISO Pascal.
And outside UNIX server rooms, all C implementations were also dialects anyway, so it should count both ways.
By the way, besides Small-C, have you also considered RatC, another dialect of it?
In particular the shared pointers.
EDIT: - I stand corrected, the compiler can be switched in C++ mode.
“C++ support level
The compiler will most likely not support a current C++ standard in the near future, but several C++ features are already implemented. The compiler can be switched into C++ mode with the command line option -pp or by providing a source file with a .cpp extension.”