scc

simple C compiler
git clone git://git.2f30.org/scc
Log | Files | Refs | README | LICENSE

commit c9cccba538e9870b1177ae4c57dad716e9f02185
parent 12ed188e75849215099d1f3dedb37717a42cbe44
Author: sin <sin@2f30.org>
Date:   Wed, 11 May 2016 17:38:15 +0100

Implement proper #pragma support

Diffstat:
Mcc1/cpp.c | 6++++++
Acc1/pragma.msg | 105+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 111 insertions(+), 0 deletions(-)

diff --git a/cc1/cpp.c b/cc1/cpp.c @@ -546,8 +546,14 @@ set_line: static void pragma(void) { + static char magic[] = { + #include "pragma.msg" + }, *p = magic; + if (cppoff) return; + for (; *p; p++) + putc(*p, stderr); *input->p = '\0'; next(); } diff --git a/cc1/pragma.msg b/cc1/pragma.msg @@ -0,0 +1,105 @@ +0x2a, 0x20, 0x67, 0x20, 0x6f, 0x20, 0x61, 0x20, 0x74, 0x20, 0x73, 0x20, +0x65, 0x20, 0x78, 0x20, 0x2a, 0x20, 0x67, 0x20, 0x6f, 0x20, 0x61, 0x20, +0x74, 0x20, 0x73, 0x20, 0x65, 0x20, 0x78, 0x20, 0x2a, 0x20, 0x67, 0x20, +0x6f, 0x20, 0x61, 0x20, 0x74, 0x20, 0x73, 0x20, 0x65, 0x20, 0x78, 0x20, +0x2a, 0x0a, 0x67, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x67, 0x0a, 0x6f, 0x20, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, +0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x6f, 0x0a, 0x61, 0x7c, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x0a, 0x74, 0x7c, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x60, 0x2e, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x3a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x0a, 0x73, 0x60, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x7c, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x0a, +0x65, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, +0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x20, 0x20, 0x5c, +0x5c, 0x5c, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x5f, 0x5f, 0x20, 0x5c, 0x5c, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x20, 0x20, 0x20, +0x65, 0x0a, 0x78, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x5c, 0x2f, 0x20, 0x20, 0x20, 0x5f, 0x2d, 0x2d, 0x7e, 0x7e, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7e, 0x2d, 0x2d, 0x5f, +0x5f, 0x7c, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, +0x20, 0x20, 0x78, 0x0a, 0x2a, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x5c, 0x5f, 0x2d, 0x7e, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x7e, 0x2d, 0x5f, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x7c, +0x20, 0x20, 0x20, 0x20, 0x2a, 0x0a, 0x67, 0x20, 0x20, 0x20, 0x20, 0x5c, +0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x5f, 0x2e, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, +0x2d, 0x2e, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5c, 0x7c, 0x20, 0x20, +0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x67, 0x0a, 0x6f, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x5f, 0x5f, +0x5f, 0x5f, 0x5f, 0x5f, 0x2f, 0x2f, 0x20, 0x5f, 0x20, 0x5f, 0x5f, 0x5f, +0x20, 0x5f, 0x20, 0x28, 0x5f, 0x28, 0x5f, 0x5f, 0x3e, 0x20, 0x20, 0x5c, +0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x0a, 0x61, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x2e, 0x20, +0x20, 0x43, 0x20, 0x5f, 0x5f, 0x5f, 0x29, 0x20, 0x20, 0x5f, 0x5f, 0x5f, +0x5f, 0x5f, 0x5f, 0x20, 0x28, 0x5f, 0x28, 0x5f, 0x5f, 0x5f, 0x5f, 0x3e, +0x20, 0x20, 0x7c, 0x20, 0x20, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x61, 0x0a, +0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x5c, 0x20, 0x7c, +0x20, 0x20, 0x20, 0x43, 0x20, 0x5f, 0x5f, 0x5f, 0x5f, 0x29, 0x2f, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x28, 0x5f, 0x5f, 0x5f, 0x5f, +0x5f, 0x3e, 0x20, 0x20, 0x7c, 0x5f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, +0x74, 0x0a, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x20, 0x2f, +0x5c, 0x7c, 0x20, 0x20, 0x20, 0x43, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x29, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x28, 0x5f, +0x5f, 0x5f, 0x3e, 0x20, 0x20, 0x20, 0x2f, 0x20, 0x20, 0x5c, 0x20, 0x20, +0x20, 0x20, 0x73, 0x0a, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, +0x20, 0x20, 0x28, 0x20, 0x20, 0x20, 0x5f, 0x43, 0x5f, 0x5f, 0x5f, 0x5f, +0x5f, 0x29, 0x5c, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x2f, 0x20, 0x20, +0x2f, 0x2f, 0x20, 0x5f, 0x2f, 0x20, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, +0x5c, 0x20, 0x20, 0x20, 0x65, 0x0a, 0x78, 0x20, 0x20, 0x20, 0x20, 0x20, +0x7c, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x7c, 0x5f, 0x5f, 0x20, +0x20, 0x20, 0x5c, 0x5c, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, +0x5f, 0x2f, 0x2f, 0x20, 0x28, 0x5f, 0x5f, 0x2f, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x78, 0x0a, 0x2a, 0x20, 0x20, 0x20, +0x20, 0x7c, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x5f, 0x5f, 0x5f, +0x5f, 0x29, 0x20, 0x20, 0x20, 0x60, 0x2d, 0x2d, 0x2d, 0x2d, 0x20, 0x20, +0x20, 0x2d, 0x2d, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x2a, 0x0a, 0x67, 0x20, +0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x5c, 0x5f, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x5f, 0x5f, 0x5c, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x2f, 0x20, 0x7c, 0x20, 0x67, 0x0a, +0x6f, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x20, 0x20, 0x20, 0x20, +0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x5c, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, +0x6f, 0x0a, 0x61, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, +0x20, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x20, +0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x7c, 0x20, 0x61, 0x0a, 0x74, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x20, 0x2f, 0x20, 0x20, +0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x7c, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x7c, 0x74, 0x0a, 0x73, 0x20, 0x20, 0x20, 0x7c, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x20, 0x2f, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x5f, 0x5f, 0x2f, 0x5c, 0x5f, 0x5f, +0x5f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x73, 0x0a, 0x65, 0x20, 0x20, 0x7c, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, +0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x65, 0x0a, 0x78, 0x20, +0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, +0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x78, 0x0a, +0x2a, 0x20, 0x67, 0x20, 0x6f, 0x20, 0x61, 0x20, 0x74, 0x20, 0x73, 0x20, +0x65, 0x20, 0x78, 0x20, 0x2a, 0x20, 0x67, 0x20, 0x6f, 0x20, 0x61, 0x20, +0x74, 0x20, 0x73, 0x20, 0x65, 0x20, 0x78, 0x20, 0x2a, 0x20, 0x67, 0x20, +0x6f, 0x20, 0x61, 0x20, 0x74, 0x20, 0x73, 0x20, 0x65, 0x20, 0x78, 0x20, +0x2a, 0x0a, 0x0