Go to file
Richard Henderson bc4071dd66 directives.c (struct pragma_entry): Add is_deferred.
libcpp/
	* directives.c (struct pragma_entry): Add is_deferred.  Add ident
	entry to value union.
	(end_directive): Don't eat the line if in_deferred_pragma.
	(run_directive): Remove pragma hacks.
	(insert_pragma_entry): Remove.
	(new_pragma_entry): New.
	(register_pragma_1): Split out of register_pragma.  Only handle
	the lookup tree and return the new entry.
	(cpp_register_pragma): Fill in the pragma entry here.
	(cpp_register_deferred_pragma): New.
	(register_pragma_internal): New.
	(_cpp_init_internal_pragmas): Use register_pragma_internal.
	(do_pragma): Allow pragma expansion after namespace.  For deferred
	pragmas, don't slurp the line into a string.
	(destringize_and_run): Save tokens for deferred pragmas.
	(cpp_handle_deferred_pragma): Remove.
	* macro.c (builtin_macro): Remove pragma token hack.
	(_cpp_push_token_context): Rename from push_token_context and export.
	* internal.h (struct lexer_state): Add pragma_allow_expansion.
	(_cpp_push_token_context): Declare.
	* lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
	a token.  Update the line number correctly if so.
	(_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
	(cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
	* include/cpplib.h (PRAGMA_EOL): New.
	(CPP_TOKEN_FLD_PRAGMA): New.
	(struct cpp_token): Add val.pragma.
	(struct cpp_options): Remove defer_pragmas.
	(cpp_handle_deferred_pragma): Remove.
	(cpp_register_deferred_pragma): Declare.

gcc/
	* c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
	via integer constant.
	(pragma_lex): Remove.
	* c-pch.c (c_common_pch_pragma): Accept the name as an argument,
	rather than parsing it.
	* c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
	handle_pragma_extern_prefix): Add %< %> quotes.
	(registered_pragmas): New.
	(c_register_pragma_1): New.
	(c_register_pragma): Use it.
	(c_register_pragma_with_expansion): Likewise.
	(c_invoke_pragma_handler): New.
	(init_pragma): Use cpp_register_deferred_pragma directly for
	pch_preprocess.
	* c-pragma.h (enum pragma_kind): New.
	(pragma_handler): New.
	(c_invoke_pragma_handler): Declare.
	* c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
	CPP_PRAGMA_EOL.
	* c-common.h (c_common_pch_pragma): Update decl.
	* Makefile.in (c-parser.o): Update dependencies.
	(GTFILES): Add c-pragma.h.
	* c-parser.c (struct c_token): Add pragma_kind.
	(struct c_parser): Add in_pragma.
	(c_lex_one_token): Always initialize keyword and pragma_kind.
	Extract data for CPP_PRAGMA.
	(c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
	(c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
	Don't allow CPP_PRAGMA_EOL if in_pragma.
	(c_parser_consume_pragma): New.
	(c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
	(c_parser_skip_to_end_of_parameter): Likewise.
	(c_parser_skip_to_end_of_block_or_statement): Likewise.
	(c_parser_skip_to_pragma_eol): New.
	(c_parser_external_declaration): Handle CPP_PRAGMA.
	(c_parser_compound_statement_nostart): Likewise.
	(c_parser_statement_after_labels): Likewise.
	(c_parser_pragma): New.
	(pragma_lex): Likewise.
	(c_parser_pragma_pch_preprocess): New.
	(c_parser_new): Merge into ...
	(c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.

gcc/cp/
	* lex.c (handle_pragma_java_exceptions): Fix whitespace.
	* parser.c (struct cp_token): Add pragma_kind.
	(eof_token): Update to match.
	(struct cp_lexer): Add in_pragma; rearrange next for better packing.
	(cp_parser_initial_pragma): New.
	(cp_lexer_new_main): Use it.  Don't bother clearing
	c_lex_return_raw_strings.
	(cp_lexer_get_preprocessor_token): Always initialize keyword
	and pragma_kind fields.  Handle CPP_PRAGMA.
	(cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when 
	in_pragma is set.
	(cp_lexer_handle_pragma): Remove.  Update callers to cp_parser_pragma.
	(cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
	(cp_parser_skip_to_pragma_eol): New.
	(cp_parser_error): Use it.
	(cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
	rearrange with switch statement.
	(cp_parser_skip_to_end_of_statement): Likewise.
	(cp_parser_skip_to_end_of_block_or_statement): Likewise.
	(cp_parser_skip_to_closing_brace): Likewise.
	(cp_parser_skip_until_found): Likewise.
	(cp_parser_statement): Add in_compound argument; update callers.
	Use it to decide how to handle pragma parsing.
	(cp_parser_labeled_statement): Add in_compound argument; pass
	it on to cp_parser_statement.
	(cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
	(cp_parser_declaration_seq_opt): Likewise.
	(cp_parser_parameter_declaration): Likewise.
	(cp_parser_member_specification_opt): Likewise.
	(cp_parser_function_definition_after_decl): Likewise.
	(cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
	(cp_parser_pragma): New.
	(pragma_lex): New.

gcc/testsuite/
	* g++.dg/parse/pragma2.C: Update expected error lines.

From-SVN: r109336
2006-01-04 08:33:38 -08:00
INSTALL
boehm-gc gc_priv.h: Increase MAX_ROOT_SETS to 1024. 2005-11-02 00:06:30 +00:00
config re PR libgomp/25259 (bootstrap failures on non-C99 platforms (no stdint.h)) 2006-01-02 18:53:27 +00:00
contrib * btest-gcc.sh: Support -j option. 2005-12-20 20:20:24 +00:00
fastjar compress.c (write_data): Mark 'ze' as unused. 2005-11-29 21:46:02 +00:00
fixincludes Check the last byte for '\n' 2005-11-25 05:57:10 +00:00
gcc directives.c (struct pragma_entry): Add is_deferred. 2006-01-04 08:33:38 -08:00
gnattools re PR ada/19959 (Can't compile gnattools for the cross targets) 2005-03-30 10:56:55 +02:00
include xtensa-config.h (XCHAL_HAVE_WIDE_BRANCHES): New. 2005-12-31 00:29:42 +00:00
intl .cvsignore are not needed for subversion, remove them. 2005-10-31 18:20:58 +01:00
libada Makefile.in (FLAGS_TO_PASS): Add GCC_FOR_TARGET. 2005-12-05 14:40:27 +00:00
libcpp directives.c (struct pragma_entry): Add is_deferred. 2006-01-04 08:33:38 -08:00
libdecnumber re PR libgomp/25259 (bootstrap failures on non-C99 platforms (no stdint.h)) 2006-01-02 18:53:27 +00:00
libffi ffitarget.h: Remove obsolete sgidefs.h include. 2005-12-07 14:56:38 +00:00
libgfortran re PR libgomp/25259 (bootstrap failures on non-C99 platforms (no stdint.h)) 2006-01-02 18:53:27 +00:00
libiberty floatformat.c (floatformat_i387_ext_is_valid): Use explicit cast to convert from "from". 2005-12-17 17:21:34 +00:00
libjava PR libgcj/9715, PR libgcj/19132: 2006-01-03 22:58:31 +00:00
libmudflap libmudflap.exp (libmudflap-init): Remove -static from MUDFLAP_FLAGS if static library not supported. 2005-11-22 20:35:51 +00:00
libobjc re PR objc/25360 (Complex types are not encoded) 2005-12-16 12:19:37 -08:00
libssp .cvsignore are not needed for subversion, remove them. 2005-10-31 18:20:58 +01:00
libstdc++-v3 sso_string_base.h (__sso_string_base<>::_M_dataplus): Use _CharT_alloc_type as base class. 2006-01-04 11:34:45 +00:00
maintainer-scripts update_web_docs_svn: Remove unnecessary files from source tree. 2005-12-16 23:59:10 +00:00
zlib .cvsignore are not needed for subversion, remove them. 2005-10-31 18:20:58 +01:00
ABOUT-NLS
COPYING COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
COPYING.LIB Update COPYING.LIB from upstream. Correct last Changelog. 2005-07-14 01:41:54 +00:00
ChangeLog re PR middle-end/24252 (Missing "warning: control reaches end of non-void function" in static function) 2006-01-04 12:21:27 +00:00
ChangeLog.tree-ssa Merge tree-ssa-20020619-branch into mainline. 2004-05-13 02:41:07 -04:00
MAINTAINERS * MAINTAINERS (libdecnumber): Add myself. 2006-01-04 09:52:08 +11:00
Makefile.def re PR middle-end/24252 (Missing "warning: control reaches end of non-void function" in static function) 2006-01-04 12:21:27 +00:00
Makefile.in re PR middle-end/24252 (Missing "warning: control reaches end of non-void function" in static function) 2006-01-04 12:21:27 +00:00
Makefile.tpl re PR middle-end/24252 (Missing "warning: control reaches end of non-void function" in static function) 2006-01-04 12:21:27 +00:00
README
README.SCO * README.SCO: Update the URL. 2005-05-08 17:49:46 +00:00
compile COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
config-ml.in COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
config.guess Sync config.{sub,guess} from upstream sources 2005-11-22 20:41:02 +00:00
config.rpath all files: Update FSF address. 2005-07-16 02:30:53 +00:00
config.sub config.gcc (ms1): Replace with ... 2005-12-12 10:54:49 +00:00
configure re PR middle-end/24252 (Missing "warning: control reaches end of non-void function" in static function) 2006-01-04 12:21:27 +00:00
configure.in re PR middle-end/24252 (Missing "warning: control reaches end of non-void function" in static function) 2006-01-04 12:21:27 +00:00
depcomp top level: 2005-06-13 08:26:05 +00:00
install-sh COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
libtool-ldflags libtool-ldflags: New script. 2006-01-03 00:30:27 +00:00
libtool.m4 all files: Update FSF address. 2005-07-16 02:30:53 +00:00
ltcf-c.sh ltcf-c.sh (whole_archive_flag_spec): Remove '-all_load $convenience' to match upstream libtool for darwin. 2005-11-18 23:53:08 +01:00
ltcf-cxx.sh all files: Update FSF address. 2005-07-16 02:30:53 +00:00
ltcf-gcj.sh all files: Update FSF address. 2005-07-16 02:30:53 +00:00
ltconfig all files: Update FSF address. 2005-07-16 02:30:53 +00:00
ltmain.sh Fix misapplied hunk. 2005-10-05 09:19:53 +00:00
missing COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
mkdep
mkinstalldirs COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
move-if-change Import from Autoconf sources: 2005-11-21 13:21:37 +11:00
symlink-tree COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
ylwrap COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00

README

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.