From 5b6970c9921f97cfe83232c0ac5ec210d62f9174 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Sun, 31 Aug 2008 22:10:14 +0000 Subject: [PATCH] Handle -falign-loops=, -falign-jumps= and -falign-functions= before removing the no- prefix. Also handle these switches without =. [r21604] --- main.c | 74 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/main.c b/main.c index 5328e65..d09119f 100644 --- a/main.c +++ b/main.c @@ -631,42 +631,48 @@ int main(int argc, char **argv) char const *orig_opt; GET_ARG_AFTER(orig_opt, "-f"); - char const *opt = orig_opt; - bool truth_value = true; - if (opt[0] == 'n' && opt[1] == 'o' && opt[2] == '-') { - truth_value = false; - opt += 3; - } - - if (streq(opt, "dollars-in-identifiers")) { - allow_dollar_in_symbol = truth_value; - } else if (streq(opt, "short-wchar")) { - opt_short_wchar_t = truth_value; - } else if (streq(opt, "syntax-only")) { - mode = ParseOnly; - } else if (streq(opt, "omit-frame-pointer")) { - set_be_option(truth_value ? "omitfp" : "omitfp=no"); - } else if (streq(opt, "strength-reduce")) { - firm_option("strength-red"); - } else if (streq(opt, "fast-math") || - streq(opt, "jump-tables") || - streq(opt, "unroll-loops") || - streq(opt, "expensive-optimizations") || - streq(opt, "common") || - streq(opt, "PIC") || - strstart(opt, "align-loops=") || - strstart(opt, "align-jumps=") || - strstart(opt, "align-functions=")) { + if (strstart(orig_opt, "align-loops=") || + strstart(orig_opt, "align-jumps=") || + strstart(orig_opt, "align-functions=")) { fprintf(stderr, "ignoring gcc option '-f%s'\n", orig_opt); } else { - int res = firm_option(orig_opt); - if (res == 0) { - fprintf(stderr, "error: unknown Firm option '-f%s'\n", - orig_opt); - argument_errors = true; - continue; - } else if (res == -1) { - help_displayed = true; + char const *opt = orig_opt; + bool truth_value = true; + if (opt[0] == 'n' && opt[1] == 'o' && opt[2] == '-') { + truth_value = false; + opt += 3; + } + + if (streq(opt, "dollars-in-identifiers")) { + allow_dollar_in_symbol = truth_value; + } else if (streq(opt, "short-wchar")) { + opt_short_wchar_t = truth_value; + } else if (streq(opt, "syntax-only")) { + mode = ParseOnly; + } else if (streq(opt, "omit-frame-pointer")) { + set_be_option(truth_value ? "omitfp" : "omitfp=no"); + } else if (streq(opt, "strength-reduce")) { + firm_option("strength-red"); + } else if (streq(opt, "fast-math") || + streq(opt, "jump-tables") || + streq(opt, "unroll-loops") || + streq(opt, "expensive-optimizations") || + streq(opt, "common") || + streq(opt, "PIC") || + streq(opt, "align-loops") || + streq(opt, "align-jumps") || + streq(opt, "align-functions")) { + fprintf(stderr, "ignoring gcc option '-f%s'\n", orig_opt); + } else { + int res = firm_option(orig_opt); + if (res == 0) { + fprintf(stderr, "error: unknown Firm option '-f%s'\n", + orig_opt); + argument_errors = true; + continue; + } else if (res == -1) { + help_displayed = true; + } } } } else if (option[0] == 'b') { -- 2.20.1