On Mon, Dec 01, 2014 at 09:52:31AM -0700, Todd C. Miller wrote:

> There were two dead stores found by the llvm analyzer (the value
> is overwritten before it is read).  I've also marked functions
> calling done() __dead to avoid false positives.
> 
> There are two more warnings from the analyzer but I'm fairly certain
> that they are false positives.

ok,

        -Otto

> 
>  - todd
> 
> Index: closure.c
> ===================================================================
> RCS file: /home/cvs/openbsd/src/usr.bin/yacc/closure.c,v
> retrieving revision 1.13
> diff -u -r1.13 closure.c
> --- closure.c 13 Mar 2014 01:18:22 -0000      1.13
> +++ closure.c 1 Dec 2014 16:47:57 -0000
> @@ -105,8 +105,6 @@
>                               }
>                       }
>               }
> -
> -             vrow += varsetsize;
>               rrow += rulesetsize;
>       }
>  
> Index: defs.h
> ===================================================================
> RCS file: /home/cvs/openbsd/src/usr.bin/yacc/defs.h,v
> retrieving revision 1.17
> diff -u -r1.17 defs.h
> --- defs.h    8 Mar 2014 01:05:39 -0000       1.17
> +++ defs.h    1 Dec 2014 16:47:57 -0000
> @@ -306,42 +306,42 @@
>  extern void closure(short *, int);
>  extern void finalize_closure(void);
>  
> -extern void fatal(char *);
> +extern __dead void fatal(char *);
>  
>  extern void reflexive_transitive_closure(unsigned *, int);
> -extern void done(int);
> +extern __dead void done(int);
>  
> -extern void no_space(void);
> -extern void open_error(char *);
> -extern void open_write_error(char *);
> -extern void unexpected_EOF(void);
> +extern __dead void no_space(void);
> +extern __dead void open_error(char *);
> +extern __dead void open_write_error(char *);
> +extern __dead void unexpected_EOF(void);
>  extern void print_pos(char *, char *);
> -extern void syntax_error(int, char *, char *);
> -extern void unterminated_comment(int, char *, char *);
> -extern void unterminated_string(int, char *, char *);
> -extern void unterminated_text(int, char *, char *);
> -extern void unterminated_union(int, char *, char *);
> -extern void over_unionized(char *);
> -extern void illegal_tag(int, char *, char *);
> -extern void illegal_character(char *);
> -extern void used_reserved(char *);
> -extern void tokenized_start(char *);
> +extern __dead void syntax_error(int, char *, char *);
> +extern __dead void unterminated_comment(int, char *, char *);
> +extern __dead void unterminated_string(int, char *, char *);
> +extern __dead void unterminated_text(int, char *, char *);
> +extern __dead void unterminated_union(int, char *, char *);
> +extern __dead void over_unionized(char *);
> +extern __dead void illegal_tag(int, char *, char *);
> +extern __dead void illegal_character(char *);
> +extern __dead void used_reserved(char *);
> +extern __dead void tokenized_start(char *);
>  extern void retyped_warning(char *);
>  extern void reprec_warning(char *);
>  extern void revalued_warning(char *);
> -extern void terminal_start(char *);
> +extern __dead void terminal_start(char *);
>  extern void restarted_warning(void);
> -extern void no_grammar(void);
> -extern void terminal_lhs(int);
> +extern __dead void no_grammar(void);
> +extern __dead void terminal_lhs(int);
>  extern void prec_redeclared(void);
> -extern void unterminated_action(int, char *, char *);
> +extern __dead void unterminated_action(int, char *, char *);
>  extern void dollar_warning(int, int);
> -extern void dollar_error(int, char *, char *);
> -extern void untyped_lhs(void);
> -extern void untyped_rhs(int, char *);
> -extern void unknown_rhs(int);
> +extern __dead void dollar_error(int, char *, char *);
> +extern __dead void untyped_lhs(void);
> +extern __dead void untyped_rhs(int, char *);
> +extern __dead void unknown_rhs(int);
>  extern void default_action_warning(void);
> -extern void undefined_goal(char *);
> +extern __dead void undefined_goal(char *);
>  extern void undefined_symbol_warning(char *);
>  
>  extern void lalr(void);
> Index: reader.c
> ===================================================================
> RCS file: /home/cvs/openbsd/src/usr.bin/yacc/reader.c,v
> retrieving revision 1.29
> diff -u -r1.29 reader.c
> --- reader.c  9 Oct 2014 03:02:18 -0000       1.29
> +++ reader.c  1 Dec 2014 16:49:31 -0000
> @@ -928,7 +928,6 @@
>               c = nextc();
>               if (c == EOF)
>                       unexpected_EOF();
> -             value = UNDEFINED;
>               if (isdigit(c)) {
>                       value = get_number();
>                       if (bp->value != UNDEFINED && value != bp->value)

Reply via email to