dmd.glue

Generate the object file for function declarations and critical sections.

Discussion

generateCodeAndWrite() is the only function seen by the front end.

Authors

Walter Bright

Source: glue.d

  • Declaration

    void generateCodeAndWrite(Module[] modules, const(char)*[] libmodules, const(char)[] libname, const(char)[] objdir, bool writeLibrary, bool obj, bool oneobj, bool multiobj, bool verbose);

    Generate code for modules and write objects/libraries

    Parameters

    Module[] modules

    array of Modules to generate code for

    const(char)*[] libmodules

    array of objects/libraries already generated (passed on command line)

    const(char)[] libname

    {.lib,.a} file output name

    const(char)[] objdir

    directory to write object files to

    bool writeLibrary

    write library file instead of object file(s)

    bool obj

    generate object files

    bool oneobj

    write one object file instead of multiple ones

    bool multiobj

    break one object file into multiple ones

    bool verbose

    print progress message when generatig code

  • Declaration

    Symbol* bzeroSymbol;

    common location for immutable zeros

  • Declaration

    void obj_append(Dsymbol s);

    Append s to list of object files to generate later. Only happens with multiobj.

  • Declaration

    tym_t totym(Type tx);

    Return back end type corresponding to D front end type.

  • Declaration

    Symbol* getBzeroSymbol();

    Generate readonly symbol that consists of a bunch of zeros. Immutable Symbol instances can be mapped over it. Only one is generated per object file.

    Return Value

    bzero symbol