Fixes for enhanced GCC warnings.

Move function prototypes into header files and out of .c files.
Use void argument lists for functions that accept no args.
Remove unused macros.  Make private functions static.  Align
types with printf format characters.
This commit is contained in:
Paul Eggert 2016-05-01 15:52:58 -04:00 committed by Paul Smith
parent 6f7fb050b4
commit ba8383efd8
20 changed files with 81 additions and 89 deletions

8
ar.c
View File

@ -73,7 +73,7 @@ static long int
ar_member_date_1 (int desc UNUSED, const char *mem, int truncated,
long int hdrpos UNUSED, long int datapos UNUSED,
long int size UNUSED, long int date,
int uid UNUSED, int gid UNUSED, int mode UNUSED,
int uid UNUSED, int gid UNUSED, unsigned int mode UNUSED,
const void *name)
{
return ar_name_equal (name, mem, truncated) ? date : 0;
@ -198,7 +198,7 @@ static long int
ar_glob_match (int desc UNUSED, const char *mem, int truncated UNUSED,
long int hdrpos UNUSED, long int datapos UNUSED,
long int size UNUSED, long int date UNUSED, int uid UNUSED,
int gid UNUSED, int mode UNUSED, const void *arg)
int gid UNUSED, unsigned int mode UNUSED, const void *arg)
{
struct ar_glob_state *state = (struct ar_glob_state *)arg;
@ -224,7 +224,7 @@ ar_glob_match (int desc UNUSED, const char *mem, int truncated UNUSED,
/* Return nonzero if PATTERN contains any metacharacters.
Metacharacters can be quoted with backslashes if QUOTE is nonzero. */
static int
glob_pattern_p (const char *pattern, int quote)
ar_glob_pattern_p (const char *pattern, int quote)
{
const char *p;
int opened = 0;
@ -267,7 +267,7 @@ ar_glob (const char *arname, const char *member_pattern, unsigned int size)
#ifdef VMS
char *vms_member_pattern;
#endif
if (! glob_pattern_p (member_pattern, 1))
if (! ar_glob_pattern_p (member_pattern, 1))
return 0;
/* Scan the archive for matches.

View File

@ -547,7 +547,7 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
int long_name = 0;
#endif
long int eltsize;
int eltmode;
unsigned int eltmode;
long int fnval;
off_t o;
@ -872,7 +872,7 @@ static long int
ar_member_pos (int desc UNUSED, const char *mem, int truncated,
long int hdrpos, long int datapos UNUSED, long int size UNUSED,
long int date UNUSED, int uid UNUSED, int gid UNUSED,
int mode UNUSED, const void *name)
unsigned int mode UNUSED, const void *name)
{
if (!ar_name_equal (name, mem, truncated))
return 0;
@ -957,7 +957,8 @@ ar_member_touch (const char *arname, const char *memname)
long int
describe_member (int desc, const char *name, int truncated,
long int hdrpos, long int datapos, long int size,
long int date, int uid, int gid, int mode, const void *arg)
long int date, int uid, int gid, unsigned int mode,
const void *arg)
{
extern char *ctime ();

View File

@ -31,8 +31,6 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
# define FILE_LIST_SEPARATOR ' '
#endif
int remote_kill (int id, int sig);
#ifndef HAVE_UNISTD_H
int getpid ();
#endif

View File

@ -34,6 +34,7 @@ struct commands
#define COMMANDS_SILENT 2 /* Silent: @. */
#define COMMANDS_NOERROR 4 /* No errors: -. */
RETSIGTYPE fatal_error_signal (int sig);
void execute_file_commands (struct file *file);
void print_commands (const struct commands *cmds);
void delete_child_targets (struct child *child);

4
dir.c
View File

@ -1169,8 +1169,6 @@ print_dir_data_base (void)
/* Hooks for globbing. */
#include <glob.h>
/* Structure describing state of iterating through a directory hash table. */
struct dirstream
@ -1263,7 +1261,9 @@ read_dirstream (__ptr_t stream)
*/
#if !defined(stat) && !defined(WINDOWS32) || defined(VMS)
# ifndef VMS
# ifndef HAVE_SYS_STAT_H
int stat (const char *path, struct stat *sbuf);
# endif
# else
/* We are done with the fake stat. Go back to the real stat */
# ifdef stat

3
file.c
View File

@ -57,9 +57,6 @@ file_hash_cmp (const void *x, const void *y)
((struct file const *) y)->hname);
}
#ifndef FILE_BUCKETS
#define FILE_BUCKETS 1007
#endif
static struct hash_table files;
/* Whether or not .SECONDARY with no prerequisites was given. */

View File

@ -103,7 +103,7 @@ struct file
};
extern struct file *suffix_file, *default_file;
extern struct file *default_file;
struct file *lookup_file (const char *name);
@ -117,9 +117,12 @@ void rehash_file (struct file *file, const char *name);
void set_command_state (struct file *file, enum cmd_state state);
void notice_finished_file (struct file *file);
void init_hash_files (void);
void verify_file_data_base (void);
char *build_target_list (char *old_list);
void print_prereqs (const struct dep *deps);
void print_file_data_base (void);
int try_implicit_rule (struct file *file, unsigned int depth);
int stemlen_compare (const void *v1, const void *v2);
#if FILE_TIMESTAMP_HI_RES
# define FILE_TIMESTAMP_STAT_MODTIME(fname, st) \

View File

@ -627,6 +627,7 @@ func_basename_dir (char *o, char **argv, const char *funcname)
else if (is_dir)
#ifdef VMS
{
extern int vms_report_unix_paths;
if (vms_report_unix_paths)
o = variable_buffer_output (o, "./", 2);
else
@ -1975,7 +1976,7 @@ func_shell_base (char *o, char **argv, int trim_newlines)
}
#endif /* _AMIGA */
char *
static char *
func_shell (char *o, char **argv, const char *funcname UNUSED)
{
return func_shell_base (o, argv, 1);
@ -2653,10 +2654,10 @@ define_new_function (const gmk_floc *flocp, const char *name,
OS (fatal, flocp, _("Function name too long: %s"), name);
if (min > 255)
ONS (fatal, flocp,
_("Invalid minimum argument count (%d) for function %s"), min, name);
_("Invalid minimum argument count (%u) for function %s"), min, name);
if (max > 255 || (max && max < min))
ONS (fatal, flocp,
_("Invalid maximum argument count (%d) for function %s"), max, name);
_("Invalid maximum argument count (%u) for function %s"), max, name);
ent = xmalloc (sizeof (struct function_table_entry));
ent->name = name;

10
job.c
View File

@ -24,7 +24,6 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#include "commands.h"
#include "variable.h"
#include "os.h"
#include "debug.h"
#include <string.h>
@ -208,14 +207,10 @@ pid2str (pid_t pid)
return pidstring;
}
#ifndef HAVE_GETLOADAVG
int getloadavg (double loadavg[], int nelem);
int start_remote_job (char **argv, char **envp, int stdin_fd, int *is_remote,
int *id_ptr, int *used_stdin);
int start_remote_job_p (int);
int remote_status (int *exit_code_ptr, int *signal_ptr, int *coredump_ptr,
int block);
#endif
RETSIGTYPE child_handler (int);
static void free_child (struct child *);
static void start_job_command (struct child *child);
static int load_too_high (void);
@ -2285,7 +2280,6 @@ exec_command (char **argv, char **envp)
case ENOEXEC:
{
/* The file is not executable. Try it as a shell script. */
extern char *getenv ();
const char *shell;
char **new_argv;
int argc;

19
main.c
View File

@ -84,18 +84,6 @@ char x;
}
#endif
void init_dir (void);
void remote_setup (void);
void remote_cleanup (void);
RETSIGTYPE fatal_error_signal (int sig);
void print_variable_data_base (void);
void print_dir_data_base (void);
void print_rule_data_base (void);
void print_vpath_data_base (void);
void verify_file_data_base (void);
#if defined HAVE_WAITPID || defined HAVE_WAIT3
# define HAVE_WAIT_NOHANG
#endif
@ -645,7 +633,7 @@ initialize_global_hash_tables (void)
Each element is true if we should stop parsing on that character. */
static void
initialize_stopchar_map ()
initialize_stopchar_map (void)
{
int i;
@ -1063,7 +1051,7 @@ msdos_return_to_initial_directory (void)
#endif /* __MSDOS__ */
static void
reset_jobserver ()
reset_jobserver (void)
{
jobserver_clear ();
free (jobserver_auth);
@ -1895,7 +1883,6 @@ main (int argc, char **argv, char **envp)
If none of these are true, we don't need a signal handler at all. */
{
RETSIGTYPE child_handler (int sig);
# if defined SIGCHLD
bsd_signal (SIGCHLD, child_handler);
# endif
@ -3369,7 +3356,7 @@ print_version (void)
/* Print a bunch of information about this and that. */
static void
print_data_base ()
print_data_base (void)
{
time_t when = time ((time_t *) 0);

View File

@ -450,6 +450,8 @@ extern int unixy_shell;
extern struct rlimit stack_limit;
#endif
#include <glob.h>
#define NILF ((gmk_floc *)0)
#define CSTRLEN(_s) (sizeof (_s)-1)
@ -518,7 +520,8 @@ time_t ar_member_date (const char *);
typedef long int (*ar_member_func_t) (int desc, const char *mem, int truncated,
long int hdrpos, long int datapos,
long int size, long int date, int uid,
int gid, int mode, const void *arg);
int gid, unsigned int mode,
const void *arg);
long int ar_scan (const char *archive, ar_member_func_t function, const void *arg);
int ar_name_equal (const char *name, const char *mem, int truncated);
@ -532,6 +535,8 @@ int file_exists_p (const char *);
int file_impossible_p (const char *);
void file_impossible (const char *);
const char *dir_name (const char *);
void print_dir_data_base (void);
void dir_setup_glob (glob_t *);
void hash_init_directories (void);
void define_default_variables (void);
@ -554,7 +559,7 @@ void child_access (void);
char *strip_whitespace (const char **begpp, const char **endpp);
void show_goal_error ();
void show_goal_error (void);
/* String caching */
void strcache_init (void);
@ -581,16 +586,16 @@ long int atol ();
long int lseek ();
# endif
#endif /* Not GNU C library or POSIX. */
#ifdef HAVE_GETCWD
# if !defined(VMS) && !defined(__DECC)
# ifdef HAVE_GETCWD
# if !defined(VMS) && !defined(__DECC)
char *getcwd ();
# endif
#else
# endif
# else
char *getwd ();
# define getcwd(buf, len) getwd (buf)
#endif
# define getcwd(buf, len) getwd (buf)
# endif
#endif /* Not GNU C library or POSIX. */
#if !HAVE_STRCASECMP
# if HAVE_STRICMP
@ -619,11 +624,12 @@ int strncasecmp (const char *s1, const char *s2, int n);
#define OUTPUT_SYNC_TARGET 2
#define OUTPUT_SYNC_RECURSE 3
/* Non-GNU systems may not declare this in unistd.h. */
extern char **environ;
extern const gmk_floc *reading_file;
extern const gmk_floc **expanding_var;
extern char **environ;
extern unsigned short stopchar_map[];
extern int just_print_flag, silent_flag, ignore_errors_flag, keep_going_flag;
@ -634,6 +640,8 @@ extern int warn_undefined_variables_flag, trace_flag, posix_pedantic;
extern int not_parallel, second_expansion, clock_skew_detected;
extern int rebuilding_makefiles, one_shell, output_sync, verify_flag;
extern const char *default_shell;
/* can we run commands via 'sh -c xxx' or must we use batch files? */
extern int batch_mode_shell;
@ -685,6 +693,17 @@ vms_restore_symbol (const char *string);
#endif
void remote_setup (void);
void remote_cleanup (void);
int start_remote_job_p (int);
int start_remote_job (char **, char **, int, int *, int *, int *);
int remote_status (int *, int *, int *, int);
void block_remote_children (void);
void unblock_remote_children (void);
int remote_kill (int id, int sig);
void print_variable_data_base (void);
void print_vpath_data_base (void);
extern char *starting_directory;
extern unsigned int makelevel;
extern char *version_string, *remote_description, *make_host;

18
os.h
View File

@ -20,7 +20,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#ifdef MAKE_JOBSERVER
/* Returns 1 if the jobserver is enabled, else 0. */
unsigned int jobserver_enabled ();
unsigned int jobserver_enabled (void);
/* Called in the master instance to set up the jobserver initially. */
unsigned int jobserver_setup (int job_slots);
@ -29,28 +29,28 @@ unsigned int jobserver_setup (int job_slots);
unsigned int jobserver_parse_auth (const char* auth);
/* Returns an allocated buffer used to pass to child instances. */
char *jobserver_get_auth ();
char *jobserver_get_auth (void);
/* Clear this instance's jobserver configuration. */
void jobserver_clear ();
void jobserver_clear (void);
/* Recover all the jobserver tokens and return the number we got. */
unsigned int jobserver_acquire_all ();
unsigned int jobserver_acquire_all (void);
/* Release a jobserver token. If it fails and is_fatal is 1, fatal. */
void jobserver_release (int is_fatal);
/* Notify the jobserver that a child exited. */
void jobserver_signal ();
void jobserver_signal (void);
/* Get ready to start a non-recursive child. */
void jobserver_pre_child ();
void jobserver_pre_child (int);
/* Complete starting a non-recursive child. */
void jobserver_post_child ();
void jobserver_post_child (int);
/* Set up to acquire a new token. */
void jobserver_pre_acquire ();
void jobserver_pre_acquire (void);
/* Wait until we can acquire a jobserver token.
TIMEOUT is 1 if we have other jobs waiting for the load to go down;
@ -78,7 +78,7 @@ unsigned int jobserver_acquire (int timeout);
/* Create a "bad" file descriptor for stdin when parallel jobs are run. */
#if !defined(VMD) && !defined(WINDOWS32) && !defined(_AMIGA) && !defined(__MSDOS__)
int get_bad_stdin ();
int get_bad_stdin (void);
#else
# define get_bad_stdin() (-1)
#endif

View File

@ -174,7 +174,7 @@ static sync_handle_t sync_handle = -1;
/* Set up the sync handle. Disables output_sync on error. */
static int
sync_init ()
sync_init (void)
{
int combined_output = 0;
@ -283,7 +283,7 @@ release_semaphore (void *sem)
/* Returns a file descriptor to a temporary file. The file is automatically
closed/deleted on exit. Don't use a FILE* stream. */
int
output_tmpfd ()
output_tmpfd (void)
{
int fd = -1;
FILE *tfile = tmpfile ();
@ -558,7 +558,7 @@ output_close (struct output *out)
/* We're about to generate output: be sure it's set up. */
void
output_start ()
output_start (void)
{
#ifndef NO_OUTPUT_SYNC
/* If we're syncing output make sure the temporary file is set up. */

View File

@ -45,7 +45,7 @@ static int job_rfd = -1;
static char token = '+';
static int
make_job_rfd ()
make_job_rfd (void)
{
#ifdef HAVE_PSELECT
/* Pretend we succeeded. */
@ -117,7 +117,7 @@ jobserver_parse_auth (const char *auth)
}
char *
jobserver_get_auth ()
jobserver_get_auth (void)
{
char *auth = xmalloc ((INTSTR_LENGTH * 2) + 2);
sprintf (auth, "%d,%d", job_fds[0], job_fds[1]);
@ -125,13 +125,13 @@ jobserver_get_auth ()
}
unsigned int
jobserver_enabled ()
jobserver_enabled (void)
{
return job_fds[0] >= 0;
}
void
jobserver_clear ()
jobserver_clear (void)
{
if (job_fds[0] >= 0)
close (job_fds[0]);
@ -157,7 +157,7 @@ jobserver_release (int is_fatal)
}
unsigned int
jobserver_acquire_all ()
jobserver_acquire_all (void)
{
unsigned int tokens = 0;
@ -210,7 +210,7 @@ jobserver_post_child (int recursive)
}
void
jobserver_signal ()
jobserver_signal (void)
{
if (job_rfd >= 0)
{
@ -220,7 +220,7 @@ jobserver_signal ()
}
void
jobserver_pre_acquire ()
jobserver_pre_acquire (void)
{
/* Make sure we have a dup'd FD. */
if (job_rfd < 0 && job_fds[0] >= 0 && make_job_rfd () < 0)
@ -402,7 +402,7 @@ jobserver_acquire (int timeout)
/* Create a "bad" file descriptor for stdin when parallel jobs are run. */
int
get_bad_stdin ()
get_bad_stdin (void)
{
static int bad_stdin = -1;

6
read.c
View File

@ -18,8 +18,6 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#include <assert.h>
#include <glob.h>
#include "filedef.h"
#include "dep.h"
#include "job.h"
@ -2920,7 +2918,6 @@ tilde_expand (const char *name)
#ifndef VMS
if (name[1] == '/' || name[1] == '\0')
{
extern char *getenv ();
char *home_dir;
int is_variable;
@ -2943,7 +2940,6 @@ tilde_expand (const char *name)
# if !defined(_AMIGA) && !defined(WINDOWS32)
if (home_dir == 0 || home_dir[0] == '\0')
{
extern char *getlogin ();
char *logname = getlogin ();
home_dir = 0;
if (logname != 0)
@ -3008,8 +3004,6 @@ tilde_expand (const char *name)
PARSEFS_NOCACHE - Do not add filenames to the strcache (caller frees)
*/
void dir_setup_glob (glob_t *glob);
void *
parse_file_seq (char **stringp, unsigned int size, int stopmap,
const char *prefix, int flags)

View File

@ -37,8 +37,6 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#include <io.h>
#endif
extern int try_implicit_rule (struct file *file, unsigned int depth);
/* The test for circular dependencies is based on the 'updating' bit in
'struct file'. However, double colon targets have separate 'struct
@ -269,7 +267,7 @@ update_goal_chain (struct goaldep *goaldeps)
about errors, show an error message the first time. */
void
show_goal_error ()
show_goal_error (void)
{
struct goaldep *goal;

1
rule.h
View File

@ -55,3 +55,4 @@ void install_pattern_rule (struct pspec *p, int terminal);
void create_pattern_rule (const char **targets, const char **target_percents,
unsigned int num, int terminal, struct dep *deps,
struct commands *commands, int override);
void print_rule_data_base (void);

View File

@ -822,7 +822,6 @@ merge_variable_set_lists (struct variable_set_list **setlist0,
void
define_automatic_variables (void)
{
extern const char* default_shell;
struct variable *v;
char buf[200];
@ -1049,7 +1048,6 @@ target_environment (struct file *file)
/* If this is the SHELL variable and it's not exported,
then add the value from our original environment, if
the original environment defined a value for SHELL. */
extern struct variable shell_var;
if (streq (v->name, "SHELL") && shell_var.value)
{
v = &shell_var;
@ -1136,7 +1134,7 @@ set_special_var (struct variable *var)
* result. This removes only ONE newline (if any) at the end, for maximum
* compatibility with the *BSD makes. If it fails, returns NULL. */
char *
static char *
shell_result (const char *p)
{
char *buf;
@ -1739,7 +1737,7 @@ print_variable_data_base (void)
{
struct pattern_var *p;
int rules = 0;
unsigned int rules = 0;
for (p = pattern_vars; p != 0; p = p->next)
{

View File

@ -110,6 +110,7 @@ struct pattern_var
extern char *variable_buffer;
extern struct variable_set_list *current_variable_set_list;
extern struct variable *default_goal_var;
extern struct variable shell_var;
/* expand.c */
char *variable_buffer_output (char *ptr, const char *string, unsigned int length);
@ -148,7 +149,6 @@ void pop_variable_scope (void);
void define_automatic_variables (void);
void initialize_file_variables (struct file *file, int reading);
void print_file_variables (const struct file *file);
void print_file_variables (const struct file *file);
void print_target_variables (const struct file *file);
void merge_variable_set_lists (struct variable_set_list **to_list,
struct variable_set_list *from_list);

View File

@ -52,7 +52,7 @@ static struct vpath *gpaths;
variable. */
void
build_vpath_lists ()
build_vpath_lists (void)
{
register struct vpath *new = 0;
register struct vpath *old, *nexto;