]> andersk Git - splint.git/blame - src/Headers/flags.h
Fixed problem with NULL being changed.
[splint.git] / src / Headers / flags.h
CommitLineData
885824d3 1/*
c0de361f 2** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
a0a162cd 3** See ../LICENSE for license information.
885824d3 4**
5*/
6# ifndef FLAGS_H
7# define FLAGS_H
8
9
10typedef enum
11{
bb7c2085 12 FK_ABSTRACT, FK_ANSI, FK_BEHAVIOR, FK_BOUNDS,
885824d3 13 FK_COMMENTS, FK_COMPLETE, FK_CONTROL, FK_DEBUG, FK_DECL,
bb7c2085 14 FK_SYNCOMMENTS, FK_HINTS, FK_SYSTEMFUNCTIONS, FK_ITS4,
885824d3 15 FK_DEF, FK_DIRECT, FK_DISPLAY, FK_EFFECT, FK_EXPORT,
bb7c2085 16 FK_EXPOSURE,
17 FK_EXTENSIBLE,
18 FK_FORMAT, FK_GLOBAL, FK_GLOBALS, FK_HEADERS,
885824d3 19 FK_HELP, FK_IGNORERET, FK_INIT, FK_ITER, FK_LIBS, FK_LIMITS,
20 FK_MACROS, FK_MEMORY, FK_MODIFIES, FK_NAMES, FK_NONE,
bb7c2085 21 FK_NULL, FK_OPS, FK_PRED, FK_PREPROC, FK_SECRET,
885824d3 22 FK_SUPPRESS, FK_SYNTAX, FK_TYPE, FK_TYPEEQ, FK_NUMBERS,
23 FK_POINTER, FK_UNRECOG, FK_USE, FK_BOOL, FK_ALIAS,
24 FK_PROTOS, FK_SPEC,
25 FK_IMPLICIT, FK_FILES, FK_ERRORS, FK_UNSPEC,
28bf4b0b 26 FK_SPEED, FK_PARAMS, FK_DEAD, FK_SECURITY,
27 FK_LEAK, FK_ARRAY, FK_OBSOLETE, FK_PREFIX, FK_WARNUSE
885824d3 28} flagkind;
29
30extern void listAllCategories (void);
31extern void printAlphaFlags (void);
32extern void printAllFlags (bool p_desc, bool p_full);
45569d72 33extern void printFlagManual (bool p_html);
885824d3 34
35extern void flagcode_recordError (flagcode p_f);
36extern void flagcode_recordSuppressed (flagcode p_f);
37extern int flagcode_numReported (flagcode p_f);
38extern bool flagcode_isNamePrefixFlag (flagcode p_f);
39
40extern /*@only@*/ cstring describeFlag (cstring p_flagname);
a956d444 41
80489f0a 42extern flagcode flags_identifyFlag (cstring p_s) /*@modifies g_warningstream@*/ ;
a956d444 43extern flagcode flags_identifyFlagQuiet (cstring p_s) /*@modifies nothing@*/ ;
44
16c024b5 45extern void flags_setValueFlag (flagcode p_opt, /*@only@*/ cstring p_arg);
46extern void flags_setStringFlag (flagcode p_opt, /*@only@*/ cstring p_arg);
885824d3 47
28bf4b0b 48extern /*@observer@*/ cstring flagcode_unparse (flagcode p_code) /*@*/ ;
885824d3 49extern int flagcode_valueIndex (flagcode p_f) /*@*/ ;
50extern int flagcode_stringIndex (flagcode p_f) /*@*/ ;
885824d3 51
53306cab 52extern int flagcode_priority (flagcode p_code) /*@*/ ;
53
abd7f895 54extern bool flagcode_equal (flagcode p_code1, flagcode p_code2) /*@*/ ;
55# define flagcode_equal(c1, c2) ((c1) == (c2))
56
885824d3 57extern /*@observer@*/ cstring flagcodeHint (flagcode p_f);
58
59extern flagkind identifyCategory (cstring p_s) /*@*/ ;
80489f0a 60extern void printCategory (flagkind p_kind) /*@modifies g_warningstream@*/ ;
885824d3 61
28bf4b0b 62extern bool flagcode_isInvalid (flagcode p_f) /*@*/ ;
885824d3 63# define flagcode_isInvalid(f) ((f) == INVALID_FLAG)
64
28bf4b0b 65extern bool flagcode_isSkip (flagcode p_f) /*@*/ ;
885824d3 66# define flagcode_isSkip(f) ((f) == SKIP_FLAG)
67
aa9c1601 68extern bool flagcode_isModeName (flagcode p_f) /*@*/ ;
69# define flagcode_isModeName(f) ((f) == MODENAME_FLAG)
70
28bf4b0b 71extern bool flagcode_isValid (flagcode p_f) /*@*/ ;
885824d3 72# define flagcode_isValid(f) ((f) != INVALID_FLAG)
73
74extern bool flagcode_isPassThrough (/*@sef@*/ flagcode p_f);
75# define flagcode_isPassThrough(f) ((f) == FLG_DEFINE || (f) == FLG_UNDEFINE)
76
77extern bool flagcode_isLibraryFlag (/*@sef@*/ flagcode p_f);
78# define flagcode_isLibraryFlag(f) \
79 ((f) == FLG_POSIXLIB || (f) == FLG_POSIXSTRICTLIB \
80 || (f) == FLG_UNIXLIB || (f) == FLG_UNIXSTRICTLIB \
81 || (f) == FLG_STRICTLIB || (f) == FLG_NOLIB \
82 || (f) == FLG_ANSILIB)
83
28bf4b0b 84extern bool flagcode_isWarnUseFlag (/*@sef@*/ flagcode p_f);
85# define flagcode_isWarnUseFlag(f) \
86 ((f) == FLG_BUFFEROVERFLOW || (f) == FLG_BUFFEROVERFLOWHIGH)
87
80489f0a 88extern bool flagcode_hasNumber (flagcode p_f) /*@*/ ;
89extern bool flagcode_hasChar (flagcode p_f) /*@*/ ;
90extern bool flagcode_hasString (flagcode p_f) /*@*/ ;
91extern bool flagcode_hasArgument (flagcode p_f) /*@*/ ;
885824d3 92
93/*@constant observer cstring DEFAULT_MODE;@*/
94# define DEFAULT_MODE (cstring_makeLiteralTemp ("standard"))
95
aa9c1601 96extern bool flags_isModeName (cstring p_s) /*@*/ ;
80489f0a 97extern /*@only@*/ cstring describeModes (void) /*@modifies g_messagestream@*/ ;
210066f9 98extern /*@only@*/ cstring describeMode (/*@temp@*/ cstring p_mode) /*@*/ ;
80489f0a 99extern void summarizeErrors (void) /*@modifies g_messagestream@*/ ;
885824d3 100
80489f0a 101extern bool flagcode_isNameChecksFlag (flagcode p_f) /*@*/ ;
102extern bool flagcode_isIdemFlag (flagcode p_f) /*@*/ ;
103extern bool flagcode_isModeFlag (flagcode p_f) /*@*/ ;
104extern bool flagcode_isSpecialFlag (flagcode p_f) /*@*/ ;
105extern bool flagcode_isGlobalFlag (flagcode p_f) /*@*/ ;
106extern bool flagcode_isMessageControlFlag (flagcode p_f) /*@*/ ;
aa9c1601 107extern bool flagcode_isHelpFlag (flagcode p_f) /*@*/ ;
108
109extern void flags_initMod (void) /*@modifies internalState@*/ ;
110
140c27a8 111extern void
112flags_processFlags (bool p_inCommandLine,
113 fileIdList p_xfiles,
114 fileIdList p_cfiles,
115 fileIdList p_lclfiles,
116 fileIdList p_mtfiles,
6fcd0b1e 117 cstringList *p_passThroughArgs,
b73d1009 118 int p_argc,
119 /*@null@*/ char **p_argv)
140c27a8 120 /*@requires maxRead(p_argv) >= (p_argc - 1) @*/
aa9c1601 121 /* returns true if normal, false if execution should exit */ ;
122
885824d3 123# else
124# error "Multiple include"
125# endif
126
127
128
129
130
131
132
133
134
135
136
137
138
This page took 0.279801 seconds and 5 git commands to generate.