JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.

If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.

If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.

CodeSonar® 9.2p0 CONFIDENTIAL CodeSecure Inc
C and C++


The ecomppc Compiler Model



Overview

Unlike the other compilers modeled by CodeSonar, ecomppc is not a compiler driver and is not called directly.

Compiler
model
Modeled native compiler Source file extensions Description
ecomppc ecomppc .c, .i, .C, .cc, .cpp, .cxx Green Hills Internal Compiler.

Source file extensions indicate the source language. An extension of c or i indicates the C language; the other extensions indicate C++.

Availability

Platform Availability The ecomppc compiler model is available for all platforms.
Default Recognition/Handling By default, compilations are recognized and handled as follows.
Platform Native Compiler Model Used
All ecom68(.exe) ecomppc
All ecom800(.exe) ecomppc
All ecom86(.exe) ecomppc
All ecomarm(.exe) ecomppc
All ecommip(.exe) ecomppc
All ecomppc(.exe) ecomppc
All ecomx86(.exe) ecomppc
Specifying Additional Mappings If your compiler executable has a different name, specify a corresponding COMPILER_MODELS rule to map your executable name to the ecomppc model.

For full details of all native compilers recognized by CodeSonar by default, see section Compilers Recognized by CodeSonar.

Options

The native ecomppc compiler should never be called directly. Instead, call gbuild, ccppc (a Green Hills compiler driver), or use MULTI, which will take care of translating the command line options.
We discuss the handling of command line options to ecomppc here for the sake of completeness. Unless otherwise noted, options are passed to the native compiler invocation.

Option Additional Treatment in Model
@file Extracts the options specified in file and appends them to the modeled command line. This option is not passed through to the front end or to the native compiler invocation.
-A Specifies front end option --strict, models compilation in C mode.
-a Passed to native compiler invocation, no additional handling in model.
-act_like=arg Passed to native compiler invocation, no additional handling in model.
-bsc=arg Passed to native compiler invocation, no additional handling in model.
-bsl=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
-bsp arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--c Specifies front end option --c, models compilation in C mode.
--c11 Specifies front end option --c11, models compilation in C mode.
--c89 Specifies front end option --c89, models compilation in C mode.
--c99 Specifies front end option --c99, models compilation in C mode.
--c_and_cpp_functions_are_distinct Passed to native compiler invocation, no additional handling in model.
--check=arg Passed to native compiler invocation, no additional handling in model.
--coding_standard=arg
--coding_standard arg
Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--config arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
-cpu=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--create_fp Passed to native compiler invocation, no additional handling in model.
--cxx_include_directory arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
-D macro
-Dmacro
Specifies front end option -D macro.
  • Macros __LANGUAGE_ASM and __LANGUAGE_ASM__ are special cases: CodeSonar will ignore the compilation and will not generate any corresponding internal representation.
-Dmacro=defn
-D macro=defn
Specifies front end option -D macro=defn.
--dwarf2 Passed to native compiler invocation, no additional handling in model.
-E Passed to native compiler invocation. No additional handling in model.
--embedded_c Specifies front end option --embedded_c, models compilation in C mode.
--errmax=num Passed to native compiler invocation if num starts with one or more decimal digits, otherwise ignored. No additional handling in model.
-g Passed to native compiler invocation, no additional handling in model.
--gcc Specifies front end option --gcc, models compilation in C mode.
--gh_md=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--gh_oname=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--gh_outbin=file
--gh_outbin file
file will be treated as an object file. This option is not passed through to the front end or to the native compiler invocation.
--gh_out arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--ghs_xref=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
-globalreg=num Passed to native compiler invocation if num starts with one or more decimal digits, otherwise ignored. No additional handling in model.
--gnu=arg Handling depends on arg as follows.
arg Treatment in model
safe Specifies front end option --no_compound_literals, unless there is a subsequent occurrence of --gnu=full.

If compilation mode is C++ also specifies front end option --g++, otherwise specifies --gcc.

full If compilation mode is C++ specifies front end option --g++, otherwise specifies --gcc.
none Passed to native compiler invocation, no additional handling in model.
otherwise no handling in model
--graph_prof Passed to native compiler invocation, no additional handling in model.
-I- For all occurrences of -Idir before before -I-, dir is searched only for include files specified with #include "fname" (not #include <fname>).
-Iarg
-I arg
Specifies front end option -Iarg.
-ident=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--ii_file arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--include=fname
--include fname
Specifies front end option --preinclude fname.
--include_once Passed to native compiler invocation, no additional handling in model.
--include_never Passed to native compiler invocation, no additional handling in model.
--inline_file arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--inlining Passed to native compiler invocation, no additional handling in model.
-K Specifies front end option --old_c, models compilation in C mode.
-M Passed to native compiler invocation. No additional handling in model.
-maxcomplexity=num Passed to native compiler invocation if num starts with one or more decimal digits, otherwise ignored. No additional handling in model.
--max_inlining Passed to native compiler invocation, no additional handling in model.
--misra_suff All options of this form are passed to native compiler invocation if the suffix suff contains at least one character, otherwise ignored. No additional handling in model.
-n Passed to native compiler invocation. No additional handling in model.
-nm_util=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--no_c_and_cpp_functions_are_distinct Passed to native compiler invocation, no additional handling in model.
--no_inlining Passed to native compiler invocation, no additional handling in model.
--no_include_once Passed to native compiler invocation, no additional handling in model.
--no_include_never Passed to native compiler invocation, no additional handling in model.
--no_unsafe_predefines Passed to native compiler invocation, no additional handling in model.
-OL Passed to native compiler invocation. No additional handling in model.
-OLM
-OLMsuff
All options of this form are passed to native compiler invocation. No additional handling in model.
-OM Passed to native compiler invocation. No additional handling in model.
-OMS
-OMSsuff
All options of this form are passed to native compiler invocation. No additional handling in model.
-option=-num
-option=num
Passed to native compiler invocation if num starts with one or more decimal digits, otherwise ignored. No additional handling in model.
-OS Passed to native compiler invocation. No additional handling in model.
-P Passed to native compiler invocation. No additional handling in model.
-p Passed to native compiler invocation. No additional handling in model.
-pg Passed to native compiler invocation. No additional handling in model.
--pragma_diag_level=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--procinfo Passed to native compiler invocation, no additional handling in model.
--QI arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--QL arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--runtime_uses_namespaces Passed to native compiler invocation, no additional handling in model.
--saferc=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--saferc_adv=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--saferc_is_misra_2004 Passed to native compiler invocation, no additional handling in model.
--saferc_req=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
-sda=num Passed to native compiler invocation if num starts with one or more decimal digits, otherwise ignored. No additional handling in model.
-STD Does not specify front end option --cs_static_assert (always specified otherwise).
--svr4 Specifies front end option --svr4, models compilation in C mode.
-sym=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
--sys_include arg Specifies front end option --sys_include arg.
--sys_cxx_include_directory arg Specifies front end option --sys_include arg in C++ mode.
-T Passed to native compiler invocation. No additional handling in model.
--template_info_file arg Passed to native compiler invocation, no additional handling in model.
--this_inline_file arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
-U macro
-Umacro
Specifies front end option -U macro.
--unsafe_predefines Passed to native compiler invocation, no additional handling in model.
--upc Specifies front end option --upc, models compilation in C mode.
-Xsuff All options of this form are passed to native compiler invocation if the suffix suff contains at least one character, otherwise ignored. No additional handling in model.
-Znum Passed to native compiler invocation if num starts with one or more decimal digits, otherwise ignored. No additional handling in model.
--zda=arg Passed to native compiler invocation if arg is nonempty, otherwise ignored. No additional handling in model.
other options recognized by EDG Options that are recognized by EDG but do not have individual entries in this table are passed both to the front end and to the native compiler invocation.

Compilation Mode

The compilation mode is the mode in which the ecomppc compiler model is invoked, and controls some of the front end options specified by the model. Compilation mode depends on the modeled build command as follows.

No CodeSonar Build

If any of the following are specified, CodeSonar will ignore the compilation and will not generate any corresponding internal representation. If a CodeSonar project is based only on ignored compilations, it will have no contents and so will not be finalized.

Macros and Front End Options

The ecomppc compiler model attempts to invoke the modeled native compiler to obtain its predefined macros. If successful, all of these macro definitions are passed to the compiler model except for the following.

The following table lists the front end options specified by the model.

Front End Options
Conditionally Specified
--c if --c is specified.
--c11 if --c11 is specified.
--c89 if --c89 is specified.
--c99 if --c99 is specified.
--cs_static_assert unless --STD is specified
-D macro if -D macro is specified and macro is not __LANGUAGE_ASM or __LANGUAGE_ASM__.
-D macro=defn if -D macro=defn is specified and macro is not __LANGUAGE_ASM or __LANGUAGE_ASM__.
--embedded_c if --embedded_c is specified.
--g++ if any of the following are specified
--gcc if any of the following are specified
--no_compound_literals if any of the following are specified
--old_c if -K or --old_c is specified.
--preinclude fname if --include fname or --preinclude fname is specified.
--strict if -A or --strict is specified.
--svr4 if --svr4 is specified.
--upc if --upc is specified.
other EDG options Command options that are recognized by EDG but do not have individual entries in the options table above are passed through to the front end.
 

To report problems with this documentation, please visit https://support.codesecure.com/.