Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Alex D
GHC
Commits
40859045
Commit
40859045
authored
Apr 19, 2011
by
Ian Lynagh
Browse files
Don't generate a prototype for cas
I'm not sure if this is the best way to fix this, but it fixes the unreg build.
parent
2c2cb608
Changes
2
Hide whitespace changes
Inline
Side-by-side
compiler/cmm/CLabel.hs
View file @
40859045
...
...
@@ -101,7 +101,7 @@ module CLabel (
hasCAF
,
infoLblToEntryLbl
,
entryLblToInfoLbl
,
cvtToClosureLbl
,
cvtToSRTLbl
,
needsCDecl
,
isAsmTemp
,
maybeAsmTemp
,
externallyVisibleCLabel
,
isMathFun
,
isMathFun
,
isCas
,
isCFunctionLabel
,
isGcPtrLabel
,
labelDynamic
,
pprCLabel
...
...
@@ -590,9 +590,17 @@ maybeAsmTemp (AsmTempLabel uq) = Just uq
maybeAsmTemp
_
=
Nothing
-- | Check whether a label corresponds to our cas function.
-- We #include the prototype for this, so we need to avoid
-- generating out own C prototypes.
isCas
::
CLabel
->
Bool
isCas
(
CmmLabel
pkgId
fn
_
)
=
pkgId
==
rtsPackageId
&&
fn
==
fsLit
"cas"
isCas
_
=
False
-- | Check whether a label corresponds to a C function that has
-- a prototype in a system header somehere, or is built-in
-- to the C compiler. For these labels we a
bo
void generating our
-- to the C compiler. For these labels we avoid generating our
-- own C prototypes.
isMathFun
::
CLabel
->
Bool
isMathFun
(
ForeignLabel
fs
_
_
_
)
=
fs
`
elementOfUniqSet
`
math_funs
...
...
compiler/cmm/PprC.hs
View file @
40859045
...
...
@@ -248,7 +248,7 @@ pprStmt stmt = case stmt of
|
CmmNeverReturns
<-
ret
->
let
myCall
=
pprCall
(
pprCLabel
lbl
)
cconv
results
args
safety
in
(
real_fun_proto
lbl
,
myCall
)
|
not
(
isMathFun
lbl
)
->
|
not
(
isMathFun
lbl
||
isCas
lbl
)
->
let
myCall
=
braces
(
pprCFunType
(
char
'*'
<>
text
"ghcFunPtr"
)
cconv
results
args
<>
semi
$$
text
"ghcFunPtr"
<+>
equals
<+>
cast_fn
<>
semi
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment