ghc-9.4.2: The GHC API
Safe HaskellSafe-Inferred
LanguageHaskell2010

GHC.StgToCmm.TagCheck

Synopsis

Documentation

emitTagAssertion :: String -> CmmExpr -> FCode () Source #

Call barf if we failed to predict a tag correctly. This is immensly useful when debugging issues in tag inference as it will result in a program abort when we encounter an invalid call/heap object, rather than leaving it be and segfaulting arbitrary or producing invalid results. We check if either: * A tag is present * Or the object is a 25 (for which zero is the proper tag)

checkFunctionArgTags :: SDoc -> Id -> [Id] -> FCode () Source #

Check all arguments marked as already tagged for a function are tagged by inserting runtime checks.

checkConArgsStatic :: SDoc -> DataCon -> [StgArg] -> FCode () Source #

Check all required-tagged arguments of a constructor are tagged *at compile time*.