summaryrefslogtreecommitdiff
path: root/compiler/deSugar
diff options
context:
space:
mode:
authorTamar Christina <tamar@zhox.com>2018-02-19 22:13:46 -0500
committerBen Gamari <ben@smart-cactus.org>2018-02-19 23:02:10 -0500
commiteb2daa2b6a83412382aa0fcda598f8b3d40fde2c (patch)
treef38d8e287b7b5132cc456ebe0e2c73b47bf438b3 /compiler/deSugar
parent71294f30fa20ea9c4653f76da20a5f8170ee415b (diff)
downloadhaskell-eb2daa2b6a83412382aa0fcda598f8b3d40fde2c.tar.gz
Change how includes for input file directory works
GHC Used to only allow for one include mode, namely `-I`. The problem with `-I` includes is that it supercedes all other includes, including the system include paths. This is not a problem for paths requested by the user, but it is a problem for the ones we implicitly derive and add. In particular we add the source directory of the input file to the include path. This is problematic because it causes any file with the name of a system include, to inadvertently loop as the wrong file gets included. Since this is an implicitly include, and as far as I can tell, only done so local includes are found (as the sources given to GCC reside in a temp folder) then switch from `-I` to `-iquote`. This requires a submodule update for haddock Test Plan: ./validate Reviewers: austin, bgamari, hvr Reviewed By: bgamari Subscribers: carter, rwbarton, thomie GHC Trac Issues: #14312 Differential Revision: https://phabricator.haskell.org/D4080
Diffstat (limited to 'compiler/deSugar')
-rw-r--r--compiler/deSugar/DsForeign.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/deSugar/DsForeign.hs b/compiler/deSugar/DsForeign.hs
index 492d353cc0..a23c51b943 100644
--- a/compiler/deSugar/DsForeign.hs
+++ b/compiler/deSugar/DsForeign.hs
@@ -229,7 +229,8 @@ dsFCall fn_id co fcall mDeclHeader = do
CApiConv safety)
c = includes
$$ fun_proto <+> braces (cRet <> semi)
- includes = vcat [ text "#include <" <> ftext h <> text ">"
+ includes = vcat [ text "#include \"" <> ftext h
+ <> text "\""
| Header _ h <- nub headers ]
fun_proto = cResType <+> pprCconv <+> ppr wrapperName <> parens argTypes
cRet