X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=main.c;h=6e55b36d053e36ad99d92c40ebd4840a29683e7f;hb=ce2e13de664ebd52daf7de055790546ecfece6ff;hp=4b51df557585d222b1ed7e20122926e98c9bdb3d;hpb=01429f12facbdfe07578900f3f02c61f50874d53;p=cparser diff --git a/main.c b/main.c index 4b51df5..6e55b36 100644 --- a/main.c +++ b/main.c @@ -512,7 +512,8 @@ static void usage(const char *argv0) fprintf(stderr, "Usage %s input [-o output] [-c]\n", argv0); } -static void print_cparser_version(void) { +static void print_cparser_version(void) +{ printf("cparser (%s) using libFirm (%u.%u", cparser_REVISION, ir_get_version_major(), ir_get_version_minor()); @@ -838,21 +839,21 @@ int main(int argc, char **argv) opt += 3; } - if (streq(opt, "dollars-in-identifiers")) { - allow_dollar_in_symbol = truth_value; - } if (streq(opt, "builtins")) { + if (streq(opt, "builtins")) { use_builtins = truth_value; + } else if (streq(opt, "dollars-in-identifiers")) { + allow_dollar_in_symbol = truth_value; + } else if (streq(opt, "omit-frame-pointer")) { + set_be_option(truth_value ? "omitfp" : "omitfp=no"); } else if (streq(opt, "short-wchar")) { wchar_atomic_kind = truth_value ? ATOMIC_TYPE_USHORT : ATOMIC_TYPE_INT; } else if (streq(opt, "signed-char")) { char_is_signed = truth_value; - } else if (streq(opt, "syntax-only")) { - mode = truth_value ? ParseOnly : CompileAssembleLink; - } else if (streq(opt, "omit-frame-pointer")) { - set_be_option(truth_value ? "omitfp" : "omitfp=no"); } else if (streq(opt, "strength-reduce")) { firm_option(truth_value ? "strength-red" : "no-strength-red"); + } else if (streq(opt, "syntax-only")) { + mode = truth_value ? ParseOnly : CompileAssembleLink; } else if (streq(opt, "unsigned-char")) { char_is_signed = !truth_value; } else if (streq(opt, "fast-math") || @@ -1128,6 +1129,10 @@ int main(int argc, char **argv) /* we do the lowering in ast2firm */ firm_opt.lower_bitfields = FALSE; + /* set the c_mode here, types depends on it */ + c_mode |= features_on; + c_mode &= ~features_off; + gen_firm_init(); init_symbol_table(); init_types(); @@ -1312,6 +1317,7 @@ default_cxx_warn: do_parsing: c_mode |= features_on; c_mode &= ~features_off; + init_tokens(); translation_unit_t *const unit = do_parsing(in, filename);