Find a file
Zack Weinberg 14e33ee856 * c-decl.c (named_labels, shadowed_labels, label_level_chain)
(push_label_level, pop_label_level): Kill.
	(struct binding_level): Rename level_chain to outer.
	Add outer_function field.  Change parm_flag, function_body,
	keep, keep_if_subblocks to 1-bit bitfields of type bool.
	(current_function_level): New variable.
	(keep_next_level_flag, keep_next_if_subblocks): Change type to bool.
	(keep_next_level, declare_parm_level, warn_if_shadowing):
	Update to match.
	(struct language_function): Kill named_labels, shadowed_labels fields.
	(c_init_decl_processing, start_function, c_push__function_context)
	(c_pop_function_context): No need to muck with named_labels nor
	shadowed_labels.

	(make_binding_level): No need to clear the structure here.
	(pop_binding_level): Always operate on current_binding_level.
	Update current_function_level if necessary.
	(pushlevel): Don't clear named_labels.  Update current_function_level
	if necessary.  Use "true" and "false" where appropriate.
	(poplevel): Diagnose labels defined but not used, or vice
	versa, and clear out label-meanings leaving scope, while
	walking down the decls list, for all binding levels.
	Handle LABEL_DECLs appearing in the shadowed list.
	pop_binding_level takes no arguments.
	(pushdecl_function_level): Use current_function_level.

	(make_label, bind_label): New static functions.
	(declare_label): New exported function.
	(lookup_label, define_label): Rewritten for new data structure.
	(shadow_label): Kill.

	* c-tree.h: Prototype declare_label; don't prototype
	push_label_level, pop_label_level, nor shadow_label.
	* c-parse.in: Remove all calls to push_label_level and
	pop_label_level.  Use declare_label for __label__ decls.

	* doc/extend.texi: Clarify that __label__ can be used to
	declare labels with local scope in any nested block, not
	just statement expressions.  Cross-reference nested functions
	section from local labels section.

testsuite:
	* gcc.dg/noncompile/label-1.c: New comprehensive test case for
	diagnostics of ill-formed constructs involving labels.
	* gcc.dg/noncompile/label-lineno-1.c: Add error regexp for
	the new 'previously defined here' message.

From-SVN: r69597
2003-07-19 23:32:55 +00:00
boehm-gc configure.in: define GC_DLL under mingw if --enable-shared 2003-04-28 20:54:37 +00:00
config Makefile.tpl (configure-gcc): Depend on maybe-configure-intl. 2003-07-08 05:55:11 +00:00
contrib * texi2pod.pl: Default @itemize's parameter to @bullet. 2003-07-15 09:24:07 +00:00
fastjar * README: Note that FastJar is not part of GCC. 2003-07-11 21:48:39 +00:00
gcc * c-decl.c (named_labels, shadowed_labels, label_level_chain) 2003-07-19 23:32:55 +00:00
include * xtensa-config.h: Undef all macros before defining them. 2003-07-10 05:08:27 +00:00
INSTALL README: Update wrt. 2001-06-13 14:51:33 +00:00
intl Makefile.tpl (configure-gcc): Depend on maybe-configure-intl. 2003-07-08 05:55:11 +00:00
libf2c Makefile.tpl: Replace PWD with PWD_COMMAND. 2003-07-04 12:45:55 -07:00
libffi README: Note that libffi is not part of GCC. 2003-07-11 22:13:16 +00:00
libiberty pex-win32.c (pexecute): Mark parameters this_pname and temp_base as unused. 2003-07-05 00:52:07 +00:00
libjava * mauve-libgcj: Don't run CollationElementIterator tests. 2003-07-19 22:19:56 +00:00
libobjc Fixed rare threading problem 2003-07-10 09:24:51 +00:00
libstdc++-v3 Daily bump. 2003-07-19 00:16:07 +00:00
maintainer-scripts gcc_release (announce_snapshot): Use ${RELEASE} instead of ${BRANCH}-${DATE} to refer to the snapshot directory. 2003-07-19 12:12:39 +00:00
zlib re PR bootstrap/7126 (zlib version is wrong in zlib/configure.in) 2003-07-12 02:04:33 +00:00
.cvsignore configure, .cvsignore: Revert previous change... 2002-06-19 18:10:09 +00:00
ABOUT-NLS intl: New directory; see intl/ChangeLog for details. 2003-07-04 18:18:54 +00:00
ChangeLog MAINTAINERS: Move self from Bug database only accounts to write-after-approval. 2003-07-16 11:15:22 -07:00
config-ml.in Makefile.tpl: Replace PWD with PWD_COMMAND. 2003-07-04 12:45:55 -07:00
config.guess config.guess: Update to 2003-06-12 version. 2003-06-14 07:08:09 -07:00
config.if * config.if: Remove unused libc_interface determination. 2003-07-16 06:34:53 +00:00
config.rpath intl: New directory; see intl/ChangeLog for details. 2003-07-04 18:18:54 +00:00
config.sub config.guess: Update to 2003-06-12 version. 2003-06-14 07:08:09 -07:00
configure re PR bootstrap/11273 (make install fails in libobjc directory) 2003-07-13 20:47:31 +00:00
configure.in re PR bootstrap/11273 (make install fails in libobjc directory) 2003-07-13 20:47:31 +00:00
COPYING COPYING: Update to current ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes... 2000-12-18 21:47:20 +00:00
COPYING.LIB COPYING.LIB: Update to LGPL 2.1 from the FSF. 2001-01-29 13:32:47 +00:00
install-sh * install-sh: Use _inst.$$_ for temp file name. 2002-01-25 18:42:28 -05:00
libtool.m4 libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on mips*. 2003-04-11 04:20:21 +00:00
ltcf-c.sh Merge basic-improvements-branch to trunk 2002-12-16 18:23:00 +00:00
ltcf-cxx.sh libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld. 2003-02-20 01:11:51 +00:00
ltcf-gcj.sh ltcf-cxx.sh: Replace $linker_flags with $compiler_flags wherever it is used as argument to $CC. 2003-02-19 23:50:23 +00:00
ltconfig libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld. 2003-02-20 02:09:45 +00:00
ltmain.sh ltconfig (osf[345]): Append $major to soname_spec. 2002-11-20 15:59:07 +00:00
MAINTAINERS MAINTAINERS: Move self from Bug database only accounts to write-after-approval. 2003-07-16 11:15:22 -07:00
Makefile.def Makefile.def: Introduce flags_to_pass. 2003-06-23 20:34:26 +00:00
Makefile.in re PR bootstrap/11273 (make install fails in libobjc directory) 2003-07-13 20:47:31 +00:00
Makefile.tpl re PR bootstrap/11273 (make install fails in libobjc directory) 2003-07-13 20:47:31 +00:00
missing merge with /cvs/src 2000-07-22 04:08:22 -04:00
mkdep merge with /cvs/src 2000-07-22 04:08:22 -04:00
mkinstalldirs
move-if-change
README * README: Remove version number. 2001-06-13 19:48:09 +01:00
symlink-tree Makefile.in: handle DOS-style absolute paths. 2000-12-09 11:06:19 -05:00
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.