OSDN Git Service

Fix AIX version number in comment.
[pf3gnuchains/gcc-fork.git] / gcc / opth-gen.awk
index 1a63bc9..9aa18a1 100644 (file)
@@ -1,10 +1,10 @@
-#  Copyright (C) 2003,2004 Free Software Foundation, Inc.
+#  Copyright (C) 2003,2004,2005,2006,2007 Free Software Foundation, Inc.
 #  Contributed by Kelley Cook, June 2004.
 #  Original code from Neil Booth, May 2003.
 #
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any
+# Free Software Foundation; either version 3, or (at your option) any
 # later version.
 # 
 # This program is distributed in the hope that it will be useful,
@@ -13,8 +13,8 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
 
 # This Awk script reads in the option records generated from 
 # opt-gather.awk, combines the flags of duplicate options and generates a
@@ -55,12 +55,13 @@ BEGIN {
 # Dump out an enumeration into a .h file.
 # Combine the flags of duplicate options.
 END {
-print "/* This file is auto-generated by opts.sh.  */"
+print "/* This file is auto-generated by opth-gen.awk.  */"
 print ""
 print "#ifndef OPTIONS_H"
 print "#define OPTIONS_H"
 print ""
 print "extern int target_flags;"
+print "extern int target_flags_explicit;"
 print ""
 
 for (i = 0; i < n_opts; i++) {
@@ -118,9 +119,18 @@ print ""
 
 for (i = 0; i < n_opts; i++) {
        opt = opt_args("InverseMask", flags[i])
-       if (opt ~ ",")
-               print "#define TARGET_" nth_arg(1, opt) \
-                     " ((target_flags & MASK_" nth_arg(0, opt) ") == 0)"
+       if (opt ~ ",") {
+               vname = var_name(flags[i])
+               macro = "OPTION_"
+               mask = "OPTION_MASK_"
+               if (vname == "") {
+                       vname = "target_flags"
+                       macro = "TARGET_"
+                       mask = "MASK_"
+               }
+               print "#define " macro nth_arg(1, opt) \
+                     " ((" vname " & " mask nth_arg(0, opt) ") == 0)"
+       }
 }
 print ""
 
@@ -130,6 +140,7 @@ for (i = 0; i < n_langs; i++) {
        s = substr("            ", length (macros[i]))
        print "#define " macros[i] s " (1 << " i ")"
     }
+print "#define CL_LANG_ALL   ((1 << " n_langs ") - 1)"
 
 print ""
 print "enum opt_code"
@@ -149,7 +160,7 @@ for (i = 0; i < n_opts; i++) {
 
        len = length (opts[i]);
        enum = "OPT_" opts[i]
-       if (opts[i] == "finline-limit=")
+       if (opts[i] == "finline-limit=" || opts[i] == "Wlarger-than=")
                enum = enum "eq"
        gsub ("[^A-Za-z0-9]", "_", enum)