tcpplus(1)

NAME

tcpplus - C++ to TDF/ANDF producer

SYNOPSIS

tcpplus [options] [input-file] [output-file]

DESCRIPTION

In its default action, tcpplus translates the input C++ source file, input-file, into a TDF/ANDF capsule, output-file. If the output file name is omitted or is -, the standard output is used. If the input file name is omitted or is -, the standard input is used.

By use of the -sspec-file option, tcpplus can additionally be made to output a C++ spec file which contains information enabling intermodule analysis to be performed. Alternatively usage and error information suitable for processing by other tools can be output using the -dopt=dump-file option.

tcpplus also has a preprocessing action, when invoked with the -E option, in which the input C++ source file, input-file, is preprocessed to an output file, ouput-file.

Finally tcpplus has a spec linker action, when invoked with the -S option, in which any number of spec input files, input-file, are combined into a spec output file, which may be specified using the -s option. Any extra code generation resulting from this linking phase is written to the TDF capsule, output-file.

It is recommended that tcpplus is invoked via tcc(1). The -Yc++ option is required to enable the C++ capabilities. Files with a .C suffix are recognised as C++ source files. Options can be passed directly to tcpplus using the -Wx,opt option to tcc.

OPTIONS

The command-line options can appear in any order and can be interspersed with the input and output files. All the multi-part options can be given either as one or two command-line arguments, so that -Idir and -Idir are equivalent. Most of the option handling required is handled by tcc(1) when this is being used, but options may be passed directly to tcpplus using the -Wx,opt option.

-Apredicate(tokens)
    Asserts that the given predicate is true. The special case -A- undefines all the built-in predicates (of which there are none).

-Dmacro
    Defines the given macro to be 1.

-Dmacro=tokens
    Defines the given macro to be the given sequence of preprocessing tokens.

-E  Enables preprocessing mode in which the input C++ source file is preprocessed into the output file.

-Ffile
    Causes a list of options to be read from file.

-H  Enables verbose inclusion mode in which warnings are printed at the start and the end of each included source file.

-Idirectory
    Adds the given directory to the list searched by tcpplus for included source files. No such directories are built into tcpplus.

-M  To be documented.

-Nname:directory
    Is identical to -Idirectory except that it also associates the given identifier with the directory.

-O  To be documented.

-q  Causes tcpplus to quit immediately without processing its input file. This is useful primarily in version and option queries.

-R  To be documented.

-S  Enables spec linker mode in which any number of C++ spec input files are linked into a single C++ spec output file.

-Umacro
    Undefines the given macro. The special case -U- undefines all the built-in macros. These are __FILE__, __LINE__, __TIME__, __DATE__, __STDC__, __STDC_VERSION__, and __cplusplus.

-V  Causes tcpplus to print its version number.

-Woption
    Causes tcpplus to print a warning in the circumstances described by option. The special case -Wall enables a wide range of warnings.

-X  Disables exception handling. The current implementation can be a large run-time overhead if not required. The effect of linking any module compiled with this option with a module which throws an exception is undefined. This is equivalent to -j-e.

-Znumber
    Sets the maximum number of errors printed by tcpplus before bailing out to be number. The default is 32.

-a  Causes tcpplus to apply complete program analysis to its input files. That is it assumes that no other translation units need to be linked in order for the program to execute.

-b  To be documented.

-c  Disables TDF output. The output file will still be a valid TDF capsule, only it will contain no information. This is equivalent to -j-c.

-dopt=dump-file
    Causes tcpplus to dump information about its input file into dump-file. opt is a series of characters describing the information to be dumped; c for string literals, e for errors, h for header files, k for keywords, l for local variables, m for macros, s for scopes, and u for usage. a is equivalent to ehlmu.

-efile
    Specifies the given file as an end-up file. This is equivalent to adding a #include directive for this file at the end of the input source file.

-ffile
    Specifies the given file as a start-up file. This is equivalent to adding a #include directive for this file at the start of the input source file.

-g  Specifies that the output TDF capsule should also contain information to allow for the generation of run-time debugging directives. This is equivalent to -jg.

-h  Causes tcpplus to print a full list of its available command-line options. This includes a number not documented here which are unlikely to prove useful to the normal user.

-iopt
    Print dependency information usable for make(1). Passing -iM causes all headers to be printed, passing -iMM causes only those headers between double quotes to be printed. The default suffix for object files is .o and can be overridden with -iOext.

-jopt
    Sets the TDF output options given by opt.

-mopt
    Sets the error formatting options given by opt.

-nport-table
    Specifies that the given portability table should be used to specify the basic configuration parameters.

-ooutput-file
    Gives an alternative method of specifying the output file.

-r  To be documented.

-sspec-file
    Causes tcpplus to write a C++ spec file describing the input source file to spec-file.

-t  Specifies that tcpplus should include token declarations in its output TDF capsule. While these are strictly unnecessary, they help when pretty-printing the output. This is equivalent to -jt.

-u name ... name
    Causes tcpplus to print the unmangle forms of the given mangled identifier names.

-v  Causes tcpplus to print the name of each function to the standard output as it is compiled.

-w  Disables all warning messages. This is equivalent to -mw.

-x  To be documented.

-z  Forces tcpplus to produce an output file even if compilation errors occur. The effect of installing a TDF capsule produced using this option is undefined. This is equivalent to -mz.

SEE ALSO

tcc(1), tdfc2(1).