Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/ckit/src/variants/type-check-control-sig.sml
ViewVC logotype

Annotation of /sml/trunk/ckit/src/variants/type-check-control-sig.sml

Parent Directory Parent Directory | Revision Log 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