add pointers to the wiki for the rules about C prototypes
authorSimon Marlow <simonmar@microsoft.com>
Wed, 9 Apr 2008 20:41:43 +0000 (20:41 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Wed, 9 Apr 2008 20:41:43 +0000 (20:41 +0000)
compiler/cmm/CLabel.hs
compiler/cmm/PprC.hs
includes/StgMiscClosures.h

index a3c2634..f9a94b7 100644 (file)
@@ -446,6 +446,8 @@ entryLblToInfoLbl l = pprPanic "CLabel.entryLblToInfoLbl" (pprCLabel l)
 
 -- -----------------------------------------------------------------------------
 -- Does a CLabel need declaring before use or not?
+--
+-- See wiki:Commentary/Compiler/Backends/PprC#Prototypes
 
 needsCDecl :: CLabel -> Bool
   -- False <=> it's pre-declared; don't bother
@@ -463,10 +465,6 @@ needsCDecl ModuleRegdLabel         = False
 needsCDecl (StringLitLabel _)          = False
 needsCDecl (AsmTempLabel _)            = False
 needsCDecl (RtsLabel _)                        = False
-  -- RTS labels are declared in RTS header files.  Otherwise we'd need
-  -- to give types for each label reference in the RTS .cmm files
-  -- somehow; when generating .cmm code we know the types of labels (info, 
-  -- entry etc.) but for hand-written .cmm code we don't.
 needsCDecl l@(ForeignLabel _ _ _)      = not (isMathFun l)
 needsCDecl (CC_Label _)                        = True
 needsCDecl (CCS_Label _)               = True
index e46e0e7..8a2da23 100644 (file)
@@ -16,6 +16,8 @@
 --
 -- Print Cmm as real C, for -fvia-C
 --
+-- See wiki:Commentary/Compiler/Backends/PprC
+--
 -- This is simpler than the old PprAbsC, because Cmm is "macro-expanded"
 -- relative to the old AbstractC, and many oddities/decorations have
 -- disappeared from the data type.
@@ -206,6 +208,7 @@ pprStmt stmt = case stmt of
        where
         ppr_fn = parens (cCast (pprCFunType (char '*') cconv results args) fn)
 
+        -- See wiki:Commentary/Compiler/Backends/PprC#Prototypes
        maybe_proto = 
             case fn of
              CmmLit (CmmLabel lbl) | not (isMathFun lbl) -> 
index 756e2b6..10e4638 100644 (file)
@@ -8,6 +8,8 @@
  * our Cmm code generator doesn't know how to generate local symbols
  * for the RTS bits (it assumes all RTS symbols are external).
  *
+ * See wiki:Commentary/Compiler/Backends/PprC#Prototypes
+ *
  * --------------------------------------------------------------------------*/
 
 #ifndef STGMISCCLOSURES_H