commit c9cccba538e9870b1177ae4c57dad716e9f02185 Author: sin <s...@2f30.org> AuthorDate: Wed May 11 17:38:15 2016 +0100 Commit: Roberto E. Vargas Caballero <Roberto E. Vargas Caballero> CommitDate: Wed May 11 17:35:52 2016 +0200
Implement proper #pragma support diff --git a/cc1/cpp.c b/cc1/cpp.c index 2015b4e..2dc1b2c 100644 --- 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 new file mode 100644 index 0000000..cbd2f9b --- /dev/null +++ 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