X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fparser%2FRdrHsSyn.lhs;h=c1c5972b6f7eb9f788a29d3ef229b0b9b26e7e52;hp=3ca1b29bf34fd2250b2a3665d417244dec272a9a;hb=a4005d2d0c18ffa72ba7bd0fa052666e70e8c16e;hpb=71aa4a4723e95b4f27fccf93dcc0a33000010974 diff --git a/compiler/parser/RdrHsSyn.lhs b/compiler/parser/RdrHsSyn.lhs index 3ca1b29..c1c5972 100644 --- a/compiler/parser/RdrHsSyn.lhs +++ b/compiler/parser/RdrHsSyn.lhs @@ -64,7 +64,7 @@ import BasicTypes ( maxPrecedence, Activation, RuleMatchInfo, alwaysInlineSpec, neverInlineSpec ) import Lexer ( P, failSpanMsgP, extension, standaloneDerivingEnabled, bangPatEnabled ) import TysWiredIn ( unitTyCon ) -import ForeignCall ( CCallConv, Safety, CCallTarget(..), CExportSpec(..), +import ForeignCall ( CCallConv(..), Safety, CCallTarget(..), CExportSpec(..), DNCallSpec(..), DNKind(..), CLabelString ) import OccName ( srcDataName, varName, isDataOcc, isTcOcc, occNameString ) @@ -957,6 +957,11 @@ mkImport :: CallConv -> Safety -> (Located FastString, Located RdrName, LHsType RdrName) -> P (HsDecl RdrName) +mkImport (CCall cconv) safety (entity, v, ty) + | cconv == PrimCallConv = do + let funcTarget = CFunction (StaticTarget (unLoc entity)) + importSpec = CImport PrimCallConv safety nilFS nilFS funcTarget + return (ForD (ForeignImport v ty importSpec)) mkImport (CCall cconv) safety (entity, v, ty) = do importSpec <- parseCImport entity cconv safety v return (ForD (ForeignImport v ty importSpec))