PreviousUpNext

15.3.78  src/lib/c-kit/src/variants/type-check-control.api

## type-check-control.api

# Compiled by:
#     src/lib/c-kit/src/variants/ckit-config.sublib

api 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.
                   */
};




Comments and suggestions to: bugs@mythryl.org

PreviousUpNext