c-opts.c (lang_flags): Update for new spelling of flags.
authorNeil Booth <neil@daikokuya.co.uk>
Sun, 15 Jun 2003 14:56:32 +0000 (14:56 +0000)
committerNeil Booth <neil@gcc.gnu.org>
Sun, 15 Jun 2003 14:56:32 +0000 (14:56 +0000)
* c-opts.c (lang_flags): Update for new spelling of flags.
(write_langs): Similarly.
* c.opt: Specify languages.
* opts.h: Remove languages.
* opts.sh: Recognise front-end defined languages.
ada:
* lang.opt: Declare Ada.
* misc.c (gnat_init_options): Update.
doc:
* sourcebuild.texi: Update.
f:
* lang.opt: Declare F77.
java:
* lang.opt: Declare Java.
* lang.c (java_init_options): Update.
treelang:
* lang.opt: Declare Treelang.  Update.
* tree1.c (treelang_init_options): Update.

From-SVN: r67976

17 files changed:
gcc/ChangeLog
gcc/ada/ChangeLog
gcc/ada/lang.opt
gcc/ada/misc.c
gcc/c-opts.c
gcc/c.opt
gcc/doc/sourcebuild.texi
gcc/f/ChangeLog
gcc/f/lang.opt
gcc/java/ChangeLog
gcc/java/lang.c
gcc/java/lang.opt
gcc/opts.h
gcc/opts.sh
gcc/treelang/ChangeLog
gcc/treelang/lang.opt
gcc/treelang/tree1.c

index 56d54267f61fa3f79dc0b848090bfee8fc7621b9..dbdc371caf693b89eee4d373db800dded524393b 100644 (file)
@@ -1,3 +1,13 @@
+2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
+
+       * c-opts.c (lang_flags): Update for new spelling of flags.
+       (write_langs): Similarly.
+       * c.opt: Specify languages.
+       * opts.h: Remove languages.
+       * opts.sh: Recognise front-end defined languages.
+doc:
+       * sourcebuild.texi: Update.
+
 2003-06-15  Andreas Jaeger  <aj@suse.de>
 
        * alloc-pool.c: Convert to ISO C90 prototypes.
index 740f535e0c7d5539481fe90af98185cc1568f7ec..aaadc708f7297180f158c410f990062e560fdd91 100644 (file)
@@ -1,3 +1,8 @@
+2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
+
+       * lang.opt: Declare Ada.
+       * misc.c (gnat_init_options): Update.
+
 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
 
        * utils.c (begin_subprog_body): Adjust init_function_start call.
index 0d5855b5a091025c38a6d969d01590e77d4dc33d..9d8b7ab221ddbb26f72d0ebe597d13b096ec8fb6 100644 (file)
 ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 ; 02111-1307, USA.
 
-
-; This file is processed by the script opts.sh.  It is a database of
-; command line options, with each record separated by a blank line,
-; and each field appearing on its own line.  The first field is the
-; command-line switch with the leading "-" removed.  All options
-; beginning with "f" or "W" are implicitly assumed to take a "no-"
-; form; this form should not be listed.  If you do not want this
-; negative form and you want it to be automatically rejected, add
-; RejectNegative to the second field.
-
-; The second field should contain "Ada".  If the switch takes an
-; argument, then you should also specify "Joined" and/or "Separate" to
-; indicate where the argument can appear.
-
-; Comments can appear on their own line anwhere in the file, preceded
-; by a semicolon.  Whitespace is permitted before the semicolon.
-
-; For each switch XXX below, an enumeration constant is created by the
-; script opts.sh spelt OPT_XXX, but with all non-alphanumeric
-; characters replaced with an underscore.
+; See c.opt for a description of this file's format.
 
 ; Please try to keep this file in ASCII collating order.
 
+Language
+Ada
+
 I
 Ada Joined Separate
 
index 4d171fc1a6fa04257004660f068d788cc0383a98..81bc3d948761bd92e0507b5eb456b5c0e0b4ff3f 100644 (file)
@@ -294,7 +294,7 @@ gnat_init_options ()
   gnat_argv[0] = save_argv[0];     /* name of the command */ 
   gnat_argc = 1;
 
-  return CL_ADA;
+  return CL_Ada;
 }
 
 /* Here is the function to handle the compiler error processing in GCC.  */
index f1c87cb41b695fe8358c10e5e7816f89f6db36da..680c3cbb72284d0da465aee9e97bb0e10d8ac9b3 100644 (file)
@@ -50,7 +50,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 # define TARGET_EBCDIC 0
 #endif
 
-static const int lang_flags[] = {CL_C, CL_OBJC, CL_CXX, CL_OBJCXX};
+static const int lang_flags[] = {CL_C, CL_ObjC, CL_CXX, CL_ObjCXX};
 
 static int saved_lineno;
 
@@ -1537,7 +1537,7 @@ write_langs (buf, flags)
   *buf = '\0';
   if (flags & CL_C)
     strcat (buf, "C");
-  if (flags & CL_OBJC)
+  if (flags & CL_ObjC)
     {
       if (*buf)
        strcat (buf, "/");
index 6cd9295dafc4b580fd5f73397a2e7b51ee3229e9..f277512efbca6f77637c42b83a969ef9f9228320 100644 (file)
--- a/gcc/c.opt
+++ b/gcc/c.opt
 ; RejectNegative to the second field.
 
 ; The second field is a space-separated list of which parts of the
-; compiler recognize the switch.  Current valid entries are "C",
-; "ObjC", "C++" and "ObjC++".  If the switch takes an argument, then
-; you should also specify "Joined" and/or "Separate" to indicate where
-; the argument can appear.
+; compiler recognize the switch, as declared by "Language" entries.
+; If the switch takes an argument, then you should also specify
+; "Joined" and/or "Separate" to indicate where the argument can
+; appear.
 
 ; Comments can appear on their own line anwhere in the file, preceded
 ; by a semicolon.  Whitespace is permitted before the semicolon.
 
 ; Please try to keep this file in ASCII collating order.
 
+Language
+C
+
+Language
+ObjC
+
+Language
+C++
+
+Language
+ObjC++
+
 -help
 C ObjC C++ ObjC++
 
index 0bda374ca7258f5bf13dbfbea57d51917f9d3c97..a079bce266f16eb51bb82234efc4487221af210d 100644 (file)
@@ -450,9 +450,6 @@ Details of source file suffixes for that language and @option{-x
 Entries in @code{default_compilers} in @file{gcc.c} for source file
 suffixes for that language.
 @item
-A bitmask in @file{opts.h} that flags each switch accepted by
-the front end, for example @code{CL_JAVA}.
-@item
 Preferably test suites, which may be under @file{gcc/testsuite} or
 runtime library directories.  FIXME: document somewhere how to write
 test suite harnesses.
@@ -605,9 +602,8 @@ Move to the stage directory files not included in @code{stagestuff} in
 
 @item lang.opt
 This file registers the set of switches that the front end accepts on
-the command line.  The file format is documented in each
-@file{lang.opt} file in the GCC tree.  @file{lang.opt} is processed
-by the script @file{opts.sh}.
+the command line.  The file format is documented in the file
+@file{c.opt}.  These files are processed by the script @file{opts.sh}.
 @item lang-options.h
 This file provides entries for @code{documented_lang_options} in
 @file{toplev.c} describing command-line options the front end accepts
index ab62160ad137a6c664f9c1360302880ab74fd292..f1923fad5841934be9da71ec56d385d457f785fa 100644 (file)
@@ -1,3 +1,7 @@
+Sun Jun 15 15:56:51 2003  Neil Booth  <neil@daikokuya.co.uk>
+
+       * lang.opt: Declare F77.
+
 Sat Jun 14 18:13:00 2003  Nathan Sidwell  <nathan@codesourcery.com>
 
        * com.c (stor_parm_decls): Adjust init_function_start call.
index 327556ff33681d2eb0e921d17e18a4851f83fd2a..c6e453e9c57d1cc6cb13532682aa2b8519526ec8 100644 (file)
 ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 ; 02111-1307, USA.
 
-
-; This file is processed by the script opts.sh.  It is a database of
-; command line options, with each record separated by a blank line,
-; and each field appearing on its own line.  The first field is the
-; command-line switch with the leading "-" removed.  All options
-; beginning with "f" or "W" are implicitly assumed to take a "no-"
-; form; this form should not be listed.  If you do not want this
-; negative form and you want it to be automatically rejected, add
-; RejectNegative to the second field.
-
-; The second field should contain "F77".  If the switch takes an
-; argument, then you should also specify "Joined" and/or "Separate" to
-; indicate where the argument can appear.
-
-; Comments can appear on their own line anwhere in the file, preceded
-; by a semicolon.  Whitespace is permitted before the semicolon.
-
-; For each switch XXX below, an enumeration constant is created by the
-; script opts.sh spelt OPT_XXX, but with all non-alphanumeric
-; characters replaced with an underscore.
+; See c.opt for a description of this file's format.
 
 ; Please try to keep this file in ASCII collating order.
 
+Language
+F77
+
 I
 F77 Joined
 
index 37dacc531a2013c08017125a7fbb2666d9685ddd..e2c58664bd34b06eec776555d9db4b18abc7fe8e 100644 (file)
@@ -1,3 +1,8 @@
+2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
+
+       * lang.opt: Declare Java.
+       * lang.c (java_init_options): Update.
+
 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
 
        * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
index 3ac6fd2e883f81f9efac9071fa7b4bc5aabedd5c..ff20985fc50cc89ee3f9e19407d94609d0b83dd6 100644 (file)
@@ -695,7 +695,7 @@ java_init_options (void)
 
   jcf_path_init ();
 
-  return CL_JAVA;
+  return CL_Java;
 }
 
 static bool
index 166b1b0afa5841fda144f7aeb913517c5a4a5f14..e108fb72c2c6553cb936ee12647252508f6c18a8 100644 (file)
 ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 ; 02111-1307, USA.
 
-
-; This file is processed by the script opts.sh.  It is a database of
-; command line options, with each record separated by a blank line,
-; and each field appearing on its own line.  The first field is the
-; command-line switch with the leading "-" removed.  All options
-; beginning with "f" or "W" are implicitly assumed to take a "no-"
-; form; this form should not be listed.  If you do not want this
-; negative form and you want it to be automatically rejected, add
-; RejectNegative to the second field.
-
-; The second field should contain "Java".  If the switch takes an
-; argument, then you should also specify "Joined" and/or "Separate" to
-; indicate where the argument can appear.
-
-; Comments can appear on their own line anwhere in the file, preceded
-; by a semicolon.  Whitespace is permitted before the semicolon.
-
-; For each switch XXX below, an enumeration constant is created by the
-; script opts.sh spelt OPT_XXX, but with all non-alphanumeric
-; characters replaced with an underscore.
+; See c.opt for a description of this file's format.
 
 ; Please try to keep this file in ASCII collating order.
 
+Language
+Java
+
 I
 Java Joined
 
index 340092e87d3792b405b2801ad2fdb1bb4131e6db..31c6e8e7f312925b15fd218f1fa63975423c18ee 100644 (file)
@@ -33,18 +33,9 @@ struct cl_option
 extern const struct cl_option cl_options[];
 extern const unsigned int cl_options_count;
 
-#define CL_C                   (1 << 0) /* Only C.  */
-#define CL_OBJC                        (1 << 1) /* Only ObjC.  */
-#define CL_CXX                 (1 << 2) /* Only C++.  */
-#define CL_OBJCXX              (1 << 3) /* Only ObjC++.  */
-#define CL_F77                 (1 << 4) /* Only Fortran.  */
-#define CL_JAVA                        (1 << 5) /* Only Java.  */
-#define CL_ADA                 (1 << 6) /* Only Ada.  */
-#define CL_TREELANG            (1 << 7) /* Only Treelang.  */
-#define CL_COMMON              (1 << 8) /* Language-independent.  */
-
 #define CL_JOINED              (1 << 24) /* If takes joined argument.  */
 #define CL_SEPARATE            (1 << 25) /* If takes a separate argument.  */
 #define CL_REJECT_NEGATIVE     (1 << 26) /* Reject no- form.  */
+#define CL_COMMON              (1 << 27) /* Language-independent.  */
 
 #endif
index 3e670600d7eb0f24c32c38ef63c92af9e3fd52dc..dbff2f8cf313dbe074c96068c4607bb14dc49060 100644 (file)
@@ -42,37 +42,38 @@ ${AWK} '
        /^[ \t]*(;|$)/  { next }
        /^[^ \t]/       { gsub ("\n", "\034", $0); print }
 ' "$@" | ${SORT} | ${AWK} '
-    function switch_flags (langs,   flags)
+    function switch_flags (flags,   result)
     {
-       langs = ":" langs ":"
-       gsub( " ", ":", langs)
-       flags = "0"
-        if (langs ~ ":C:") flags = flags " | CL_C"
-        if (langs ~ ":ObjC:") flags = flags " | CL_OBJC"
-        if (langs ~ ":C\\+\\+:") flags = flags " | CL_CXX"
-        if (langs ~ ":ObjC\\+\\+:") flags = flags " | CL_OBJCXX"
-        if (langs ~ ":F77:") flags = flags " | CL_F77"
-        if (langs ~ ":Java:") flags = flags " | CL_JAVA"
-        if (langs ~ ":Ada:") flags = flags " | CL_ADA"
-        if (langs ~ ":Tree:") flags = flags " | CL_TREELANG"
-        if (langs ~ ":Common:") flags = flags " | CL_COMMON"
-        if (langs ~ ":Joined:") flags = flags " | CL_JOINED"
-        if (langs ~ ":Separate:") flags = flags " | CL_SEPARATE"
-        if (langs ~ ":RejectNegative:") flags = flags " | CL_REJECT_NEGATIVE"
-       sub( "^0 \\| ", "", flags )
-       return flags
+       flags = " " flags " "
+       result = "0"
+       for (j = 0; j < n_langs; j++) {
+           if (flags ~ " " langs[j] " ")
+               result = result " | " macros[j]
+       }
+        if (flags ~ " Common ") result = result " | CL_COMMON"
+        if (flags ~ " Joined ") result = result " | CL_JOINED"
+        if (flags ~ " Separate ") result = result " | CL_SEPARATE"
+        if (flags ~ " RejectNegative ") result = result " | CL_REJECT_NEGATIVE"
+       sub( "^0 \\| ", "", result )
+       return result
     }
 
     BEGIN {
        FS = "\034"
        n_opts = 0
+       n_langs = 0
     }
 
 # Collect the text and flags of each option into an array
     {
-       opts[n_opts] = $1
-       flags[n_opts] = $2
-       n_opts++;
+       if ($1 == "Language") {
+               langs[n_langs] = $2
+               n_langs++;
+       } else {
+               opts[n_opts] = $1
+               flags[n_opts] = $2
+               n_opts++;
+       }
     }
 
 # Dump out an enumeration into a .h file, and an array of options into a
@@ -83,7 +84,13 @@ ${AWK} '
        comma = ","
 
        print "/* This file is auto-generated by opts.sh.  */\n" > h_file
-       print "enum opt_code\n{"                        >> h_file
+       for (i = 0; i < n_langs; i++) {
+           macros[i] = "CL_" langs[i]
+           gsub( "[^A-Za-z0-9_]", "X", macros[i] )
+           s = substr("         ", length (macros[i]))
+           print "#define " macros[i] s " (1 << " i ")" >> h_file
+       }
+       print "\nenum opt_code\n{"                      >> h_file
 
        print "/* This file is auto-generated by opts.sh.  */\n" > c_file
        print "#include \"" h_file "\""                 >> c_file
index 73c502ba168aa2b1d69c4c6d4171d86b86a14983..e74996778076c6b457fb605c55c6a1c77570087f 100644 (file)
@@ -1,3 +1,8 @@
+2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
+
+       * lang.opt: Declare Treelang.  Update.
+       * tree1.c (treelang_init_options): Update.
+
 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
 
        * treetree.c (tree_code_create_function_initial): Adjust
index 5d3a26686fc85e6d6678df1a15cd08d965d20cd7..a8fd70b068e6e75d45c5c801b13a6a0952b8e105 100644 (file)
 ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 ; 02111-1307, USA.
 
-
-; This file is processed by the script opts.sh.  It is a database of
-; command line options, with each record separated by a blank line,
-; and each field appearing on its own line.  The first field is the
-; command-line switch with the leading "-" removed.  All options
-; beginning with "f" or "W" are implicitly assumed to take a "no-"
-; form; this form should not be listed.  If you do not want this
-; negative form and you want it to be automatically rejected, add
-; RejectNegative to the second field.
-
-; The second field should contain "Tree".  If the switch takes an
-; argument, then you should also specify "Joined" and/or "Separate" to
-; indicate where the argument can appear.
-
-; Comments can appear on their own line anwhere in the file, preceded
-; by a semicolon.  Whitespace is permitted before the semicolon.
-
-; For each switch XXX below, an enumeration constant is created by the
-; script opts.sh spelt OPT_XXX, but with all non-alphanumeric
-; characters replaced with an underscore.
+; See c.opt for a description of this file's format.
 
 ; Please try to keep this file in ASCII collating order.
 
+Language
+Treelang
+
 -help
-Tree
+Treelang
 
 flexer-trace
-Tree
+Treelang
 
 fparser-trace
-Tree
+Treelang
 
 v
-Tree
+Treelang
 
 y
-Tree
+Treelang
 
 ; This comment is to ensure we retain the blank line above.
index 6be21a34095d806552fa9a2990cc13833d3c9a48..4c1a8468def8685c6fa38b152396a6062da7093f 100644 (file)
@@ -92,7 +92,7 @@ static unsigned int work_nesting_level = 0;
 int
 treelang_init_options (void)
 {
-  return CL_TREELANG;
+  return CL_Treelang;
 }
 
 /* Process a switch - called by opts.c.  */