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
General

Compiler-Dependent Configuration File Parameters

This section lists the parameters that can be set through a CodeSonar compiler template or project-compiler configuration file. Each parameter is listed with its default value in the general template (if any).

For a list of all parameter names on this page, see Contents: Compiler-Dependent Configuration File Parameters.

Specifies whether or not the char type is signed on the target platform.

Type { Yes, No }

Specifies whether or not a 'plain' int bit field is to be treated as unsigned.

Type { Yes, No }

Specifies the integer kind associated with wchar_t.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long}

Specifies the integer kind associated with wint_t.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long}

Specifies the integer kind associated with char16_t.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long}

Specifies the integer kind associated with char32_t.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long}

Specifies the integer kind associated with bool.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long}

Specifies the representation for ptrdiff_t: the result type of the pointer subtraction operator.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long}

Specifies the representation for size_t: the result type of the sizeof() function.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long}

Specifies the integer kind associated with the largest signed integer type. In C99, this is intmax_t.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long}

Specifies the integer kind associated with the largest unsigned integer type. In C99, this is uintmax_t.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long}

Specifies the size of a char, in bits.

Type integer

Specifies the size of a wchar_t entity, in bytes.

Type integer

Specifies the size of a char16_t entity, in bytes.

Type integer

Specifies the size of a char32_t entity, in bytes.

Type integer

Specifies the size of a short int, in bytes.

Type integer

Specifies the size of an int, in bytes.

Type integer

Specifies the size of a long int, in bytes.

Type integer

Specifies the size of a long long int, in bytes.

Type integer

Specifies the size of a pointer, in bytes.

Type integer

Specifies the size of a float, in bytes.

Type integer

Specifies the size of a double, in bytes.

Type integer

Specifies the size of a long double, in bytes.

Type integer

Specifies the size of a C++ pointer-to-data-member, in bytes.

Type integer

Specifies the size of a C++ pointer-to-member-function, in bytes.

Type integer

Specifies the size of a pointer to a C++ virtual function table, in bytes.

Type integer

Note Every object of class <C> has a pointer to the virtual function table for <C>.

Specifies the size of a C++ pointer-to-virtual-base-class, in bytes.

Type integer

Specifies the alignment of a short int, in bytes.

Type integer

Specifies the alignment of an int, in bytes.

Type integer

Specifies the alignment of a long int, in bytes.

Type integer

Specifies the alignment of a long long int, in bytes.

Type integer

Specifies the alignment of a pointer, in bytes.

Type integer

Specifies the alignment of a float, in bytes.

Type integer

Specifies the alignment of a double, in bytes.

Type integer

Specifies the alignment of a long double, in bytes.

Type integer

Specifies the alignment of a C++ pointer-to-data-member, in bytes.

Type integer

Specifies the alignment of a C++ pointer-to-member-function, in bytes.

Type integer

Specifies the alignment of a virtual-function-info entity, in bytes.

Type integer

Specifies the alignment of a C++ pointer-to-virtual-base-class, in bytes.

Type integer

Specifies the minimum alignment (in bytes) for objects of class, struct, and union type.

Type integer

Specifies the minimum value permitted for a 'pack alignment'.

Type integer

Specifies the maximum value permitted for a 'pack alignment'.

Type integer
Notes Parameter

The maximum value permitted for an alignment.

Type integer

Specifies the default alignment for fields of type short. This could be different from the intrinsic alignment of short.

Type integer

Specifies the default alignment for fields of type int. This could be different from the intrinsic alignment of int.

Type integer

Specifies the default alignment for fields of type long. This could be different from the intrinsic alignment of long.

Type integer

Specifies the default alignment for fields of type long long. This could be different from the intrinsic alignment of long long.

Type integer

Specifies the default alignment for fields of type float. This could be different from the intrinsic alignment of float.

Type integer

Specifies the default alignment for fields of type double. This could be different from the intrinsic alignment of double.

Type integer

Specifies the default alignment for fields of type long double. This could be different from the intrinsic alignment of long double.

Type integer

Specifies the container size to be used for bit-fields.

Type integer
Behavior If > 0, indicates the size in bytes of one of the integral types.

0 means 'use the smallest integral type into which the field will fit'.

< 0 means 'use the base type given in the declaration.

Specifies whether or not bit-field allocation follows the conventions of Microsoft C/C++.

Type { Yes, No }
Behavior When Yes, bit-field allocation follows the conventions of Microsoft C/C++.
Notes The value of CS_TARG_BIT_FIELD_CONTAINER_SIZE must be -1 and there is a two-stage allocation: first a bit-field container based on the bit-field type is allocated (as though it were a field in its own right), then bit fields are allocated within it. When the bit-field type changes or the container fills up, a new container is allocated.

Specifies how to treat a 'plain' int bit field of length 1.

Type { Yes, No }
Behavior If Yes, treat a 'plain' int bit field of length 1 as unsigned regardless of the setting of CS_TARG_PLAIN_INT_BIT_FIELD_IS_UNSIGNED (because a bit field consisting of only a sign is not very useful).

Specifies signedness for enum bit fields (an extension in C).

Type { Yes, No }
Behavior
  • Yes : enum bit fields are always unsigned.
Notes This parameter must be set to No to allow fully-standard C++.

Specifies signedness for enum bit fields whose enum types have enumerators that could all fit in the nonnegative range of the bit field if it were signed.

Type { Yes, No }
Behavior
  • Yes : enum bit fields are unsigned in the case where their enum types have enumerators that could all fit in the nonnegative range of the bit field if it were signed.
  • No : these enum bit fields are signed.
Notes This setting is ignored if CS_TARG_ENUM_BIT_FIELDS_ARE_ALWAYS_UNSIGNED is set to "Yes".

Specifies the alignment adjustment to be made when a zero-width (unnamed) bit field is declared.

Type integer
Behavior If > 0 it is the alignment to be used (typically the alignment of one of the integral types, in which case the value should be cast to a_targ_alignment).

If zero, means 'use the minimal alignment', which is single-byte alignment.

If < 0, means 'use the alignment of the base type given in the declaration'.

Specifies whether or not the alignment adjustment when a zero-width (unnamed) bit-field is declared affects the overall alignment of the struct as well as the alignment of the next field.

Type { Yes, No }

Specifies whether or not the alignment adjustment when an unnamed bit-field is declared affects the overall alignment of the struct as well as the alignment of the next field.

Type { Yes, No }

Specifies whether or not '#pragma pack(n)' and the command-line option '--pack_alignment=n' affect the alignment of bit field containers (when bit fields straddle container alignment boundaries).

Type { Yes, No }

Specifies whether or not fields longer than their base types are padded out to the full declared length.

Type { Yes, No }
Behavior
  • Yes : bit fields longer than their base types are padded out to the full declared length.
  • No : only as many bits are allocated as are in the base type.
In either case, the bit field itself has the same number of bits; the extra bits are padding bits.

Specifies the limit of the representation of size_t constants; the range it defines can be equal to or smaller than the integer size implied by size_t_int_kind.

Type integer or "default"
Behavior When "default", the value used will be computed based on the range covered by CS_TARG_SIZE_T_INT_KIND

Specifies whether or not enum types can be allocated in integral types smaller than int.

Type { Yes, No }
Behavior
  • Yes : enum types will be allocated in the smallest integral type in which they will fit.
  • No : enum types will be allocated in ints.

Specifies whether or not enum types can be allocated in integral types larger than int.

Type { Yes, No }
Behavior
  • Yes : an enumerator type can be based on an integer type that is larger than an int.
  • No : an enumerator type can not be based on an integer type that is larger than an int.

Specifies whether or not a right shift on a signed quantity does sign extension.

Type { Yes, No }

Specifies whether or not a shift with a too-large shift count is treated as if the shift count is reduced modulo the bit size of the object.

Type { Yes, No }

Integer kind used for the size of a vtable entry in the IA-64 ABI.

Type {char, signed_char, unsigned_char, short, unsigned_short, int, unsigned_int, long, unsigned_long, long_long, unsigned_long_long, default}
 

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