case ')':
case '<':
case '>':
+ case '&':
obstack_1grow(obst, '\\');
/* FALLTHROUGH */
default:
add_flag(&cppflags_obst, "-U__SIZE_TYPE__");
add_flag(&cppflags_obst, "-D__SIZE_TYPE__=%s", type_to_string(type_size_t));
+ /* hack... */
+ add_flag(&cppflags_obst, "-D__builtin_memcpy=memcpy");
+
/* handle dependency generation */
if (dep_target[0] != '\0') {
add_flag(&cppflags_obst, "-MF");
GET_ARG_AFTER(opt, "-MT");
add_flag(&cppflags_obst, "-%s", option);
add_flag(&cppflags_obst, "%s", opt);
+ } else if (streq(option, "include")) {
+ const char *opt;
+ GET_ARG_AFTER(opt, "-include");
+ add_flag(&cppflags_obst, "-include");
+ add_flag(&cppflags_obst, "%s", opt);
+ } else if (streq(option, "isystem")) {
+ const char *opt;
+ GET_ARG_AFTER(opt, "-isystem");
+ add_flag(&cppflags_obst, "-isystem");
+ add_flag(&cppflags_obst, "%s", opt);
+ } else if (streq(option, "nostdinc")
+ || streq(option, "trigraphs")) {
+ /* pass these through to the preprocessor */
+ add_flag(&cppflags_obst, "%s", arg);
} else if (streq(option, "pipe")) {
/* here for gcc compatibility */
} else if (option[0] == 'f') {
strstart(orig_opt, "align-jumps=") ||
strstart(orig_opt, "align-functions=")) {
fprintf(stderr, "ignoring gcc option '-f%s'\n", orig_opt);
+ } else if (streq(orig_opt, "verbose-asm")) {
+ /* ignore: we always print verbose assembler */
} else {
char const *opt = orig_opt;
bool truth_value = true;
const char *opt;
GET_ARG_AFTER(opt, "-Wl,");
add_flag(&ldflags_obst, "-Wl,%s", opt);
+ } else if (streq(option + 1, "no-trigraphs")
+ || streq(option + 1, "undef")) {
+ add_flag(&cppflags_obst, "%s", arg);
} else {
set_warning_opt(&option[1]);
}