result = false;
goto out;
}
- output_obj = argv[i+1];
+ output_obj = x_strdup(argv[i+1]);
i++;
continue;
}
/* alternate form of -o, with no space */
if (str_startswith(argv[i], "-o")) {
- output_obj = &argv[i][2];
+ output_obj = x_strdup(&argv[i][2]);
continue;
}
output_obj = format("%s.gch", input_file);
} else {
char *p;
- output_obj = x_strdup(input_file);
- if ((p = strrchr(output_obj, '/'))) {
- output_obj = p+1;
- }
+ output_obj = basename(input_file);
p = strrchr(output_obj, '.');
if (!p || !p[1]) {
cc_log("Badly formed object filename");
base_dir = NULL;
args_free(orig_args); orig_args = NULL;
free(input_file); input_file = NULL;
- output_obj = NULL;
+ free(output_obj); output_obj = NULL;
free(output_dep); output_dep = NULL;
free(cached_obj_hash); cached_obj_hash = NULL;
free(cached_obj); cached_obj = NULL;
CHECK(cc_process_args(orig, &act_cpp, &act_cc));
CHECK_STR_EQ(act_cpp->argv[1], "--sysroot=/some/directory");
-
+ args_free(act_cpp);
+ args_free(act_cc);
cc_reset();
+
base_dir = "/some";
current_working_dir = get_cwd();
-
CHECK(cc_process_args(orig, &act_cpp, &act_cc));
CHECK(str_startswith(act_cpp->argv[1], "--sysroot=../"));
-
args_free(orig);
- base_dir = NULL;
- current_working_dir = NULL;
+ args_free(act_cpp);
+ args_free(act_cc);
+ cc_reset();
}
TEST_SUITE_END