commit c9cccba538e9870b1177ae4c57dad716e9f02185
parent 12ed188e75849215099d1f3dedb37717a42cbe44
Author: sin <sin@2f30.org>
Date: Wed, 11 May 2016 17:38:15 +0100
Implement proper #pragma support
Diffstat:
M | cc1/cpp.c | | | 6 | ++++++ |
A | cc1/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