diff options
author | Austin Seipp <aseipp@pobox.com> | 2013-06-17 05:36:29 -0500 |
---|---|---|
committer | Austin Seipp <aseipp@pobox.com> | 2013-06-17 05:54:33 -0500 |
commit | 5dc98a0d826c4b8ace006106cbb66f468d5fadd0 (patch) | |
tree | edbcaa1f40ef82bc8bc2a3c69018dc244fba9f4f | |
parent | 8f2f7a094deb8e77560697181636234f1590f485 (diff) | |
download | haskell-5dc98a0d826c4b8ace006106cbb66f468d5fadd0.tar.gz |
Work-around clang weirdness by adding a newline.
I really wish this were a joke, but alas...
This gets me a working stage1 compiler on Linux with Clang with no
modifications. Unfortunately it won't get much farther than that for
various other reasons.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
-rw-r--r-- | compiler/parser/Parser.y.pp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/compiler/parser/Parser.y.pp b/compiler/parser/Parser.y.pp index 34c0bc6901..483ed87591 100644 --- a/compiler/parser/Parser.y.pp +++ b/compiler/parser/Parser.y.pp @@ -26,8 +26,16 @@ throw away inlinings as it would normally do in -O0 mode. -- CPP tricks because we want the directives in the output of the -- first CPP pass. +-- +-- Clang note, 6/17/2013 by aseipp: It is *extremely* important (for +-- some reason) that there be a line of whitespace between the two +-- definitions here, and the subsequent use of __IF_GHC_77__ - this +-- seems to be a bug in clang or something, where having the line of +-- whitespace will make the preprocessor correctly format the rendered +-- lines in the 'two step' CPP pass. No, this is not a joke. #define __IF_GHC_77__ #if __GLASGOW_HASKELL__ >= 707 -#define __ENDIF__ #endif +#define __ENDIF__ #endif + __IF_GHC_77__ -- Required on x86 to avoid the register allocator running out of -- stack slots when compiling this module with -fPIC -dynamic. |