SCM Repository
Annotation of /sml/trunk/ckit/src/variants/type-check-control-sig.sml
Parent Directory
|
Revision Log
Revision 597 - (view) (download)
1 : | dbm | 597 | signature TYPECHECKCONTROL = |
2 : | sig | ||
3 : | |||
4 : | (* these flags are used in type-util.sml *) | ||
5 : | val don't_convert_SHORT_to_INT: bool | ||
6 : | (* In ANSI C, usual unary converstion converts | ||
7 : | SHORT to INT; for DSP code, we want to | ||
8 : | keep SHORT as SHORT. | ||
9 : | Default: true for ANSI C behavior *) | ||
10 : | |||
11 : | val don't_convert_DOUBLE_in_usual_unary_cnv: bool | ||
12 : | (* In ANSI, FLOAT is not converted to DOUBLE during | ||
13 : | usual unary converstion; in old style compilers | ||
14 : | FLOAT *is* converted to DOUBLE. | ||
15 : | Default: true for ANSI behavior *) | ||
16 : | |||
17 : | val enumeration_incompatibility: bool | ||
18 : | (* ANSI says that different enumerations are incomptible | ||
19 : | (although all are compatible with int); | ||
20 : | older style compilers say that different enumerations | ||
21 : | are compatible. | ||
22 : | Default: true for ANSI behavior *) | ||
23 : | |||
24 : | val pointer_compatibility_quals: bool | ||
25 : | (* ANSI says that pointers to differently qualified types | ||
26 : | are different; some compilers vary. | ||
27 : | Default: true for ANSI behavior *) | ||
28 : | |||
29 : | (* used in build-ast.sml *) | ||
30 : | val undeclared_id_error:bool | ||
31 : | (* In ANSI C, an undeclared id is an error; | ||
32 : | in older versions of C, undeclared ids are assumed integer. | ||
33 : | Default value: true (for ANSI behavior) *) | ||
34 : | |||
35 : | val undeclared_fun_error:bool | ||
36 : | (* In ANSI C, an undeclared fun is an error; | ||
37 : | in older versions of C, undeclared funs are assumed to return integer. | ||
38 : | Default value: true (for ANSI behavior) *) | ||
39 : | |||
40 : | val convert_function_args_to_pointers:bool | ||
41 : | (* In ANSI C, arguments of functions goverened by prototype | ||
42 : | definitions that have type function or array are not | ||
43 : | promoted to pointer type; however many compilers do this | ||
44 : | promotion. | ||
45 : | Default value: true (to get standard behavior) *) | ||
46 : | |||
47 : | val storage_size_check:bool | ||
48 : | (* Declarations and structure fields must have known storage | ||
49 : | size; maybe you want to turn this check off? | ||
50 : | Default value: true (to get ANSI behavior). *) | ||
51 : | |||
52 : | val allow_non_constant_local_initializer_lists: bool | ||
53 : | (* Allow non constant local inializers for aggregates and unions. | ||
54 : | e.g. int x, y, z; | ||
55 : | int a[] = {x, y, z}; | ||
56 : | This is allowed gcc *) | ||
57 : | val perform_type_checking:bool | ||
58 : | (* true = do type checking; false = disable type checking; | ||
59 : | Note: with type checking off, there is still some | ||
60 : | rudimentary type processing, but no | ||
61 : | usual unary conversions, usual binary conversions, etc. *) | ||
62 : | |||
63 : | (* used by sizeof *) | ||
64 : | val ISO_bitfield_restrictions: bool | ||
65 : | (* In ANSI/ISO, types of bitfields must be qualified or unqualified version of | ||
66 : | int, unsigned int or signed int (ISO spec, section 6.5.2.1, p60); | ||
67 : | however most compilers allow chars, shorts and longs as well. | ||
68 : | Default value: false (to get std permissive behavior) *) | ||
69 : | |||
70 : | val allow_enum_bitfields: bool | ||
71 : | (* Allow bitfields involving enum | ||
72 : | e.g. enum x y : 8; | ||
73 : | Default value: true (permissive behavior e.g. gcc) *) | ||
74 : | |||
75 : | val partial_enum_error: bool | ||
76 : | (* Prohibit partial enums. | ||
77 : | i.e. enum x *y; | ||
78 : | enum x {a, b, c}; | ||
79 : | Default value: false. | ||
80 : | (set to true to get strict behaviour) | ||
81 : | *) | ||
82 : | |||
83 : | val partial_enums_have_unknown_size: bool | ||
84 : | (* Treat partial enums as having unknown size. | ||
85 : | e.g. | ||
86 : | enum x y; | ||
87 : | enum x {a, b, c}; | ||
88 : | Default value: false. | ||
89 : | *) | ||
90 : | end | ||
91 : | |||
92 : | |||
93 : |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |