]> andersk Git - splint.git/blame - src/Headers/flags.h
Manual flags.
[splint.git] / src / Headers / flags.h
CommitLineData
885824d3 1/*
28bf4b0b 2** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
a0a162cd 3** See ../LICENSE for license information.
885824d3 4**
5*/
6# ifndef FLAGS_H
7# define FLAGS_H
8
9
10typedef enum
11{
12 FK_ABSTRACT, FK_ANSI, FK_BEHAVIOR,
13 FK_COMMENTS, FK_COMPLETE, FK_CONTROL, FK_DEBUG, FK_DECL,
14 FK_DEF, FK_DIRECT, FK_DISPLAY, FK_EFFECT, FK_EXPORT,
15 FK_EXPOSURE, FK_FORMAT, FK_GLOBAL, FK_GLOBALS, FK_HEADERS,
16 FK_HELP, FK_IGNORERET, FK_INIT, FK_ITER, FK_LIBS, FK_LIMITS,
17 FK_MACROS, FK_MEMORY, FK_MODIFIES, FK_NAMES, FK_NONE,
1ac6313d 18 FK_NULL, FK_NT, FK_OPS, FK_PRED, FK_PREPROC, FK_SECRET,
885824d3 19 FK_SUPPRESS, FK_SYNTAX, FK_TYPE, FK_TYPEEQ, FK_NUMBERS,
20 FK_POINTER, FK_UNRECOG, FK_USE, FK_BOOL, FK_ALIAS,
21 FK_PROTOS, FK_SPEC,
22 FK_IMPLICIT, FK_FILES, FK_ERRORS, FK_UNSPEC,
28bf4b0b 23 FK_SPEED, FK_PARAMS, FK_DEAD, FK_SECURITY,
24 FK_LEAK, FK_ARRAY, FK_OBSOLETE, FK_PREFIX, FK_WARNUSE
885824d3 25} flagkind;
26
27extern void listAllCategories (void);
28extern void printAlphaFlags (void);
29extern void printAllFlags (bool p_desc, bool p_full);
4f43223c 30extern void printFlagManual (void);
885824d3 31
32extern void flagcode_recordError (flagcode p_f);
33extern void flagcode_recordSuppressed (flagcode p_f);
34extern int flagcode_numReported (flagcode p_f);
35extern bool flagcode_isNamePrefixFlag (flagcode p_f);
36
37extern /*@only@*/ cstring describeFlag (cstring p_flagname);
a956d444 38
39extern flagcode flags_identifyFlag (cstring p_s) /*@modifies g_msgstream@*/ ;
40extern flagcode flags_identifyFlagQuiet (cstring p_s) /*@modifies nothing@*/ ;
41
885824d3 42extern void setValueFlag (flagcode p_opt, cstring p_arg);
43extern void setStringFlag (flagcode p_opt, /*@only@*/ cstring p_arg);
44
28bf4b0b 45extern /*@observer@*/ cstring flagcode_unparse (flagcode p_code) /*@*/ ;
885824d3 46extern int flagcode_valueIndex (flagcode p_f) /*@*/ ;
47extern int flagcode_stringIndex (flagcode p_f) /*@*/ ;
885824d3 48
49extern /*@observer@*/ cstring flagcodeHint (flagcode p_f);
50
51extern flagkind identifyCategory (cstring p_s) /*@*/ ;
52extern void printCategory (flagkind p_kind) /*@modifies g_msgstream@*/ ;
53
28bf4b0b 54extern bool flagcode_isInvalid (flagcode p_f) /*@*/ ;
885824d3 55# define flagcode_isInvalid(f) ((f) == INVALID_FLAG)
56
28bf4b0b 57extern bool flagcode_isSkip (flagcode p_f) /*@*/ ;
885824d3 58# define flagcode_isSkip(f) ((f) == SKIP_FLAG)
59
28bf4b0b 60extern bool flagcode_isValid (flagcode p_f) /*@*/ ;
885824d3 61# define flagcode_isValid(f) ((f) != INVALID_FLAG)
62
63extern bool flagcode_isPassThrough (/*@sef@*/ flagcode p_f);
64# define flagcode_isPassThrough(f) ((f) == FLG_DEFINE || (f) == FLG_UNDEFINE)
65
66extern bool flagcode_isLibraryFlag (/*@sef@*/ flagcode p_f);
67# define flagcode_isLibraryFlag(f) \
68 ((f) == FLG_POSIXLIB || (f) == FLG_POSIXSTRICTLIB \
69 || (f) == FLG_UNIXLIB || (f) == FLG_UNIXSTRICTLIB \
70 || (f) == FLG_STRICTLIB || (f) == FLG_NOLIB \
71 || (f) == FLG_ANSILIB)
72
28bf4b0b 73extern bool flagcode_isWarnUseFlag (/*@sef@*/ flagcode p_f);
74# define flagcode_isWarnUseFlag(f) \
75 ((f) == FLG_BUFFEROVERFLOW || (f) == FLG_BUFFEROVERFLOWHIGH)
76
4f43223c 77extern bool flagcode_hasNumber (flagcode p_f);
78extern bool flagcode_hasChar (flagcode p_f);
885824d3 79extern bool flagcode_hasString (flagcode p_f);
80extern bool flagcode_hasArgument (flagcode p_f);
81
82/*@constant observer cstring DEFAULT_MODE;@*/
83# define DEFAULT_MODE (cstring_makeLiteralTemp ("standard"))
84
85extern void flags_initMod (void);
86
87extern bool isMode (cstring p_s);
88extern /*@only@*/ cstring describeModes (void);
89extern void summarizeErrors (void);
90
91extern bool flagcode_isNameChecksFlag (flagcode p_f);
92extern bool flagcode_isIdemFlag (flagcode p_f);
93extern bool flagcode_isModeFlag (flagcode p_f);
94extern bool flagcode_isSpecialFlag (flagcode p_f);
95extern bool flagcode_isGlobalFlag (flagcode p_f);
96
97# else
98# error "Multiple include"
99# endif
100
101
102
103
104
105
106
107
108
109
110
111
112
This page took 0.292469 seconds and 5 git commands to generate.