diff options
author | cperciva <cperciva@FreeBSD.org> | 2008-08-04 01:25:48 +0000 |
---|---|---|
committer | cperciva <cperciva@FreeBSD.org> | 2008-08-04 01:25:48 +0000 |
commit | 45f0d08992efea87dbc15433e392afdeabec2270 (patch) | |
tree | 229041eea5ad591ae2c140ea64950ea8a82735f1 /usr.bin | |
parent | a5c1d60642f3e26278563bd545199cd3f6d6e962 (diff) | |
download | FreeBSD-src-45f0d08992efea87dbc15433e392afdeabec2270.zip FreeBSD-src-45f0d08992efea87dbc15433e392afdeabec2270.tar.gz |
Mark functions as __dead2 in order to help the LLVM static checker
understand which code paths aren't possible.
This commit eliminates 117 false positive bug reports of the form
"allocate memory; error out if pointer is NULL; use pointer".
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/cpio/cpio.h | 2 | ||||
-rw-r--r-- | usr.bin/lex/flex.skl | 3 | ||||
-rw-r--r-- | usr.bin/tar/bsdtar.h | 2 | ||||
-rw-r--r-- | usr.bin/yacc/defs.h | 48 |
4 files changed, 28 insertions, 27 deletions
diff --git a/usr.bin/cpio/cpio.h b/usr.bin/cpio/cpio.h index 4dce00f..1db7ec1 100644 --- a/usr.bin/cpio/cpio.h +++ b/usr.bin/cpio/cpio.h @@ -85,7 +85,7 @@ struct cpio { /* Name of this program; used in error reporting, initialized in main(). */ const char *cpio_progname; -void cpio_errc(int _eval, int _code, const char *fmt, ...); +void cpio_errc(int _eval, int _code, const char *fmt, ...) __dead2; void cpio_warnc(int _code, const char *fmt, ...); int owner_parse(const char *, int *, int *); diff --git a/usr.bin/lex/flex.skl b/usr.bin/lex/flex.skl index d741652..460b2fa 100644 --- a/usr.bin/lex/flex.skl +++ b/usr.bin/lex/flex.skl @@ -9,6 +9,7 @@ #include <sys/cdefs.h> #else #define __unused +#define __dead2 #endif #define FLEX_SCANNER @@ -290,7 +291,7 @@ static void yy_flex_free YY_PROTO(( void * )); static yy_state_type yy_get_previous_state YY_PROTO(( void )); static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); static int yy_get_next_buffer YY_PROTO(( void )); -static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); +static void yy_fatal_error YY_PROTO(( yyconst char msg[] )) __dead2; %* /* Done after the current pattern has been matched and before the diff --git a/usr.bin/tar/bsdtar.h b/usr.bin/tar/bsdtar.h index dbbdbdc..eee53a9 100644 --- a/usr.bin/tar/bsdtar.h +++ b/usr.bin/tar/bsdtar.h @@ -103,7 +103,7 @@ struct bsdtar { }; void bsdtar_errc(struct bsdtar *, int _eval, int _code, - const char *fmt, ...); + const char *fmt, ...) __dead2; void bsdtar_warnc(struct bsdtar *, int _code, const char *fmt, ...); void cleanup_exclusions(struct bsdtar *); void do_chdir(struct bsdtar *); diff --git a/usr.bin/yacc/defs.h b/usr.bin/yacc/defs.h index cb8b083..5219e1b 100644 --- a/usr.bin/yacc/defs.h +++ b/usr.bin/yacc/defs.h @@ -309,26 +309,26 @@ char *allocate(unsigned); void closure(short *, int); void create_symbol_table(void); void default_action_warning(void); -void dollar_error(int, char *, char *); +void dollar_error(int, char *, char *) __dead2; void dollar_warning(int, int); -void done(int); -void fatal(const char *msg); +void done(int) __dead2; +void fatal(const char *msg) __dead2; void finalize_closure(void); void free_parser(void); void free_symbols(void); void free_symbol_table(void); -void illegal_character(char *); -void illegal_tag(int, char *, char *); +void illegal_character(char *) __dead2; +void illegal_tag(int, char *, char *) __dead2; void lalr(void); bucket *lookup(char *); void lr0(void); bucket *make_bucket(const char *); void make_parser(void); -void no_grammar(void); -void no_space(void); -void open_error(const char *); +void no_grammar(void) __dead2; +void no_space(void) __dead2; +void open_error(const char *) __dead2; void output(void); -void over_unionized(char *); +void over_unionized(char *) __dead2; void prec_redeclared(void); void reader(void); void reflexive_transitive_closure(unsigned *, int); @@ -337,21 +337,21 @@ void restarted_warning(void); void retyped_warning(char *); void revalued_warning(char *); void set_first_derives(void); -void syntax_error(int, char *, char *); -void terminal_lhs(int); -void terminal_start(char *); -void tokenized_start(char *); -void undefined_goal(char *); +void syntax_error(int, char *, char *) __dead2; +void terminal_lhs(int) __dead2; +void terminal_start(char *) __dead2; +void tokenized_start(char *) __dead2; +void undefined_goal(char *) __dead2; void undefined_symbol_warning(char *); -void unexpected_EOF(void); -void unknown_rhs(int); -void unterminated_action(int, char *, char *); -void unterminated_comment(int, char *, char *); -void unterminated_string(int, char *, char *); -void unterminated_text(int, char *, char *); -void unterminated_union(int, char *, char *); -void untyped_lhs(void); -void untyped_rhs(int, char *); -void used_reserved(char *); +void unexpected_EOF(void) __dead2; +void unknown_rhs(int) __dead2; +void unterminated_action(int, char *, char *) __dead2; +void unterminated_comment(int, char *, char *) __dead2; +void unterminated_string(int, char *, char *) __dead2; +void unterminated_text(int, char *, char *) __dead2; +void unterminated_union(int, char *, char *) __dead2; +void untyped_lhs(void) __dead2; +void untyped_rhs(int, char *) __dead2; +void used_reserved(char *) __dead2; void verbose(void); void write_section(const char **); |