fix Issue 9650 - __traits(compiles) + mixin

I couldn't minimize test case, but the bug fix is obvious.

The bug had been hiding for a long time, but recent Phobos change (https://github.com/D-Programming-Language/phobos/commit/2a88fea7867f33fd1cf15c2dca7790a3c8aea474) had exposed the bug.

When a mixin expression gets invalid code string, the parsing error had not handled correctly. In such case, it had generated *invalid* AST instead of returning ErrorExp. I guess that the invalid AST would report weird error in later semantic analysis.

I think that both CompileDeclaration and CompileStatement do not have same problem. So they are not changed.
Merge pull request #1728 from 9rnsr/fix9650

Issue 9650 - __traits(compiles) + mixin
Fix a buffer overrun on Linux/PPC64.

The buffer in realToMangleBuffer() is too small for longdouble values.
It produces strings like 0X1.599999999999999999999999998P+1 or
0X1.999999999999999999999999998P-4 which have a length of 34. This
results in an ICE e.g. in the unit test of std.range.
split libelf.c and libmach.c
Merge pull request #1792 from redstar/overrun

Fix a buffer overrun on Linux/PPC64.
Merge pull request #1791 from WalterBright/scan

split libelf.c and libmach.c
Merge pull request #1791 from WalterBright/scan

Original merge commit was:
https://github.com/D-Programming-Language/dmd/commit/fb27e49d5a48

But it was accidentally lost. This is an alternative commit for that.
Merge branch 'master' of github.com:D-Programming-Language/dmd