Files
retrobsd/src/cmd/smlrc
Alexey Frunze b652f52cb6 Smaller C: Improve pointer initialization
The following global/static pointer initialization should now work:

static char* p1 = "abc" + 1;
static char* p2 = "abc" - 1;
static char* p3 = 1 + "abc";
static int a333[3][3][3];
static int* pa333_111 = &a333[1][1][1];

Other seemingly (and in fact actually) functionality preserving changes
are only to reduce code size when self compiling for DOS using -seg16.
Improvements and fixes require space, sigh.
2014-04-26 15:53:41 -07:00
..
2014-04-09 14:27:18 +01:00
2014-04-09 14:27:18 +01:00

Smaller C is a simple and small single-pass C compiler,
currently supporting most of the C language common between C89/ANSI C
and C99 (minus some C89 and plus some C99 features).

Currently it generates 16-bit and 32-bit 80386+ assembly code for NASM
that can then be assembled and linked into DOS, Windows and Linux programs.

Code generation for MIPS CPUs is also supported (primarily for RetroBSD).

The compiler is capable of compiling its own source code.

You can fully recompile the compiler only with itself and NASM for the
x86 platform (no linker is necessary).

See the Wiki for more up-to-date details:
http://github.com/alexfru/SmallerC/wiki

Links:
NASM: http://nasm.us/
RetroBSD: http://retrobsd.org/