Makefile.in: Update to use common.opt and lang_opt_files.

* Makefile.in: Update to use common.opt and lang_opt_files.
	(c-options.c, c-options.h): Remove.
	(options.c, options.h): Add.
	* c-opts.c: Include options.h not c-options.h.
	* common.opt: New file.
	* configure, configure.in: Add lang_opt_files.
	* opts.c: Include flags.h and diagnostic.h.
	(common_handle_option): New.
	(handle_option): Update to recognize common options and all
	language-dependent options.
	* opts.h (CL_F77, CL_JAVA, CL_ADA, CL_COMMON, CL_TREELANG): New.
	(struct cl_option): Make flags of type int.
	* opts.h: Flag option with front ends to which it applies.
	Handle duplicate options.
	* toplev.c (filename): Remove.
	(independent_decode_option): Don't handle filenames and -quiet.
	(process_options, do_compile): Update.
ada:
	* Make-lang.in: Update to use options.c and options.h.
	* misc.c: Include options.h not aoptions.h.
	(gnat_handle_option): Abort on unrecognized switch.
	(gnat_init_options): Request Ada switches.
cp:
	* Make-lang.in: Remove c-options.o.
f:
	* Make-lang.in: Update to use options.c and options.h.
	* top.c: Include options.h not f-options.h.
	(gnat_handle_option): Abort on unrecognized switch.
	(ffe_init_options): From com.c.  Request F77 options.
	(ffe_handle_options): Abort on unrecognized switch.
	* com.c (ffe_init_options): Move to top.c.
	* top.h (fee_init_options): New.
java:
	* Make-lang.in: Update to use options.c and options.h.
	* lang.c: Include options.h not j-options.h.
	(java_handle_option): Abort on unrecognized option.
	(java_init_options): Request Java switches.
treelang:
	* Make-lang.in: Update to use options.c and options.h.
	* tree1.c: Include options.h not t-options.h.
	(treelang_init_options): New.
	(treelang_handle_option): Abort on unrecognized switch.
	* treetree.c (LANG_HOOKS_INIT_OPTIONS): Override.
	* treetree.h (treelang_init_options): New.

From-SVN: r67941
This commit is contained in:
Neil Booth 2003-06-14 12:26:36 +00:00 committed by Neil Booth
parent 81d2d258f5
commit d7b4261875
28 changed files with 277 additions and 123 deletions

View File

@ -1,3 +1,23 @@
2003-06-14 Neil Booth <neil@daikokuya.co.uk>
* Makefile.in: Update to use common.opt and lang_opt_files.
(c-options.c, c-options.h): Remove.
(options.c, options.h): Add.
* c-opts.c: Include options.h not c-options.h.
* common.opt: New file.
* configure, configure.in: Add lang_opt_files.
* opts.c: Include flags.h and diagnostic.h.
(common_handle_option): New.
(handle_option): Update to recognize common options and all
language-dependent options.
* opts.h (CL_F77, CL_JAVA, CL_ADA, CL_COMMON, CL_TREELANG): New.
(struct cl_option): Make flags of type int.
* opts.h: Flag option with front ends to which it applies.
Handle duplicate options.
* toplev.c (filename): Remove.
(independent_decode_option): Don't handle filenames and -quiet.
(process_options, do_compile): Update.
2003-06-14 Nick Clifton <nickc@redhat.com> 2003-06-14 Nick Clifton <nickc@redhat.com>
* doc/install.texi (Specific): Add description of different * doc/install.texi (Specific): Add description of different

View File

@ -353,6 +353,7 @@ host_xm_file=@host_xm_file@
host_xm_defines=@host_xm_defines@ host_xm_defines=@host_xm_defines@
xm_file=@xm_file@ xm_file=@xm_file@
xm_defines=@xm_defines@ xm_defines=@xm_defines@
lang_opt_files=@lang_opt_files@ $(srcdir)/c.opt $(srcdir)/common.opt
lang_specs_files=@lang_specs_files@ lang_specs_files=@lang_specs_files@
lang_options_files=@lang_options_files@ lang_options_files=@lang_options_files@
lang_tree_files=@lang_tree_files@ lang_tree_files=@lang_tree_files@
@ -793,7 +794,7 @@ CXX_TARGET_OBJS=@cxx_target_objs@
# Language-specific object files for C and Objective C. # Language-specific object files for C and Objective C.
C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \ C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \ c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \
c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o c-options.o prefix.o \ c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o \
c-objc-common.o c-dump.o c-pch.o libcpp.a $(C_TARGET_OBJS) c-objc-common.o c-dump.o c-pch.o libcpp.a $(C_TARGET_OBJS)
# Language-specific object files for C. # Language-specific object files for C.
@ -812,7 +813,7 @@ OBJS = alias.o bb-reorder.o bitmap.o builtins.o caller-save.o calls.o \
haifa-sched.o hashtable.o hooks.o ifcvt.o insn-attrtab.o insn-emit.o \ haifa-sched.o hashtable.o hooks.o ifcvt.o insn-attrtab.o insn-emit.o \
insn-extract.o insn-opinit.o insn-output.o insn-peep.o insn-recog.o \ insn-extract.o insn-opinit.o insn-output.o insn-peep.o insn-recog.o \
integrate.o intl.o jump.o langhooks.o lcm.o lists.o local-alloc.o \ integrate.o intl.o jump.o langhooks.o lcm.o lists.o local-alloc.o \
loop.o mbchar.o optabs.o opts.o params.o predict.o \ loop.o mbchar.o optabs.o options.o opts.o params.o predict.o \
print-rtl.o print-tree.o \ print-rtl.o print-tree.o \
profile.o ra.o ra-build.o ra-colorize.o ra-debug.o ra-rewrite.o \ profile.o ra.o ra-build.o ra-colorize.o ra-debug.o ra-rewrite.o \
real.o recog.o reg-stack.o regclass.o regmove.o regrename.o \ real.o recog.o reg-stack.o regclass.o regmove.o regrename.o \
@ -1317,16 +1318,10 @@ c-pretty-print.o : c-pretty-print.c c-pretty-print.h pretty-print.h \
c-opts.o : c-opts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ c-opts.o : c-opts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
c-pragma.h flags.h toplev.h langhooks.h tree-inline.h diagnostic.h \ c-pragma.h flags.h toplev.h langhooks.h tree-inline.h diagnostic.h \
intl.h debug.h $(C_COMMON_H) opts.h c-options.h intl.h debug.h $(C_COMMON_H) opts.h options.h
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
$< $(OUTPUT_OPTION) @TARGET_SYSTEM_ROOT_DEFINE@ $< $(OUTPUT_OPTION) @TARGET_SYSTEM_ROOT_DEFINE@
c-options.c: c.opt $(srcdir)/opts.sh c-options.h
c-options.h: c.opt $(srcdir)/opts.sh
AWK=$(AWK) $(SHELL) $(srcdir)/opts.sh c-options.c c-options.h \
$(srcdir)/c.opt
c-cppbuiltin.o : c-cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ c-cppbuiltin.o : c-cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(TREE_H) $(C_COMMON_H) c-pragma.h flags.h toplev.h langhooks.h \ $(TREE_H) $(C_COMMON_H) c-pragma.h flags.h toplev.h langhooks.h \
output.h except.h real.h $(TM_P_H) output.h except.h real.h $(TM_P_H)
@ -1421,6 +1416,12 @@ s-specs : Makefile
$(SHELL) $(srcdir)/move-if-change tmp-specs.h specs.h $(SHELL) $(srcdir)/move-if-change tmp-specs.h specs.h
$(STAMP) s-specs $(STAMP) s-specs
options.c: $(lang_opt_files) $(srcdir)/opts.sh options.h
options.h: $(lang_opt_files) $(srcdir)/opts.sh
AWK=$(AWK) $(SHELL) $(srcdir)/opts.sh options.c options.h \
$(lang_opt_files)
dumpvers: dumpvers.c dumpvers: dumpvers.c
version.o: version.c version.h version.o: version.c version.h
@ -1480,7 +1481,7 @@ fold-const.o : fold-const.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H
diagnostic.o : diagnostic.c diagnostic.h real.h diagnostic.def \ diagnostic.o : diagnostic.c diagnostic.h real.h diagnostic.def \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(TM_P_H) flags.h $(GGC_H) \ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(TM_P_H) flags.h $(GGC_H) \
input.h toplev.h intl.h langhooks.h $(LANGHOOKS_DEF_H) input.h toplev.h intl.h langhooks.h $(LANGHOOKS_DEF_H)
opts.o : opts.c opts.h $(CONFIG_H) $(SYSTEM_H) \ opts.o : opts.c opts.h options.h toplev.h $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TREE_H) $(TM_H) $(LANGHOOKS_H) coretypes.h $(TREE_H) $(TM_H) $(LANGHOOKS_H)
toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \ toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
function.h flags.h xcoffout.h input.h $(INSN_ATTR_H) output.h diagnostic.h \ function.h flags.h xcoffout.h input.h $(INSN_ATTR_H) output.h diagnostic.h \
@ -2788,7 +2789,7 @@ mostlyclean: $(INTL_MOSTLYCLEAN) lang.mostlyclean
-rm -f xlimits.h -rm -f xlimits.h
# Delete other built files. # Delete other built files.
-rm -f xsys-protos.hT -rm -f xsys-protos.hT
-rm -f specs.h options_.h gencheck.h c-options.c c-options.h -rm -f specs.h options_.h gencheck.h options.c options.h
# Delete the stamp and temporary files. # Delete the stamp and temporary files.
-rm -f s-* tmp-* stamp-* stmp-* -rm -f s-* tmp-* stamp-* stmp-*
-rm -f */stamp-* */tmp-* -rm -f */stamp-* */tmp-*

View File

@ -1,3 +1,10 @@
2003-06-14 Neil Booth <neil@daikokuya.co.uk>
* Make-lang.in: Update to use options.c and options.h.
* misc.c: Include options.h not aoptions.h.
(gnat_handle_option): Abort on unrecognized switch.
(gnat_init_options): Request Ada switches.
2003-06-14 Neil Booth <neil@daikokuya.co.uk> 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
* lang.opt: Add -Wall. * lang.opt: Add -Wall.

View File

@ -116,8 +116,7 @@ ADA_TOOLS_FLAGS_TO_PASS=\
# Object files for gnat1 from C sources. # Object files for gnat1 from C sources.
GNAT1_C_OBJS = ada/b_gnat1.o ada/adadecode.o ada/adaint.o ada/cstreams.o \ GNAT1_C_OBJS = ada/b_gnat1.o ada/adadecode.o ada/adaint.o ada/cstreams.o \
ada/cio.o ada/targtyps.o ada/decl.o ada/misc.o ada/utils.o ada/utils2.o \ ada/cio.o ada/targtyps.o ada/decl.o ada/misc.o ada/utils.o ada/utils2.o \
ada/trans.o ada/cuintp.o ada/argv.o ada/raise.o ada/init.o ada/tracebak.o \ ada/trans.o ada/cuintp.o ada/argv.o ada/raise.o ada/init.o ada/tracebak.o
ada/aoptions.o
# Object files from Ada sources that are used by gnat1 # Object files from Ada sources that are used by gnat1
@ -761,7 +760,6 @@ ada.mostlyclean:
-$(RM) ada/*$(objext) ada/*.ali ada/b_*.c -$(RM) ada/*$(objext) ada/*.ali ada/b_*.c
-$(RM) ada/*$(coverageexts) -$(RM) ada/*$(coverageexts)
-$(RM) ada/sdefault.adb ada/stamp-sdefault -$(RM) ada/sdefault.adb ada/stamp-sdefault
-$(RM) ada/aoptions.c ada/aoptions.h
-$(RMDIR) ada/tools -$(RMDIR) ada/tools
ada.clean: ada.clean:
ada.distclean: ada.distclean:
@ -1016,7 +1014,7 @@ ada/misc.o : ada/misc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
diagnostic.h output.h except.h $(TM_P_H) langhooks.h debug.h $(LANGHOOKS_DEF_H) \ diagnostic.h output.h except.h $(TM_P_H) langhooks.h debug.h $(LANGHOOKS_DEF_H) \
libfuncs.h $(OPTABS_H) ada/ada.h ada/types.h ada/atree.h ada/nlists.h \ libfuncs.h $(OPTABS_H) ada/ada.h ada/types.h ada/atree.h ada/nlists.h \
ada/elists.h ada/sinfo.h ada/einfo.h ada/namet.h ada/stringt.h ada/uintp.h \ ada/elists.h ada/sinfo.h ada/einfo.h ada/namet.h ada/stringt.h ada/uintp.h \
ada/fe.h $(ADA_TREE_H) ada/gigi.h ada/adadecode.h opts.h ada/aoptions.h ada/fe.h $(ADA_TREE_H) ada/gigi.h ada/adadecode.h opts.h options.h
ada/targtyps.o : ada/targtyps.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ ada/targtyps.o : ada/targtyps.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
ada/ada.h ada/types.h ada/atree.h ada/nlists.h ada/elists.h ada/uintp.h \ ada/ada.h ada/types.h ada/atree.h ada/nlists.h ada/elists.h ada/uintp.h \
@ -2525,10 +2523,4 @@ ada/widechar.o : ada/ada.ads ada/a-except.ads ada/hostparm.ads \
ada/types.ads ada/unchconv.ads ada/unchdeal.ads ada/widechar.ads \ ada/types.ads ada/unchconv.ads ada/unchdeal.ads ada/widechar.ads \
ada/widechar.adb ada/widechar.adb
ada/aoptions.c: ada/lang.opt opts.sh ada/aoptions.h
ada/aoptions.h: ada/lang.opt opts.sh
AWK=$(AWK) $(SHELL) $(srcdir)/opts.sh ada/aoptions.c \
ada/aoptions.h $(srcdir)/ada/lang.opt
# end of regular dependencies # end of regular dependencies

View File

@ -75,7 +75,7 @@
#include "gigi.h" #include "gigi.h"
#include "adadecode.h" #include "adadecode.h"
#include "opts.h" #include "opts.h"
#include "aoptions.h" #include "options.h"
extern FILE *asm_out_file; extern FILE *asm_out_file;
extern int save_argc; extern int save_argc;
@ -238,7 +238,7 @@ gnat_handle_option (size_t scode, const char *arg, int value ATTRIBUTE_UNUSED)
switch (code) switch (code)
{ {
default: default:
return 0; abort();
case OPT_I: case OPT_I:
q = xmalloc (sizeof("-I") + strlen (arg)); q = xmalloc (sizeof("-I") + strlen (arg));
@ -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 0; 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. */

View File

@ -36,7 +36,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "c-incpath.h" #include "c-incpath.h"
#include "debug.h" /* For debug_hooks. */ #include "debug.h" /* For debug_hooks. */
#include "opts.h" #include "opts.h"
#include "c-options.h" #include "options.h"
#ifndef DOLLARS_IN_IDENTIFIERS #ifndef DOLLARS_IN_IDENTIFIERS
# define DOLLARS_IN_IDENTIFIERS true # define DOLLARS_IN_IDENTIFIERS true

47
gcc/common.opt Normal file
View File

@ -0,0 +1,47 @@
; Options for the language- and target-independent parts of the compiler.
; Copyright (C) 2003 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC 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 later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
; 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 "Common". 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.
quiet
Common
; This comment is to ensure we retain the blank line above.

8
gcc/configure vendored
View File

@ -2440,7 +2440,7 @@ fi
# Find some useful tools # Find some useful tools
for ac_prog in gawk mawk nawk awk for ac_prog in mawk gawk nawk awk
do do
# Extract the first word of "$ac_prog", so it can be a program name with args. # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2 set dummy $ac_prog; ac_word=$2
@ -8799,11 +8799,15 @@ fi
# Make empty files to contain the specs and options for each language. # Make empty files to contain the specs and options for each language.
# Then add #include lines to for a compiler that has specs and/or options. # Then add #include lines to for a compiler that has specs and/or options.
lang_opt_files=
lang_specs_files= lang_specs_files=
lang_options_files= lang_options_files=
lang_tree_files= lang_tree_files=
for subdir in . $subdirs for subdir in . $subdirs
do do
if test -f $srcdir/$subdir/lang.opt; then
lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
fi
if test -f $srcdir/$subdir/lang-specs.h; then if test -f $srcdir/$subdir/lang-specs.h; then
lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h" lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
fi fi
@ -9078,6 +9082,7 @@ ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xma
# Echo that links are built # Echo that links are built
@ -9387,6 +9392,7 @@ s%@host_xm_file@%$host_xm_file%g
s%@host_xm_defines@%$host_xm_defines%g s%@host_xm_defines@%$host_xm_defines%g
s%@out_host_hook_obj@%$out_host_hook_obj%g s%@out_host_hook_obj@%$out_host_hook_obj%g
s%@install@%$install%g s%@install@%$install%g
s%@lang_opt_files@%$lang_opt_files%g
s%@lang_options_files@%$lang_options_files%g s%@lang_options_files@%$lang_options_files%g
s%@lang_specs_files@%$lang_specs_files%g s%@lang_specs_files@%$lang_specs_files%g
s%@lang_tree_files@%$lang_tree_files%g s%@lang_tree_files@%$lang_tree_files%g

View File

@ -2893,11 +2893,15 @@ AC_SUBST(MAINT)dnl
# Make empty files to contain the specs and options for each language. # Make empty files to contain the specs and options for each language.
# Then add #include lines to for a compiler that has specs and/or options. # Then add #include lines to for a compiler that has specs and/or options.
lang_opt_files=
lang_specs_files= lang_specs_files=
lang_options_files= lang_options_files=
lang_tree_files= lang_tree_files=
for subdir in . $subdirs for subdir in . $subdirs
do do
if test -f $srcdir/$subdir/lang.opt; then
lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
fi
if test -f $srcdir/$subdir/lang-specs.h; then if test -f $srcdir/$subdir/lang-specs.h; then
lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h" lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
fi fi
@ -3141,6 +3145,7 @@ AC_SUBST(host_xm_file)
AC_SUBST(host_xm_defines) AC_SUBST(host_xm_defines)
AC_SUBST(out_host_hook_obj) AC_SUBST(out_host_hook_obj)
AC_SUBST(install) AC_SUBST(install)
AC_SUBST(lang_opt_files)
AC_SUBST(lang_options_files) AC_SUBST(lang_options_files)
AC_SUBST(lang_specs_files) AC_SUBST(lang_specs_files)
AC_SUBST(lang_tree_files) AC_SUBST(lang_tree_files)

View File

@ -1,3 +1,7 @@
2003-06-14 Neil Booth <neil@daikokuya.co.uk>
* Make-lang.in: Remove c-options.o.
2003-06-13 Nathanael Nerode <neroden@gcc.gnu.org> 2003-06-13 Nathanael Nerode <neroden@gcc.gnu.org>
* lex.c: Convert to ISO C. * lex.c: Convert to ISO C.

View File

@ -80,8 +80,7 @@ g++-cross$(exeext): g++$(exeext)
# Shared with C front end: # Shared with C front end:
CXX_C_OBJS = attribs.o c-common.o c-format.o c-pragma.o c-semantics.o c-lex.o \ CXX_C_OBJS = attribs.o c-common.o c-format.o c-pragma.o c-semantics.o c-lex.o \
c-dump.o $(CXX_TARGET_OBJS) c-pretty-print.o c-opts.o c-pch.o \ c-dump.o $(CXX_TARGET_OBJS) c-pretty-print.o c-opts.o c-pch.o \
c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o \ c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o
c-options.o
# Language-specific object files. # Language-specific object files.
CXX_OBJS = cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o \ CXX_OBJS = cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o \

View File

@ -1,3 +1,12 @@
Sat Jun 14 13:25:00 2003 Neil Booth <neil@daikokuya.co.uk>
* Make-lang.in: Update to use options.c and options.h.
* top.c: Include options.h not f-options.h.
(ffe_init_options): From com.c. Request F77 options.
(ffe_handle_options): Abort on unrecognized switch.
* com.c (ffe_init_options): Move to top.c.
* top.h (fee_init_options): New.
2003-06-13 Richard Henderson <rth@redhat.com> 2003-06-13 Richard Henderson <rth@redhat.com>
PR debug/9864 PR debug/9864

View File

@ -88,7 +88,7 @@ g77-cross$(exeext): g77$(exeext)
F77_OBJS = f/bad.o f/bit.o f/bld.o f/com.o f/data.o f/equiv.o f/expr.o \ F77_OBJS = f/bad.o f/bit.o f/bld.o f/com.o f/data.o f/equiv.o f/expr.o \
f/global.o f/implic.o f/info.o f/intrin.o f/lab.o f/lex.o f/malloc.o \ f/global.o f/implic.o f/info.o f/intrin.o f/lab.o f/lex.o f/malloc.o \
f/name.o f/f-options.o f/parse.o f/src.o f/st.o f/sta.o f/stb.o f/stc.o \ f/name.o f/parse.o f/src.o f/st.o f/sta.o f/stb.o f/stc.o \
f/std.o f/ste.o f/storag.o f/stp.o f/str.o f/sts.o f/stt.o f/stu.o \ f/std.o f/ste.o f/storag.o f/stp.o f/str.o f/sts.o f/stt.o f/stu.o \
f/stv.o f/stw.o f/symbol.o f/target.o f/top.o f/type.o f/where.o f/stv.o f/stw.o f/symbol.o f/target.o f/top.o f/type.o f/where.o
@ -320,7 +320,6 @@ f77.uninstall: installdirs
f77.mostlyclean: f77.mostlyclean:
-rm -f f/*$(objext) -rm -f f/*$(objext)
-rm -f f/*$(coverageexts) -rm -f f/*$(coverageexts)
-rm -f f/f-options.c f/f-options.h
-rm -f f/fini$(build_exeext) f/stamp-str f/str-*.h f/str-*.j -rm -f f/fini$(build_exeext) f/stamp-str f/str-*.h f/str-*.j
-rm -f f/intdoc$(build_exeext) f/ansify$(build_exeext) f/intdoc.h0 -rm -f f/intdoc$(build_exeext) f/ansify$(build_exeext) f/intdoc.h0
-rm -f g77.aux g77.cps g77.ky g77.toc g77.vr g77.fn g77.kys \ -rm -f g77.aux g77.cps g77.ky g77.toc g77.vr g77.fn g77.kys \
@ -543,14 +542,8 @@ f/top.o: f/top.c f/proj.h $(CONFIG_H) $(SYSTEM_H) f/top.h f/malloc.h f/where.h \
f/info-w.def f/target.h f/lex.h f/type.h f/lab.h f/storag.h \ f/info-w.def f/target.h f/lex.h f/type.h f/lab.h f/storag.h \
f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \ f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \
f/intrin.def f/data.h f/expr.h f/implic.h f/src.h f/st.h flags.h \ f/intrin.def f/data.h f/expr.h f/implic.h f/src.h f/st.h flags.h \
toplev.h coretypes.h $(TM_H) opts.h f/f-options.h toplev.h coretypes.h $(TM_H) opts.h options.h
f/type.o: f/type.c f/proj.h $(CONFIG_H) $(SYSTEM_H) f/type.h f/malloc.h \ f/type.o: f/type.c f/proj.h $(CONFIG_H) $(SYSTEM_H) f/type.h f/malloc.h \
coretypes.h $(TM_H) coretypes.h $(TM_H)
f/where.o: f/where.c f/proj.h $(CONFIG_H) $(SYSTEM_H) f/where.h glimits.h \ f/where.o: f/where.c f/proj.h $(CONFIG_H) $(SYSTEM_H) f/where.h glimits.h \
f/top.h f/malloc.h f/lex.h $(GGC_H) gt-f-where.h coretypes.h $(TM_H) f/top.h f/malloc.h f/lex.h $(GGC_H) gt-f-where.h coretypes.h $(TM_H)
f/f-options.c: f/lang.opt opts.sh f/f-options.h
f/f-options.h: f/lang.opt opts.sh
AWK=$(AWK) $(SHELL) $(srcdir)/opts.sh f/f-options.c \
f/f-options.h $(srcdir)/f/lang.opt

View File

@ -14125,7 +14125,6 @@ insert_block (tree block)
static bool ffe_init PARAMS ((void)); static bool ffe_init PARAMS ((void));
static void ffe_finish PARAMS ((void)); static void ffe_finish PARAMS ((void));
static bool ffe_post_options PARAMS ((const char **)); static bool ffe_post_options PARAMS ((const char **));
static int ffe_init_options PARAMS ((void));
static void ffe_print_identifier PARAMS ((FILE *, tree, int)); static void ffe_print_identifier PARAMS ((FILE *, tree, int));
struct language_function GTY(()) struct language_function GTY(())
@ -14265,20 +14264,6 @@ ffe_finish ()
fclose (finput); fclose (finput);
} }
static int
ffe_init_options ()
{
/* Set default options for Fortran. */
flag_move_all_movables = 1;
flag_reduce_all_givs = 1;
flag_argument_noalias = 2;
flag_merge_constants = 2;
flag_errno_math = 0;
flag_complex_divide_method = 1;
return 0;
}
static bool static bool
ffe_mark_addressable (tree exp) ffe_mark_addressable (tree exp)
{ {

View File

@ -47,7 +47,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "lex.h" #include "lex.h"
#include "malloc.h" #include "malloc.h"
#include "name.h" #include "name.h"
#include "f-options.h" #include "options.h"
#include "opts.h" #include "opts.h"
#include "src.h" #include "src.h"
#include "st.h" #include "st.h"
@ -155,6 +155,21 @@ ffe_is_digit_string_ (const char *s)
return (p != s) && (*p == '\0'); return (p != s) && (*p == '\0');
} }
/* Get ready for options handling. */
int
ffe_init_options ()
{
/* Set default options for Fortran. */
flag_move_all_movables = 1;
flag_reduce_all_givs = 1;
flag_argument_noalias = 2;
flag_merge_constants = 2;
flag_errno_math = 0;
flag_complex_divide_method = 1;
return CL_F77;
}
/* Handle command-line options. Returns 0 if unrecognized, 1 if /* Handle command-line options. Returns 0 if unrecognized, 1 if
recognized and handled. */ recognized and handled. */
int int
@ -176,7 +191,7 @@ ffe_handle_option (size_t scode, const char *arg, int value)
switch (code) switch (code)
{ {
default: default:
return 0; abort();
case OPT_fversion: case OPT_fversion:
ffe_set_is_version (TRUE); ffe_set_is_version (TRUE);

View File

@ -141,6 +141,7 @@ extern bool ffe_in_4;
/* Declare functions with prototypes. */ /* Declare functions with prototypes. */
int ffe_init_options (void);
int ffe_handle_option (size_t code, const char *arg, int on); int ffe_handle_option (size_t code, const char *arg, int on);
void ffe_file (ffewhereFile wf, FILE *f); void ffe_file (ffewhereFile wf, FILE *f);
void ffe_init_0 (void); void ffe_init_0 (void);

View File

@ -1,3 +1,10 @@
2003-06-14 Neil Booth <neil@daikokuya.co.uk>
* Make-lang.in: Update to use options.c and options.h.
* lang.c: Include options.h not j-options.h.
(java_handle_option): Abort on unrecognized option.
(java_init_options): Request Java switches.
2003-06-11 Neil Booth <neil@daikokuya.co.uk> 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
* Make-lang.in: Handle mostlyclean. * Make-lang.in: Handle mostlyclean.

View File

@ -108,7 +108,7 @@ gt-java-builtins.h gtype-java.h gt-java-resource.h : s-gtype ; @true
JAVA_OBJS = java/parse.o java/class.o java/decl.o java/expr.o \ JAVA_OBJS = java/parse.o java/class.o java/decl.o java/expr.o \
java/constants.o java/lang.o java/typeck.o java/except.o java/verify.o \ java/constants.o java/lang.o java/typeck.o java/except.o java/verify.o \
java/zextract.o java/jcf-io.o java/jcf-parse.o java/mangle.o \ java/zextract.o java/jcf-io.o java/jcf-parse.o java/mangle.o \
java/mangle_name.o java/builtins.o java/resource.o java/j-options.o \ java/mangle_name.o java/builtins.o java/resource.o \
java/jcf-write.o java/buffer.o java/check-init.o java/jcf-depend.o \ java/jcf-write.o java/buffer.o java/check-init.o java/jcf-depend.o \
java/jcf-path.o java/xref.o java/boehm.o java/java-tree-inline.o mkdeps.o java/jcf-path.o java/xref.o java/boehm.o java/java-tree-inline.o mkdeps.o
@ -237,7 +237,6 @@ java.install-info: installdirs
java.mostlyclean: java.mostlyclean:
-rm -f java/*$(objext) $(DEMANGLER_PROG) -rm -f java/*$(objext) $(DEMANGLER_PROG)
-rm -f java/*$(coverageexts) -rm -f java/*$(coverageexts)
-rm -f java/j-options.c java/j-options.h
-rm -f jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext) s-java -rm -f jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext) s-java
java.clean: java.clean:
java.distclean: java.distclean:
@ -327,7 +326,7 @@ java/jvgenmain.o: java/jvgenmain.c $(CONFIG_H) $(JAVA_TREE_H) $(SYSTEM_H) \
coretypes.h $(TM_H) coretypes.h $(TM_H)
java/lang.o: java/lang.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h input.h \ java/lang.o: java/lang.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h input.h \
toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(EXPR_H) diagnostic.h \ toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(EXPR_H) diagnostic.h \
langhooks.h $(LANGHOOKS_DEF_H) gt-java-lang.h opts.h java/j-options.h langhooks.h $(LANGHOOKS_DEF_H) gt-java-lang.h opts.h options.h
java/mangle.o: java/mangle.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) $(SYSTEM_H) \ java/mangle.o: java/mangle.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) $(SYSTEM_H) \
coretypes.h $(TM_H) toplev.h $(GGC_H) gt-java-mangle.h coretypes.h $(TM_H) toplev.h $(GGC_H) gt-java-mangle.h
java/mangle_name.o: java/mangle_name.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) \ java/mangle_name.o: java/mangle_name.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) \
@ -348,12 +347,6 @@ java/xref.o: java/xref.c java/xref.h $(CONFIG_H) $(JAVA_TREE_H) toplev.h \
java/zextract.o: java/zextract.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ java/zextract.o: java/zextract.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
java/zipfile.h java/zipfile.h
java/j-options.c: java/lang.opt opts.sh java/j-options.h
java/j-options.h: java/lang.opt opts.sh
AWK=$(AWK) $(SHELL) $(srcdir)/opts.sh java/j-options.c \
java/j-options.h $(srcdir)/java/lang.opt
# jcf-io.o needs $(ZLIBINC) added to cflags. # jcf-io.o needs $(ZLIBINC) added to cflags.
java/jcf-io.o: java/jcf-io.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ java/jcf-io.o: java/jcf-io.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(JAVA_TREE_H) $(JAVA_TREE_H)

View File

@ -46,7 +46,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "splay-tree.h" #include "splay-tree.h"
#include "tree-dump.h" #include "tree-dump.h"
#include "opts.h" #include "opts.h"
#include "j-options.h" #include "options.h"
static bool java_init (void); static bool java_init (void);
static void java_finish (void); static void java_finish (void);
@ -290,7 +290,7 @@ java_handle_option (size_t scode, const char *arg, int value)
switch (code) switch (code)
{ {
default: default:
return 0; abort();
case OPT_I: case OPT_I:
jcf_path_include_arg (arg); jcf_path_include_arg (arg);
@ -695,7 +695,7 @@ java_init_options (void)
jcf_path_init (); jcf_path_init ();
return 0; return CL_JAVA;
} }
static bool static bool

View File

@ -26,8 +26,12 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "tree.h" #include "tree.h"
#include "langhooks.h" #include "langhooks.h"
#include "opts.h" #include "opts.h"
#include "options.h"
#include "flags.h"
#include "toplev.h"
static size_t find_opt (const char *, int); static size_t find_opt (const char *, int);
static int common_handle_option (size_t scode, const char *arg, int value);
/* Perform a binary search to find which option the command-line INPUT /* Perform a binary search to find which option the command-line INPUT
matches. Returns its index in the option array, and N_OPTS on matches. Returns its index in the option array, and N_OPTS on
@ -134,7 +138,8 @@ handle_option (int argc ATTRIBUTE_UNUSED, char **argv, int lang_mask)
{ {
opt_index = cl_options_count; opt_index = cl_options_count;
arg = opt; arg = opt;
result = 1; main_input_filename = opt;
result = (*lang_hooks.handle_option) (opt_index, arg, on);
} }
else else
{ {
@ -152,8 +157,7 @@ handle_option (int argc ATTRIBUTE_UNUSED, char **argv, int lang_mask)
on = false; on = false;
} }
/* Skip over '-'. */ opt_index = find_opt (opt + 1, lang_mask | CL_COMMON);
opt_index = find_opt (opt + 1, lang_mask);
if (opt_index == cl_options_count) if (opt_index == cl_options_count)
goto done; goto done;
@ -191,14 +195,51 @@ handle_option (int argc ATTRIBUTE_UNUSED, char **argv, int lang_mask)
if (*arg == '\0') if (*arg == '\0')
arg = NULL; arg = NULL;
} }
}
temp = (*lang_hooks.handle_option) (opt_index, arg, on); if (option->flags & lang_mask)
if (temp <= 0) {
result = temp; temp = (*lang_hooks.handle_option) (opt_index, arg, on);
if (temp <= 0)
result = temp;
}
if (result > 0 && (option->flags & CL_COMMON))
{
if (common_handle_option (opt_index, arg, on) == 0)
result = 0;
}
}
done: done:
if (dup) if (dup)
free (dup); free (dup);
return result; return result;
} }
/* Handle target- and language-independent options. Return zero to
generate an "unknown option" message. */
static int
common_handle_option (size_t scode, const char *arg,
int value ATTRIBUTE_UNUSED)
{
const struct cl_option *option = &cl_options[scode];
enum opt_code code = (enum opt_code) scode;
if (arg == NULL && (option->flags & (CL_JOINED | CL_SEPARATE)))
{
error ("missing argument to \"-%s\"", option->opt_text);
return 1;
}
switch (code)
{
default:
abort ();
case OPT_quiet:
quiet_flag = 1;
break;
}
return 1;
}

View File

@ -27,7 +27,7 @@ struct cl_option
{ {
const char *opt_text; const char *opt_text;
unsigned char opt_len; unsigned char opt_len;
unsigned char flags; unsigned int flags;
}; };
extern const struct cl_option cl_options[]; extern const struct cl_option cl_options[];
@ -37,8 +37,14 @@ extern const unsigned int cl_options_count;
#define CL_OBJC (1 << 1) /* Only ObjC. */ #define CL_OBJC (1 << 1) /* Only ObjC. */
#define CL_CXX (1 << 2) /* Only C++. */ #define CL_CXX (1 << 2) /* Only C++. */
#define CL_OBJCXX (1 << 3) /* Only ObjC++. */ #define CL_OBJCXX (1 << 3) /* Only ObjC++. */
#define CL_JOINED (1 << 4) /* If takes joined argument. */ #define CL_F77 (1 << 4) /* Only Fortran. */
#define CL_SEPARATE (1 << 5) /* If takes a separate argument. */ #define CL_JAVA (1 << 5) /* Only Java. */
#define CL_REJECT_NEGATIVE (1 << 6) /* Reject no- form. */ #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. */
#endif #endif

View File

@ -48,6 +48,11 @@ cat "$@" | ${AWK} '
if (langs ~ ":ObjC:") flags = flags " | CL_OBJC" if (langs ~ ":ObjC:") flags = flags " | CL_OBJC"
if (langs ~ ":C\\+\\+:") flags = flags " | CL_CXX" if (langs ~ ":C\\+\\+:") flags = flags " | CL_CXX"
if (langs ~ ":ObjC\\+\\+:") flags = flags " | CL_OBJCXX" 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 ~ ":Joined:") flags = flags " | CL_JOINED"
if (langs ~ ":Separate:") flags = flags " | CL_SEPARATE" if (langs ~ ":Separate:") flags = flags " | CL_SEPARATE"
if (langs ~ ":RejectNegative:") flags = flags " | CL_REJECT_NEGATIVE" if (langs ~ ":RejectNegative:") flags = flags " | CL_REJECT_NEGATIVE"
@ -56,29 +61,50 @@ cat "$@" | ${AWK} '
} }
BEGIN { BEGIN {
FS = "\034"
n_opts = 0
}
# Collect the text and flags of each option into an array
{
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
# C file. Combine the flags of duplicate options.
END {
c_file = "'${C_FILE}'" c_file = "'${C_FILE}'"
h_file = "'${H_FILE}'" h_file = "'${H_FILE}'"
FS = "\034" 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 "/* This file is auto-generated by opts.sh. */\n" > c_file
print "enum opt_code\n{" >> h_file print "enum opt_code\n{" >> h_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
print "#include \"opts.h\"\n" >> c_file print "#include \"opts.h\"\n" >> c_file
print "const unsigned int cl_options_count = N_OPTS;\n" >> c_file print "const unsigned int cl_options_count = N_OPTS;\n" >> c_file
print "const struct cl_option cl_options[] =\n{" >> c_file print "const struct cl_option cl_options[] =\n{" >> c_file
}
{ for (i = 0; i < n_opts; i++) {
opt = $1 while( i + 1 != n_opts && opts[i] == opts[i + 1] ) {
gsub ( "[^A-Za-z0-9]", "_", opt) flags[i + 1] = flags[i] " " flags[i + 1];
s = substr (" ", length (opt)) i++;
enum = "OPT_" opt }
printf (" %s,%s/* -%s */\n", enum, s, $1 ) >> h_file
printf (" { \"%s\", %u, %s },\n", $1, \ enum = "OPT_" opts[i]
length ($1), switch_flags($2)) >> c_file gsub( "[^A-Za-z0-9]", "_", enum)
} s = substr(" ", length (opts[i]))
if (i + 1 == n_opts)
comma = ""
printf(" %s,%s/* -%s */\n", enum, s, opts[i]) >> h_file
printf(" { \"%s\", %u, %s }%s\n", opts[i], \
length(opts[i]), switch_flags(flags[i]), comma) >> c_file
}
END {
print " N_OPTS\n};" >> h_file print " N_OPTS\n};" >> h_file
print "};" >> c_file print "};" >> c_file
} }

View File

@ -359,7 +359,6 @@ static void close_dump_file (enum dump_file_index,
int rtl_dump_and_exit; int rtl_dump_and_exit;
int flag_print_asm_name; int flag_print_asm_name;
static int version_flag; static int version_flag;
static const char *filename;
enum graph_dump_types graph_dump_format; enum graph_dump_types graph_dump_format;
/* Name for output file of assembly code, specified with -o. */ /* Name for output file of assembly code, specified with -o. */
@ -4594,14 +4593,7 @@ independent_decode_option (int argc, char **argv)
char *arg = argv[0]; char *arg = argv[0];
if (arg[0] != '-' || arg[1] == 0) if (arg[0] != '-' || arg[1] == 0)
{ return 1;
if (arg[0] == '+')
return 0;
filename = arg;
return 1;
}
arg++; arg++;
@ -4705,13 +4697,6 @@ independent_decode_option (int argc, char **argv)
return 0; return 0;
break; break;
case 'q':
if (!strcmp (arg, "quiet"))
quiet_flag = 1;
else
return 0;
break;
case 'v': case 'v':
if (!strcmp (arg, "version")) if (!strcmp (arg, "version"))
version_flag = 1; version_flag = 1;
@ -5385,8 +5370,8 @@ process_options (void)
initialization based on the command line options. This hook also initialization based on the command line options. This hook also
sets the original filename if appropriate (e.g. foo.i -> foo.c) sets the original filename if appropriate (e.g. foo.i -> foo.c)
so we can correctly initialize debug output. */ so we can correctly initialize debug output. */
no_backend = (*lang_hooks.post_options) (&filename); no_backend = (*lang_hooks.post_options) (&main_input_filename);
main_input_filename = input_filename = filename; input_filename = main_input_filename;
#ifdef OVERRIDE_OPTIONS #ifdef OVERRIDE_OPTIONS
/* Some machines may reject certain combinations of options. */ /* Some machines may reject certain combinations of options. */
@ -5396,9 +5381,9 @@ process_options (void)
/* Set aux_base_name if not already set. */ /* Set aux_base_name if not already set. */
if (aux_base_name) if (aux_base_name)
; ;
else if (filename) else if (main_input_filename)
{ {
char *name = xstrdup (lbasename (filename)); char *name = xstrdup (lbasename (main_input_filename));
strip_off_ending (name, strlen (name)); strip_off_ending (name, strlen (name));
aux_base_name = name; aux_base_name = name;
@ -5738,7 +5723,7 @@ do_compile (void)
backend_init (); backend_init ();
/* Language-dependent initialization. Returns true on success. */ /* Language-dependent initialization. Returns true on success. */
if (lang_dependent_init (filename)) if (lang_dependent_init (main_input_filename))
compile_file (); compile_file ();
finalize (); finalize ();

View File

@ -1,3 +1,12 @@
2003-06-14 Neil Booth <neil@daikokuya.co.uk>
* Make-lang.in: Update to use options.c and options.h.
* tree1.c: Include options.h not t-options.h.
(treelang_init_options): New.
(treelang_handle_option): Abort on unrecognized switch.
* treetree.c (LANG_HOOKS_INIT_OPTIONS): Override.
* treetree.h (treelang_init_options): New.
2003-06-12 Andreas Jaeger <aj@suse.de> 2003-06-12 Andreas Jaeger <aj@suse.de>
* treetree.c: Remove cl_options-count and cl_options. * treetree.c: Remove cl_options-count and cl_options.

View File

@ -85,11 +85,11 @@ treelang.done: tree1$(exeext)
# core compiler # core compiler
tree1$(exeext): treelang/tree1.o treelang/treetree.o treelang/lex.o treelang/parse.o\ tree1$(exeext): treelang/tree1.o treelang/treetree.o treelang/lex.o treelang/parse.o\
$(TREE_BE_LIBS) c-convert.o c-typeck.o c-common.o c-cppbuiltin.o \ $(TREE_BE_LIBS) c-convert.o c-typeck.o c-common.o c-cppbuiltin.o \
c-decl.o attribs.o treelang/t-options.o c-decl.o attribs.o
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
treelang/tree1.o treelang/treetree.o treelang/lex.o treelang/parse.o \ treelang/tree1.o treelang/treetree.o treelang/lex.o treelang/parse.o \
c-convert.o c-typeck.o c-common.o c-cppbuiltin.o c-decl.o attribs.o \ c-convert.o c-typeck.o c-common.o c-cppbuiltin.o c-decl.o attribs.o \
$(TREE_BE_LIBS) treelang/t-options.o $(TREE_BE_LIBS)
# #
# Compiling object files from source files. # Compiling object files from source files.
@ -98,7 +98,7 @@ tree1$(exeext): treelang/tree1.o treelang/treetree.o treelang/lex.o treelang/par
treelang/tree1.o: treelang/tree1.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ treelang/tree1.o: treelang/tree1.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
flags.h toplev.h $(GGC_H) $(TREE_H) diagnostic.h treelang/treelang.h \ flags.h toplev.h $(GGC_H) $(TREE_H) diagnostic.h treelang/treelang.h \
input.h treelang/treetree.h treelang/t-options.h \ input.h treelang/treetree.h options.h opts.h \
treelang/treetree.h gt-treelang-tree1.h gtype-treelang.h treelang/treetree.h gt-treelang-tree1.h gtype-treelang.h
treelang/treetree.o: treelang/treetree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ treelang/treetree.o: treelang/treetree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
@ -112,12 +112,6 @@ treelang/parse.o: treelang/parse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
treelang/lex.o: treelang/lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ treelang/lex.o: treelang/lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) diagnostic.h $(TREE_H) treelang/treelang.h input.h treelang/parse.h $(TM_H) diagnostic.h $(TREE_H) treelang/treelang.h input.h treelang/parse.h
treelang/t-options.c: treelang/lang.opt opts.sh treelang/t-options.h
treelang/t-options.h: treelang/lang.opt opts.sh
AWK=$(AWK) $(SHELL) $(srcdir)/opts.sh treelang/t-options.c \
treelang/t-options.h $(srcdir)/treelang/lang.opt
# generated files the files from lex and yacc are put into the source # generated files the files from lex and yacc are put into the source
# directory in case someone wants to build but does not have # directory in case someone wants to build but does not have
# lex/yacc # lex/yacc
@ -237,7 +231,6 @@ treelang.mostlyclean:
rm -f treelang/$$name$(exeext); \ rm -f treelang/$$name$(exeext); \
fi ; \ fi ; \
done done
-rm -f treelang/t-options.c treelang/t-options.h
-rm -f treelang/*$(objext) -rm -f treelang/*$(objext)
-rm -f treelang/*$(coverageexts) -rm -f treelang/*$(coverageexts)
-rm treelang.done -rm treelang.done

View File

@ -45,7 +45,7 @@
#include "treelang.h" #include "treelang.h"
#include "treetree.h" #include "treetree.h"
#include "opts.h" #include "opts.h"
#include "t-options.h" #include "options.h"
extern int yyparse (void); extern int yyparse (void);
@ -88,6 +88,13 @@ static int version_done = 0;
static unsigned int work_nesting_level = 0; static unsigned int work_nesting_level = 0;
/* Prepare to handle switches. */
int
treelang_init_options (void)
{
return CL_TREELANG;
}
/* Process a switch - called by opts.c. */ /* Process a switch - called by opts.c. */
int int
treelang_handle_option (size_t scode, const char *arg ATTRIBUTE_UNUSED, treelang_handle_option (size_t scode, const char *arg ATTRIBUTE_UNUSED,
@ -98,7 +105,7 @@ treelang_handle_option (size_t scode, const char *arg ATTRIBUTE_UNUSED,
switch (code) switch (code)
{ {
default: default:
return 0; abort();
case OPT__help: case OPT__help:
if (!version_done) if (!version_done)

View File

@ -112,6 +112,8 @@ extern char **file_names;
#define LANG_HOOKS_NAME "GNU treelang" #define LANG_HOOKS_NAME "GNU treelang"
#undef LANG_HOOKS_FINISH #undef LANG_HOOKS_FINISH
#define LANG_HOOKS_FINISH treelang_finish #define LANG_HOOKS_FINISH treelang_finish
#undef LANG_HOOKS_INIT_OPTIONS
#define LANG_HOOKS_INIT_OPTIONS treelang_init_options
#undef LANG_HOOKS_HANDLE_OPTION #undef LANG_HOOKS_HANDLE_OPTION
#define LANG_HOOKS_HANDLE_OPTION treelang_handle_option #define LANG_HOOKS_HANDLE_OPTION treelang_handle_option
const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;

View File

@ -63,6 +63,7 @@ tree tree_code_get_type (int type_num);
void treelang_init_decl_processing (void); void treelang_init_decl_processing (void);
void treelang_finish (void); void treelang_finish (void);
bool treelang_init (void); bool treelang_init (void);
int treelang_init_options (void);
int treelang_handle_option (size_t scode, const char *arg, int value); int treelang_handle_option (size_t scode, const char *arg, int value);
void treelang_parse_file (int debug_flag); void treelang_parse_file (int debug_flag);
void push_var_level (void); void push_var_level (void);