diff --git a/ChangeLog b/ChangeLog index dd8789e2..b7efbebc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2011-11-13 Paul Smith + * file.c (file_timestamp_cons): Match up data types to avoid warnings. + * filedef.h: Ditto. + * misc.c (concat): Ditto. + * read.c (eval): Assign value to avoid warnings. + * function.c (func_shell_base): Use fork() instead of vfork() to + avoid warnings. + * make.h (INTEGER_TYPE_SIGNED): Use <=0 to avoid warnings. + Fixes Savannah bug #34608. + * job.c (construct_command_argv): Remove _p. (construct_command_argv_internal): Remove _ptr. Fixes Savannah bug #32567. diff --git a/file.c b/file.c index 93212d1c..0979845b 100644 --- a/file.c +++ b/file.c @@ -788,9 +788,10 @@ set_command_state (struct file *file, enum cmd_state state) /* Convert an external file timestamp to internal form. */ FILE_TIMESTAMP -file_timestamp_cons (const char *fname, time_t s, int ns) +file_timestamp_cons (const char *fname, time_t stamp, long int ns) { int offset = ORDINARY_MTIME_MIN + (FILE_TIMESTAMP_HI_RES ? ns : 0); + FILE_TIMESTAMP s = stamp; FILE_TIMESTAMP product = (FILE_TIMESTAMP) s << FILE_TIMESTAMP_LO_BITS; FILE_TIMESTAMP ts = product + offset; diff --git a/filedef.h b/filedef.h index 173e7538..07a68cc9 100644 --- a/filedef.h +++ b/filedef.h @@ -155,7 +155,7 @@ void print_file_data_base (void); * 302 / 1000) \ + 1 + 1 + 4 + 25) -FILE_TIMESTAMP file_timestamp_cons (char const *, time_t, int); +FILE_TIMESTAMP file_timestamp_cons (char const *, time_t, long int); FILE_TIMESTAMP file_timestamp_now (int *); void file_timestamp_sprintf (char *p, FILE_TIMESTAMP ts); diff --git a/function.c b/function.c index 42a0193f..a8b9609e 100644 --- a/function.c +++ b/function.c @@ -1681,7 +1681,7 @@ func_shell_base (char *o, char **argv, int trim_newlines) if (pid < 0) perror_with_name (error_prefix, "spawn"); # else /* ! __EMX__ */ - pid = vfork (); + pid = fork (); if (pid < 0) perror_with_name (error_prefix, "fork"); else if (pid == 0) diff --git a/make.h b/make.h index f5fece5e..5eb49752 100644 --- a/make.h +++ b/make.h @@ -157,8 +157,9 @@ unsigned int get_path_max (void); # define USHRT_MAX 65535 #endif -/* Nonzero if the integer type T is signed. */ -#define INTEGER_TYPE_SIGNED(t) ((t) -1 < 0) +/* Nonzero if the integer type T is signed. + Use <= to avoid GCC warnings about always-false expressions. */ +#define INTEGER_TYPE_SIGNED(t) ((t) -1 <= 0) /* The minimum and maximum values for the integer type T. Use ~ (t) 0, not -1, for portability to 1's complement hosts. */ diff --git a/misc.c b/misc.c index 607e2a7e..7b5beb5e 100644 --- a/misc.c +++ b/misc.c @@ -171,7 +171,7 @@ concat (num, va_alist) { static unsigned int rlen = 0; static char *result = NULL; - int ri = 0; + unsigned int ri = 0; #if USE_VARIADIC va_list args; diff --git a/read.c b/read.c index 58423f52..451f395e 100644 --- a/read.c +++ b/read.c @@ -562,7 +562,7 @@ eval (struct ebuffer *ebuf, int set_default) char *depstr = 0; long nlines = 0; int two_colon = 0; - char prefix; + char prefix = cmd_prefix; const char *pattern = 0; const char *pattern_percent; struct floc *fstart;