Use assembler-with-cpp mode when running CPP.
authorAustin Seipp <aseipp@pobox.com>
Mon, 17 Jun 2013 11:12:08 +0000 (06:12 -0500)
committerAustin Seipp <aseipp@pobox.com>
Wed, 19 Jun 2013 02:26:21 +0000 (21:26 -0500)
commit7b0695a887c13a431f898d89938e127faa3f4585
tree96ebd63f7473fc8de25c6c3d831993bd11d1e1dd
parent73991d61642a3a7dc1305bfac773ee3f59920d09
Use assembler-with-cpp mode when running CPP.

This is needed because Clang is very strict about C99 macro rules, which
dictate that '#' in a body must have a token immediately following it for
string-ification. In practice we break this all the time, because we do
very weird stuff like:

    #define FOOBAR(xyz) \
    {-# SOME PRAGMA #-} \
    baz :: (xyz) \
    baz = ...

where the leading '#' in in the macro body clearly breaks this rule.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
compiler/main/DriverPipeline.hs