When compiling viac, don't need to emit prototypes for symbols in the RTS
authorBen.Lippmeier@anu.edu.au <unknown>
Sat, 2 Jan 2010 09:29:57 +0000 (09:29 +0000)
committerBen.Lippmeier@anu.edu.au <unknown>
Sat, 2 Jan 2010 09:29:57 +0000 (09:29 +0000)
compiler/cmm/CLabel.hs

index 4fd0d3a..7c8fe85 100644 (file)
@@ -596,7 +596,15 @@ needsCDecl ModuleRegdLabel         = False
 needsCDecl (StringLitLabel _)          = False
 needsCDecl (AsmTempLabel _)            = False
 needsCDecl (RtsLabel _)                        = False
-needsCDecl (CmmLabel _ _ _)            = True
+
+needsCDecl (CmmLabel pkgId _ _)                
+       -- Prototypes for labels defined in the runtime system are imported
+       --      into HC files via includes/Stg.h.
+       | pkgId == rtsPackageId         = False
+       
+       -- For other labels we inline one into the HC file directly.
+       | otherwise                     = True
+
 needsCDecl l@(ForeignLabel{})          = not (isMathFun l)
 needsCDecl (CC_Label _)                        = True
 needsCDecl (CCS_Label _)               = True