## type-check-control.api
# Compiled by:
#
src/lib/c-kit/src/variants/ckit-config.sublibapi Typecheckcontrol {
# These flags are used in type-util.pkg:
#
don't_convert_short_to_int: Bool;
/* In ANSI C, usual unary converstion converts
SHORT to INT; for DSP code, we want to
keep SHORT as SHORT.
Default: TRUE for ANSI C behavior */
don't_convert_double_in_usual_unary_cnv: Bool;
/* In ANSI, FLOAT is not converted to DOUBLE during
usual unary converstion; in old style compilers
FLOAT *is* converted to DOUBLE.
Default: TRUE for ANSI behavior */
enumeration_incompatibility: Bool;
/* ANSI says that different enumerations are incomptible
(although all are compatible with int);
older style compilers say that different enumerations
are compatible.
Default: TRUE for ANSI behavior */
pointer_compatibility_quals: Bool;
/* ANSI says that pointers to differently qualified types
are different; some compilers vary.
Default: TRUE for ANSI behavior */
# used in build-ast.pkg
undeclared_id_error: Bool;
/* In ANSI C, an undeclared id is an error;
in older versions of C, undeclared ids are assumed integer.
Default value: TRUE (for ANSI behavior) */
undeclared_fun_error: Bool;
/* In ANSI C, an undeclared fun is an error;
in older versions of C, undeclared funs are assumed to return integer.
Default value: TRUE (for ANSI behavior) */
convert_function_args_to_pointers: Bool;
/* In ANSI C, arguments of functions goverened by prototype
definitions that have type function or array are not
promoted to pointer type; however many compilers do this
promotion.
Default value: TRUE (to get standard behavior) */
storage_size_check: Bool;
/* Declarations and package fields must have known storage
size; maybe you want to turn this check off?
Default value: TRUE (to get ANSI behavior). */
allow_non_constant_local_initializer_lists: Bool;
/* Allow non constant local initializers for aggregates and unions.
e.g. int x, y, z;
int a[] = { x, y, z };
This is allowed gcc */
perform_type_checking: Bool;
/* TRUE = do type checking; FALSE = disable type checking;
Note: with type checking off, there is still some
rudimentary type processing, but no
usual unary conversions, usual binary conversions, etc. */
# used by sizeof
iso_bitfield_restrictions: Bool;
/* In ANSI/ISO, types of bitfields must be qualified or unqualified version of
int, unsigned int or signed int (ISO spec, section 6.5.2.1, p60);
however most compilers allow chars, shorts and longs as well.
Default value: FALSE (to get std permissive behavior) */
allow_enum_bitfields: Bool;
/* Allow bitfields involving enum
e.g. enum x y: 8;
Default value: TRUE (permissive behavior e.g. gcc) */
partial_enum_error: Bool;
/* Prohibit partial enums.
i.e. enum x *y;
enum x { a, b, c };
Default value: FALSE.
(set to TRUE to get strict behaviour)
*/
partial_enums_have_unknown_size: Bool;
/* Treat partial enums as having unknown size.
e.g.
enum x y;
enum x { a, b, c };
Default value: FALSE.
*/
};