From 0829c7f7c5210cd1581042115cfe95c97283f44c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20L=C3=B3pez-Ib=C3=A1=C3=B1ez?= Date: Wed, 7 Nov 2012 18:11:01 +0000 Subject: [PATCH] optc-gen.awk: Factor code out to... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2012-11-07 Manuel López-Ibáñez * optc-gen.awk: Factor code out to... * opt-functions.awk (lang_enabled_by): ... this new function. From-SVN: r193303 --- gcc/ChangeLog | 5 +++++ gcc/opt-functions.awk | 32 ++++++++++++++++++++++++++++++++ gcc/optc-gen.awk | 29 ++++------------------------- 3 files changed, 41 insertions(+), 25 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 045faac5554..88f9bb92e24 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-11-07 Manuel López-Ibáñez + + * optc-gen.awk: Factor code out to... + * opt-functions.awk (lang_enabled_by): ... this new function. + 2012-11-07 Manuel López-Ibáñez PR c/53063 diff --git a/gcc/opt-functions.awk b/gcc/opt-functions.awk index 13de5e48ed1..4a81e88c340 100644 --- a/gcc/opt-functions.awk +++ b/gcc/opt-functions.awk @@ -313,3 +313,35 @@ function search_var_name(name, opt_numbers, opts, flags, n_opts) } return "" } + +# Handle LangEnabledBy(ENABLED_BY_LANGS, ENABLEDBY_NAME, ENABLEDBY_POSARG, +# ENABLEDBY_NEGARG). This function does not return anything. +function lang_enabled_by(enabledby_langs, enabledby_name, enabledby_posarg, enabledby_negarg) +{ + n_enabledby_arg_langs = split(enabledby_langs, enabledby_arg_langs, " "); + enabledby_index = opt_numbers[enabledby_name]; + if (enabledby_index == "") { + print "#error LangEnabledby: " enabledby_name + } else { + if (enabledby_posarg != "" && enabledby_negarg != "") { + with_args = "," enabledby_posarg "," enabledby_negarg + } else if (enabledby_posarg == "" && enabledby_negarg == "") { + with_args = "" + } else { + print "#error LangEnabledBy("enabledby_langs","enabledby_name", " \ + enabledby_posarg", " enabledby_negargs \ + ") with three arguments, it should have either 2 or 4" + } + + for (j = 1; j <= n_enabledby_arg_langs; j++) { + lang_name = lang_sanitized_name(enabledby_arg_langs[j]); + lang_index = lang_numbers[enabledby_arg_langs[j]]; + if (enables[lang_name,enabledby_name] == "") { + enabledby[lang_name,n_enabledby_lang[lang_index]] = enabledby_name; + n_enabledby_lang[lang_index]++; + } + enables[lang_name,enabledby_name] = enables[lang_name,enabledby_name] opts[i] with_args ";"; + } + } +} + diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk index 87575c22af1..cc098887ea4 100644 --- a/gcc/optc-gen.awk +++ b/gcc/optc-gen.awk @@ -73,32 +73,11 @@ for (i = 0; i < n_opts; i++) { enabledby_arg = opt_args("LangEnabledBy", flags[i]); if (enabledby_arg != "") { - n_enabledby_arg_langs = split(nth_arg(0, enabledby_arg), enabledby_arg_langs, " "); + enabledby_langs = nth_arg(0, enabledby_arg); enabledby_name = nth_arg(1, enabledby_arg); - enabledby_posarg = nth_arg(2, enabledby_arg) - enabledby_negarg = nth_arg(3, enabledby_arg) - enabledby_index = opt_numbers[enabledby_name]; - if (enabledby_index == "") { - print "#error LangEnabledby: " enabledby_name - } else { - if (enabledby_posarg != "" && enabledby_negarg != "") { - with_args = "," enabledby_posarg "," enabledby_negarg - } else if (enabledby_posarg == "" && enabledby_negarg == "") { - with_args = "" - } else { - print "#error LangEnabledBy with three arguments, it should have either 2 or 4" - } - - for (j = 1; j <= n_enabledby_arg_langs; j++) { - lang_name = lang_sanitized_name(enabledby_arg_langs[j]); - lang_index = lang_numbers[enabledby_arg_langs[j]]; - if (enables[lang_name,enabledby_name] == "") { - enabledby[lang_name,n_enabledby_lang[lang_index]] = enabledby_name; - n_enabledby_lang[lang_index]++; - } - enables[lang_name,enabledby_name] = enables[lang_name,enabledby_name] opts[i] with_args ";"; - } - } + enabledby_posarg = nth_arg(2, enabledby_arg); + enabledby_negarg = nth_arg(3, enabledby_arg); + lang_enabled_by(enabledby_langs, enabledby_name, enabledby_posarg, enabledby_negarg); } }