2012-11-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
authormanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Nov 2012 18:11:01 +0000 (18:11 +0000)
committermanu <manu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Nov 2012 18:11:01 +0000 (18:11 +0000)
* optc-gen.awk: Factor code out to...
* opt-functions.awk (lang_enabled_by): ... this new function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193303 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/opt-functions.awk
gcc/optc-gen.awk

index 045faac..88f9bb9 100644 (file)
@@ -1,5 +1,10 @@
 2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
+       * optc-gen.awk: Factor code out to...
+       * opt-functions.awk (lang_enabled_by): ... this new function.
+
+2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
        PR c/53063
        * common.opt (Wswitch,Wswitch-default,Wswitch-enum): Move to c.opt.
 
index 13de5e4..4a81e88 100644 (file)
@@ -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 ";";
+        }
+    }
+}
+
index 87575c2..cc09888 100644 (file)
@@ -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);
     }
 }