GoblintCil.FeatureSourceExtending CIL with external features
type t = {mutable fd_enabled : bool;The enable flag. Set to default value
*)fd_name : string;This is used to construct an option "--doxxx" and "--dontxxx" that enable and disable the feature
*)fd_description : string;A longer name that can be used to document the new options
*)fd_extraopt : (string * Arg.spec * string) list;Additional command line options. The description strings should usually start with a space for Arg.align to print the --help nicely.
*)fd_doit : Cil.file -> unit;This performs the transformation
*)fd_post_check : bool;Whether to perform a CIL consistency checking after this stage, if checking is enabled (--check is passed to cilly). Set this to true if your feature makes any changes for the program.
*)}Description of a CIL feature.
Check if a given feature is registered.
Find a feature by name. Raise Not_found if the feature is not registered.
Enable a given feature, by name. Raise Errormsg.Error if the feature is not registered.
Check if a given feature is enabled. Return false if the feature is not registered.
Initialize the module. This needs to be called before loadWithDeps is used. Called automatically by loadFromArgv.
Find and dynamically links a module. The name should be either a path to a cmo, cma or cmxs file, or the name of a findlib package. In the latter case, package dependencies are loaded automatically. Each file is loaded at most one. The loaded module must call register to make its features available to CIL.
loadFromEnv name default loads coma-separated module names stored in the environment variable name, or default if it is not defined.