ghc-9.10.0.20240426: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.StgToCmm.TagCheck

Synopsis

Documentation

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

Call barf if we failed to predict a tag correctly. This is immensely 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 cbv for the presence of a tag *at runtime*.

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

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