# dmd.globals

Stores command line options and contains other miscellaneous declarations.

#### Authors

Walter Bright

#### License

Boost License 1.0

Source: globals.d

Documentation: https://dlang.org/phobos/dmd_globals.html

Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/globals.d

- `DiagnosticReporting`

  #### Declaration

  `enum `DiagnosticReporting`: ubyte;`

  Defines a setting for how compiler warnings and deprecations are handled

  - `error`

    #### Declaration

    ``error``

    generate an `error`

  - `inform`

    #### Declaration

    ``inform``

    generate a warning

  - `off`

    #### Declaration

    ``off``

    disable diagnostic

- `CHECKENABLE`

  #### Declaration

  `enum `CHECKENABLE`: ubyte;`

  In which context checks for assertions, contracts, bounds checks etc. are enabled

  - `_default`

    #### Declaration

    ``_default``

    initial value

  - `off`

    #### Declaration

    ``off``

    never do checking

  - `on`

    #### Declaration

    ``on``

    always do checking

  - `safeonly`

    #### Declaration

    ``safeonly``

    do checking only in @safe functions

- `CHECKACTION`

  #### Declaration

  `enum `CHECKACTION`: ubyte;`

  What should happend when an assertion fails

  - `D`

    #### Declaration

    ``D``

    call `D` assert on failure

  - `C`

    #### Declaration

    ``C``

    call `C` assert on failure

  - `halt`

    #### Declaration

    ``halt``

    cause program `halt` on failure

  - `context`

    #### Declaration

    ``context``

    call D assert with the error `context` on failure

- `JsonFieldFlags`

  #### Declaration

  `enum `JsonFieldFlags`: uint;`

  Each flag represents a field that can be included in the JSON output.

  NOTE: set type to uint so its size matches C++ unsigned type

- `CppStdRevision`

  #### Declaration

  `enum `CppStdRevision`: uint;`

  Version of C++ standard to support

- `FeatureState`

  #### Declaration

  `enum `FeatureState`: byte;`

  Trivalent boolean to represent the state of a `revert`able change

  - `default_`

    #### Declaration

    ``default_``

    Not specified by the user

  - `disabled`

    #### Declaration

    ``disabled``

    Specified as `-revert=`

  - `enabled`

    #### Declaration

    ``enabled``

    Specified as `-preview=`

- `Param`

  #### Declaration

  `struct `Param`;`

  Put command line switches in here

- `Global`

  #### Declaration

  `struct `Global`;`

  Collection of global compiler settings and global state used by the frontend

  - `inifilename`

    #### Declaration

    `const(char)[] `inifilename`;`

    filename of configuration file as given by `-conf=`, or default value

  - `path`

    #### Declaration

    `Array!(const(char)*)* `path`;`

    Array of char*'s which form the import lookup `path`

  - `filePath`

    #### Declaration

    `Array!(const(char)*)* `filePath`;`

    Array of char*'s which form the file import lookup path

  - `vendor`

    #### Declaration

    `const(char)[] `vendor`;`

    Compiler backend name

  - `params`

    #### Declaration

    `Param `params`;`

    command line parameters

  - `errors`

    #### Declaration

    `uint `errors`;`

    number of `errors` reported so far

  - `warnings`

    #### Declaration

    `uint `warnings`;`

    number of `warnings` reported so far

  - `gag`

    #### Declaration

    `uint `gag`;`

    !=0 means `gag` reporting of errors & warnings

  - `gaggedErrors`

    #### Declaration

    `uint `gaggedErrors`;`

    number of errors reported while gagged

  - `gaggedWarnings`

    #### Declaration

    `uint `gaggedWarnings`;`

    number of warnings reported while gagged

  - `console`

    #### Declaration

    `void* `console`;`

    opaque pointer to `console` for controlling text attributes

  - `versionids`

    #### Declaration

    `Array!Identifier* `versionids`;`

    command line versions and predefined versions

  - `debugids`

    #### Declaration

    `Array!Identifier* `debugids`;`

    command line debug versions and predefined versions

  - `hasMainFunction`

    #### Declaration

    `bool `hasMainFunction`;`

    Whether a main function has already been compiled in (for -main switch)

  - `varSequenceNumber`

    #### Declaration

    `uint `varSequenceNumber`;`

    Relative lifetime of `VarDeclaration` within a function, used for `scope` checks

  - `fileManager`

    #### Declaration

    `FileManager `fileManager`;`

    Cache files read from disk

  - `recursionLimit`

    #### Declaration

    `enum int `recursionLimit`;`

    number of recursive template expansions before abort

  - `errorSink`

    #### Declaration

    `ErrorSink `errorSink`;`

    where the error messages go

  - `startGagging`

    #### Declaration

    `nothrow uint `startGagging`();`

    Start ignoring compile errors instead of reporting them.

    #### Discussion

    Used for speculative compilation like `__traits(compiles, XXX)`, but also internally to e.g. try out an `alias this` rewrite without comitting to it.
    Works like a stack, so N calls to ``startGagging`` should be paired with N calls to `endGagging`.

    #### Return Value

    the current number of gagged errors, which should later be passed to `endGagging`

  - `endGagging`

    #### Declaration

    `nothrow bool `endGagging`(uint `oldGagged`);`

    Stop gagging, restoring the old gagged state before the most recent call to `startGagging`.

    #### Parameters

    `uint `oldGagged`` | the previous number of errors, as returned by `startGagging`

    #### Return Value

    `true` if errors occurred while gagged.

  - `increaseErrorCount`

    #### Declaration

    `nothrow void `increaseErrorCount`();`

    Increment the error count to record that an error has occurred in the current context.

    #### Discussion

    An error message may or may not have been printed.

  - `deinitialize`

    #### Declaration

    `nothrow void `deinitialize`();`

    Deinitializes the global state of the compiler.

    #### Discussion

    This can be used to restore the state set by `_init` to its original state.

  - `versionNumber`

    #### Declaration

    `nothrow uint `versionNumber`();`

    #### Return Value

    the version as the number that would be returned for __VERSION__

  - `versionString`

    #### Declaration

    `nothrow string `versionString`();`

    #### Return Value

    compiler version string.

  - `versionChars`

    #### Declaration

    `nothrow const(char*) `versionChars`();`

    #### Return Value

    compiler version as char string.

- `global`

  #### Declaration

  `Global `global`;`

  Collection of `global` state