" -Wp,-MD,wpmd -Wp,-MMD,wpmmd -Wp,-MP -Wp,-MT,wpmt -Wp,-MQ,wpmq -Wp,-MF,wpf"
struct args* orig = args_init_from_string(CMD " -c foo.c -o foo.o");
struct args* exp_cpp = args_init_from_string(CMD);
+ struct args* exp_extra = args_init(0, NULL);
#undef CMD
struct args* exp_cc = args_init_from_string("cc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
" -Wp,-MQ,wpmq -Wp,-MF,wpf"
struct args* orig = args_init_from_string(CMD " -c foo.c -o foo.o");
struct args* exp_cpp = args_init_from_string(CMD);
+ struct args* exp_extra = args_init(0, NULL);
#undef CMD
struct args* exp_cc = args_init_from_string("cc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
g_config.set_run_second_cpp(false);
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
" -MQ mq1 -MQ mq2 -Wp,-MD,wpmd -Wp,-MMD,wpmmd"
struct args* orig = args_init_from_string(CMD DEP_OPTS " -c foo.c -o foo.o");
struct args* exp_cpp = args_init_from_string(CMD DEP_OPTS);
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string(CMD " -c");
#undef CMD
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
g_config.set_run_second_cpp(true);
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
"cc -c -MMD -MFfoo.d -MT mt -MTmt -MQmq foo.c -o foo.o");
struct args* exp_cpp =
args_init_from_string("cc -MMD -MFfoo.d -MT mt -MTmt -MQmq");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("cc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
{
struct args* orig = args_init_from_string("cc -c -MF=path foo.c -o foo.o");
struct args* exp_cpp = args_init_from_string("cc -MFpath");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("cc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
+
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
extern char* current_working_dir;
char* arg_string;
struct args* orig;
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
g_config.set_base_dir(get_root());
orig = args_init_from_string(arg_string);
free(arg_string);
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_STR_EQ(act_cpp->argv[1], "--sysroot=./foo/bar");
args_free(orig);
extern char* current_working_dir;
char* arg_string;
struct args* orig;
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
g_config.set_base_dir(get_root());
orig = args_init_from_string(arg_string);
free(arg_string);
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_STR_EQ(act_cpp->argv[1], "--sysroot");
CHECK_STR_EQ(act_cpp->argv[2], "./foo");
struct args* orig =
args_init_from_string("cc -c foo.c -o foo.o -MMD -MT bar -MFfoo.d");
struct args* exp_cpp = args_init_from_string("cc -MMD -MT bar -MFfoo.d");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("cc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
+
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
args_init_from_string("cc -c foo.c -o foo.o -MMD -MFfoo.d -MT foo -MTbar");
struct args* exp_cpp =
args_init_from_string("cc -MMD -MFfoo.d -MT foo -MTbar");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("cc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
+
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
args_init_from_string("cc -c foo.c -o foo.o -MMD -MFfoo.d -MQ foo -MQbar");
struct args* exp_cpp =
args_init_from_string("cc -MMD -MFfoo.d -MQ foo -MQbar");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("cc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
+
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
args_init_from_string("gcc -c -MD -MP -MFfoo.d -MQ foo.d foo.c");
struct args* exp_cpp =
args_init_from_string("gcc -MD -MP -MFfoo.d -MQ foo.d");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("gcc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
+
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
args_init_from_string("gcc -c -MD -MP -MFfoo.d -MT foo.d foo.c");
struct args* exp_cpp =
args_init_from_string("gcc -MD -MP -MFfoo.d -MT foo.d");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("gcc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
+
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
struct args* orig =
args_init_from_string("gcc -c -MD -MP -MFfoo.d -MQfoo.d foo.c");
struct args* exp_cpp = args_init_from_string("gcc -MD -MP -MFfoo.d -MQfoo.d");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("gcc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
+
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
struct args* orig =
args_init_from_string("gcc -c -MD -MP -MFfoo.d -MTfoo.d foo.c");
struct args* exp_cpp = args_init_from_string("gcc -MD -MP -MFfoo.d -MTfoo.d");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("gcc -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
+
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
struct args* orig =
args_init_from_string("gcc -c -fprofile-generate=some/dir foo.c");
struct args* exp_cpp = args_init_from_string("gcc");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("gcc");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
+
char *s, *path;
create_file("foo.c", "");
args_add(exp_cc, "-c");
free(s);
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
args_init_from_string("gcc -c -fprofile-generate=some/dir foo.c");
struct args* exp_cpp =
args_init_from_string("gcc -fprofile-generate=some/dir");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc =
args_init_from_string("gcc -fprofile-generate=some/dir -c");
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
extern char* current_working_dir;
char* arg_string;
struct args* orig;
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
g_config.set_base_dir(get_root());
orig = args_init_from_string(arg_string);
free(arg_string);
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_STR_EQ("./foo", act_cpp->argv[2]);
args_free(orig);
char* cwd;
char* arg_string;
struct args* orig;
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
g_config.set_base_dir("/"); // posix
orig = args_init_from_string(arg_string);
free(arg_string);
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_STR_EQ("-isystem./foo", act_cpp->argv[1]);
free(cwd);
char* cwd;
char* arg_string;
struct args* orig;
- struct args *act_cpp = NULL, *act_cc = NULL;
+ struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
+ struct args* act_cc = NULL;
create_file("foo.c", "");
g_config.set_base_dir(x_strdup("/")); // posix
orig = args_init_from_string(arg_string);
free(arg_string);
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_STR_EQ("-I./foo", act_cpp->argv[1]);
free(cwd);
{
struct args* orig = args_init_from_string("cc -g1 -gsplit-dwarf foo.c -c");
struct args* exp_cpp = args_init_from_string("cc -g1 -gsplit-dwarf");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("cc -g1 -gsplit-dwarf -c");
struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
struct args* act_cc = NULL;
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);
{
struct args* orig = args_init_from_string("cc -gsplit-dwarf -g1 foo.c -c");
struct args* exp_cpp = args_init_from_string("cc -gsplit-dwarf -g1");
+ struct args* exp_extra = args_init(0, NULL);
struct args* exp_cc = args_init_from_string("cc -gsplit-dwarf -g1 -c");
struct args* act_cpp = NULL;
+ struct args* act_extra = NULL;
struct args* act_cc = NULL;
create_file("foo.c", "");
- CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+ CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+ CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
args_free(orig);