Commit be43ab4e by Neil Booth Committed by Neil Booth

c-opts.c (lang_flags): Update for new spelling of flags.

	* 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
parent 4682ae04
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> 2003-06-15 Andreas Jaeger <aj@suse.de>
* alloc-pool.c: Convert to ISO C90 prototypes. * alloc-pool.c: Convert to ISO C90 prototypes.
......
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> 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
* utils.c (begin_subprog_body): Adjust init_function_start call. * utils.c (begin_subprog_body): Adjust init_function_start call.
......
...@@ -18,29 +18,13 @@ ...@@ -18,29 +18,13 @@
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA. ; 02111-1307, USA.
; See c.opt for a description of this file's format.
; 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.
; Please try to keep this file in ASCII collating order. ; Please try to keep this file in ASCII collating order.
Language
Ada
I I
Ada Joined Separate Ada Joined Separate
......
...@@ -294,7 +294,7 @@ gnat_init_options () ...@@ -294,7 +294,7 @@ gnat_init_options ()
gnat_argv[0] = save_argv[0]; /* name of the command */ gnat_argv[0] = save_argv[0]; /* name of the command */
gnat_argc = 1; gnat_argc = 1;
return CL_ADA; return CL_Ada;
} }
/* Here is the function to handle the compiler error processing in GCC. */ /* Here is the function to handle the compiler error processing in GCC. */
......
...@@ -50,7 +50,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -50,7 +50,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
# define TARGET_EBCDIC 0 # define TARGET_EBCDIC 0
#endif #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; static int saved_lineno;
...@@ -1537,7 +1537,7 @@ write_langs (buf, flags) ...@@ -1537,7 +1537,7 @@ write_langs (buf, flags)
*buf = '\0'; *buf = '\0';
if (flags & CL_C) if (flags & CL_C)
strcat (buf, "C"); strcat (buf, "C");
if (flags & CL_OBJC) if (flags & CL_ObjC)
{ {
if (*buf) if (*buf)
strcat (buf, "/"); strcat (buf, "/");
......
...@@ -29,10 +29,10 @@ ...@@ -29,10 +29,10 @@
; RejectNegative to the second field. ; RejectNegative to the second field.
; The second field is a space-separated list of which parts of the ; The second field is a space-separated list of which parts of the
; compiler recognize the switch. Current valid entries are "C", ; compiler recognize the switch, as declared by "Language" entries.
; "ObjC", "C++" and "ObjC++". If the switch takes an argument, then ; If the switch takes an argument, then you should also specify
; you should also specify "Joined" and/or "Separate" to indicate where ; "Joined" and/or "Separate" to indicate where the argument can
; the argument can appear. ; appear.
; Comments can appear on their own line anwhere in the file, preceded ; Comments can appear on their own line anwhere in the file, preceded
; by a semicolon. Whitespace is permitted before the semicolon. ; by a semicolon. Whitespace is permitted before the semicolon.
...@@ -43,6 +43,18 @@ ...@@ -43,6 +43,18 @@
; Please try to keep this file in ASCII collating order. ; Please try to keep this file in ASCII collating order.
Language
C
Language
ObjC
Language
C++
Language
ObjC++
-help -help
C ObjC C++ ObjC++ C ObjC C++ ObjC++
......
...@@ -450,9 +450,6 @@ Details of source file suffixes for that language and @option{-x ...@@ -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 Entries in @code{default_compilers} in @file{gcc.c} for source file
suffixes for that language. suffixes for that language.
@item @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 Preferably test suites, which may be under @file{gcc/testsuite} or
runtime library directories. FIXME: document somewhere how to write runtime library directories. FIXME: document somewhere how to write
test suite harnesses. test suite harnesses.
...@@ -605,9 +602,8 @@ Move to the stage directory files not included in @code{stagestuff} in ...@@ -605,9 +602,8 @@ Move to the stage directory files not included in @code{stagestuff} in
@item lang.opt @item lang.opt
This file registers the set of switches that the front end accepts on This file registers the set of switches that the front end accepts on
the command line. The file format is documented in each the command line. The file format is documented in the file
@file{lang.opt} file in the GCC tree. @file{lang.opt} is processed @file{c.opt}. These files are processed by the script @file{opts.sh}.
by the script @file{opts.sh}.
@item lang-options.h @item lang-options.h
This file provides entries for @code{documented_lang_options} in This file provides entries for @code{documented_lang_options} in
@file{toplev.c} describing command-line options the front end accepts @file{toplev.c} describing command-line options the front end accepts
......
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> Sat Jun 14 18:13:00 2003 Nathan Sidwell <nathan@codesourcery.com>
* com.c (stor_parm_decls): Adjust init_function_start call. * com.c (stor_parm_decls): Adjust init_function_start call.
......
...@@ -18,29 +18,13 @@ ...@@ -18,29 +18,13 @@
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA. ; 02111-1307, USA.
; See c.opt for a description of this file's format.
; 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.
; Please try to keep this file in ASCII collating order. ; Please try to keep this file in ASCII collating order.
Language
F77
I I
F77 Joined F77 Joined
......
2003-06-15 Neil Booth <neil@daikokuya.co.uk> 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. * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
2003-06-14 Neil Booth <neil@daikokuya.co.uk> 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
......
...@@ -695,7 +695,7 @@ java_init_options (void) ...@@ -695,7 +695,7 @@ java_init_options (void)
jcf_path_init (); jcf_path_init ();
return CL_JAVA; return CL_Java;
} }
static bool static bool
......
...@@ -18,29 +18,13 @@ ...@@ -18,29 +18,13 @@
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA. ; 02111-1307, USA.
; See c.opt for a description of this file's format.
; 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.
; Please try to keep this file in ASCII collating order. ; Please try to keep this file in ASCII collating order.
Language
Java
I I
Java Joined Java Joined
......
...@@ -33,18 +33,9 @@ struct cl_option ...@@ -33,18 +33,9 @@ struct cl_option
extern const struct cl_option cl_options[]; extern const struct cl_option cl_options[];
extern const unsigned int cl_options_count; 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_JOINED (1 << 24) /* If takes joined argument. */
#define CL_SEPARATE (1 << 25) /* If takes a separate argument. */ #define CL_SEPARATE (1 << 25) /* If takes a separate argument. */
#define CL_REJECT_NEGATIVE (1 << 26) /* Reject no- form. */ #define CL_REJECT_NEGATIVE (1 << 26) /* Reject no- form. */
#define CL_COMMON (1 << 27) /* Language-independent. */
#endif #endif
...@@ -42,37 +42,38 @@ ${AWK} ' ...@@ -42,37 +42,38 @@ ${AWK} '
/^[ \t]*(;|$)/ { next } /^[ \t]*(;|$)/ { next }
/^[^ \t]/ { gsub ("\n", "\034", $0); print } /^[^ \t]/ { gsub ("\n", "\034", $0); print }
' "$@" | ${SORT} | ${AWK} ' ' "$@" | ${SORT} | ${AWK} '
function switch_flags (langs, flags) function switch_flags (flags, result)
{ {
langs = ":" langs ":" flags = " " flags " "
gsub( " ", ":", langs) result = "0"
flags = "0" for (j = 0; j < n_langs; j++) {
if (langs ~ ":C:") flags = flags " | CL_C" if (flags ~ " " langs[j] " ")
if (langs ~ ":ObjC:") flags = flags " | CL_OBJC" result = result " | " macros[j]
if (langs ~ ":C\\+\\+:") flags = flags " | CL_CXX" }
if (langs ~ ":ObjC\\+\\+:") flags = flags " | CL_OBJCXX" if (flags ~ " Common ") result = result " | CL_COMMON"
if (langs ~ ":F77:") flags = flags " | CL_F77" if (flags ~ " Joined ") result = result " | CL_JOINED"
if (langs ~ ":Java:") flags = flags " | CL_JAVA" if (flags ~ " Separate ") result = result " | CL_SEPARATE"
if (langs ~ ":Ada:") flags = flags " | CL_ADA" if (flags ~ " RejectNegative ") result = result " | CL_REJECT_NEGATIVE"
if (langs ~ ":Tree:") flags = flags " | CL_TREELANG" sub( "^0 \\| ", "", result )
if (langs ~ ":Common:") flags = flags " | CL_COMMON" return result
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
} }
BEGIN { BEGIN {
FS = "\034" FS = "\034"
n_opts = 0 n_opts = 0
n_langs = 0
} }
# Collect the text and flags of each option into an array # Collect the text and flags of each option into an array
{ {
opts[n_opts] = $1 if ($1 == "Language") {
flags[n_opts] = $2 langs[n_langs] = $2
n_opts++; 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 # Dump out an enumeration into a .h file, and an array of options into a
...@@ -83,7 +84,13 @@ ${AWK} ' ...@@ -83,7 +84,13 @@ ${AWK} '
comma = "," comma = ","
print "/* This file is auto-generated by opts.sh. */\n" > h_file 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 "/* This file is auto-generated by opts.sh. */\n" > c_file
print "#include \"" h_file "\"" >> c_file print "#include \"" h_file "\"" >> c_file
......
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> 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
* treetree.c (tree_code_create_function_initial): Adjust * treetree.c (tree_code_create_function_initial): Adjust
......
...@@ -18,42 +18,26 @@ ...@@ -18,42 +18,26 @@
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA. ; 02111-1307, USA.
; See c.opt for a description of this file's format.
; 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.
; Please try to keep this file in ASCII collating order. ; Please try to keep this file in ASCII collating order.
Language
Treelang
-help -help
Tree Treelang
flexer-trace flexer-trace
Tree Treelang
fparser-trace fparser-trace
Tree Treelang
v v
Tree Treelang
y y
Tree Treelang
; This comment is to ensure we retain the blank line above. ; This comment is to ensure we retain the blank line above.
...@@ -92,7 +92,7 @@ static unsigned int work_nesting_level = 0; ...@@ -92,7 +92,7 @@ static unsigned int work_nesting_level = 0;
int int
treelang_init_options (void) treelang_init_options (void)
{ {
return CL_TREELANG; return CL_Treelang;
} }
/* Process a switch - called by opts.c. */ /* Process a switch - called by opts.c. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment