int dependency_filename_specified = 0;
/* is the dependency makefile target name specified with -MT or -MQ? */
int dependency_target_specified = 0;
- struct args *stripped_args;
+ struct args *stripped_args = NULL;
int argc = orig_args->argc;
char **argv = orig_args->argv;
+ int result = 1;
stripped_args = args_init(0, NULL);
if (strcmp(argv[i], "-E") == 0) {
cc_log("Compiler option -E is unsupported");
stats_update(STATS_UNSUPPORTED);
- return 0;
+ result = 0;
+ goto out;
}
/* these are too hard */
strcmp(argv[i], "-save-temps") == 0) {
cc_log("Compiler option %s is unsupported", argv[i]);
stats_update(STATS_UNSUPPORTED);
- return 0;
+ result = 0;
+ goto out;
}
/* These are too hard in direct mode. */
cc_log("More than one -arch compiler option"
" is unsupported");
stats_update(STATS_UNSUPPORTED);
- return 0;
+ result = 0;
+ goto out;
} else {
found_arch_opt = 1;
}
if (i == argc-1) {
cc_log("Missing argument to %s", argv[i]);
stats_update(STATS_ARGS);
- return 0;
+ result = 0;
+ goto out;
}
if (!input_file) {
explicit_language = argv[i+1];
if (i == argc-1) {
cc_log("Missing argument to %s", argv[i]);
stats_update(STATS_ARGS);
- return 0;
+ result = 0;
+ goto out;
}
output_obj = argv[i+1];
i++;
i++;
if (i == argc) {
cc_log("--ccache-skip lacks an argument");
- return 0;
+ result = 0;
+ goto out;
}
args_add(stripped_args, argv[i]);
continue;
cc_log("Missing argument to %s",
argv[i]);
stats_update(STATS_ARGS);
- return 0;
+ result = 0;
+ goto out;
}
args_add(stripped_args, argv[i]);
cc_log("Missing argument to %s",
argv[i]);
stats_update(STATS_ARGS);
- return 0;
+ result = 0;
+ goto out;
}
args_add(stripped_args, argv[i]);
cc_log("Unsupported source extension: %s", argv[i]);
stats_update(STATS_SOURCELANG);
}
- return 0;
+ result = 0;
+ goto out;
}
/* Rewrite to relative to increase hit rate. */
if (!input_file) {
cc_log("No input file found");
stats_update(STATS_NOINPUT);
- return 0;
+ result = 0;
+ goto out;
}
if (!found_c_opt) {
} else {
stats_update(STATS_LINK);
}
- return 0;
+ result = 0;
+ goto out;
}
if (explicit_language && strcmp(explicit_language, "none") == 0) {
if (!language_is_supported(explicit_language)) {
cc_log("Unsupported language: %s", explicit_language);
stats_update(STATS_SOURCELANG);
- return 0;
+ result = 0;
+ goto out;
}
actual_language = explicit_language;
} else {
if (!actual_language) {
cc_log("Unsupported source extension: %s", input_file);
stats_update(STATS_SOURCELANG);
- return 0;
+ result = 0;
+ goto out;
}
direct_i_file = language_is_preprocessed(actual_language);
if (output_obj && strcmp(output_obj, "-") == 0) {
stats_update(STATS_OUTSTDOUT);
cc_log("Output file is -");
- return 0;
+ result = 0;
+ goto out;
}
if (!output_obj) {
if (!p || !p[1]) {
cc_log("Badly formed object filename");
stats_update(STATS_ARGS);
- return 0;
+ result = 0;
+ goto out;
}
p[1] = found_S_opt ? 's' : 'o';
p[2] = 0;
&& !S_ISREG(st.st_mode)) {
cc_log("Not a regular file: %s", output_obj);
stats_update(STATS_DEVICE);
- return 0;
+ result = 0;
+ goto out;
}
/*
} else {
*compiler_args = args_copy(*preprocessor_args);
}
- args_free(stripped_args);
- return 1;
+out:
+ args_free(stripped_args);
+ return result;
}
static unsigned parse_sloppiness(char *p)