Fixes #12504: Double-escape paths used to build call to hsc_line
authorRichard Cook <rcook@rcook.org>
Tue, 30 Aug 2016 21:00:36 +0000 (17:00 -0400)
committerBen Gamari <ben@smart-cactus.org>
Wed, 31 Aug 2016 17:15:18 +0000 (13:15 -0400)
commit2ee1db60ab29258fa9f8ab820f778bd0bb7f87a4
treecf4409c70f97c07d9d793d97ae934f640b60ca6d
parentef784c551ef9b64c3c0b32c73f54bbdb747a8188
Fixes #12504: Double-escape paths used to build call to hsc_line

In outHsLine, paths passed to construct invocations of hsc_line must be
escaped twice in order to generate a properly escaped string literal
that will end up in the eventual LINE pragma emitted by this code. This
is especially important on Windows paths, where backslashes would
otherwise be treated as C escape sequences and result in the incorrect
Windows paths.

Adds test case to verify that hsc2hs properly escapes file paths in LINE
pragmas

Updates the hsc2hs submodule.

See https://ghc.haskell.org/trac/ghc/ticket/12504

Reviewers: erikd, hvr, austin, bgamari, Phyx

Reviewed By: erikd, Phyx

Subscribers: thomie, Phyx, mpickering

Differential Revision: https://phabricator.haskell.org/D2478

GHC Trac Issues: #12504
testsuite/.gitignore
testsuite/tests/hsc2hs/Makefile
testsuite/tests/hsc2hs/T12504.stdout [new file with mode: 0644]
testsuite/tests/hsc2hs/T12504/path/to/T12504.hsc [new file with mode: 0644]
testsuite/tests/hsc2hs/all.T
utils/hsc2hs