Commit Graph

296 Commits

Author SHA1 Message Date
Per Bothner
4dc299fbbe cppinit.c (cpp_read_main_file): Split into two functions: Distribute _cpp_stack_file call over the two functions.
* cppinit.c (cpp_read_main_file):  Split into two functions:
	Distribute _cpp_stack_file call over the two functions.
	(cpp_find_main_file):  New function.
	Don't call _cpp_do_file_change even if working_directory flag set.
	(cpp_push_main_file):  New function.
	* cppfiles.c (_cpp_find_failed):  New helper function.
	(find_file):  Made non-static and renamed to _cpp_find_file.
	(_cpp_stack_file):  No longer needed.  But note the following.
	(stack_file):  Made non-static and renamed to _cpp_stack_file.
	* fix-header.c (cpp_read_main_file):  Replace cpp_read_main_file
	call with calls to cpp_find_main_file and cpp_push_main_file.
	(search_path_head):  If there is no current buffer, use main_file.
	* cpphash.h:  Update function declarations.
	* cpplib.h:  Update function declarations.

From-SVN: r72014
2003-10-02 00:23:27 -07:00
Kazu Hirata
59e4e217ae c-common.c: Fix comment formatting.
* c-common.c: Fix comment formatting.
	* c-common.h: Likewise.
	* c-decl.c: Likewise.
	* cppinit.c: Likewise.
	* cpplib.h: Likewise.
	* emit-rtl.c: Likewise.
	* input.h: Likewise.
	* line-map.h: Likewise.
	* opts.c: Likewise.
	* opts.h: Likewise.
	* simplify-rtx.c: Likewise.

From-SVN: r70577
2003-08-19 21:04:38 +00:00
Per Bothner
5a05675643 Remove improper white-space.
From-SVN: r70313
2003-08-10 18:44:50 -07:00
Per Bothner
4169c321d0 cppinit.c (cpp_read_main_file): Split out source-independent initialization to separate function ...
* cppinit.c (cpp_read_main_file):  Split out source-independent
        initialization to separate function ...
        (cpp_post_options):  New function.
        * cppfiles.c (cpp_stack_file):  Rename public name to ...
        (_cpp_stack_file):  New internal function name.
        * cpplib.h:  Update accordingly.
        * cppinit.c:  (cpp_create_reader):  Initialize cpp_readers line here.
        (cpp_read_main_file):  Don't initialize line here.
        * c-opts.c (c_common_post_options):  Call cpp_post_options.
        (c_common_parse_file):  Call cpp_read_main_file, not cpp_stack_file.
        * fix-header.c (read_scan_file):  Call cpp_post_options.

From-SVN: r70279
2003-08-09 15:14:07 -07:00
Alexandre Oliva
b20d9f0c07 c.opt: Introduce -fworking-directory.
* c.opt: Introduce -fworking-directory.
* doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it.
* c-common.h (flag_working_directory): Declare.
* c-common.c (flag_working_directory): Define.
* c-opts.c (c_common_handle_options): Set it.
(sanitize_cpp_opts): Set...
* cpplib.h (struct cpp_options): ... working_directory option.
(struct cpp_callbacks): Add dir_change.
* cppinit.c (read_original_filename): Call...
(read_original_directory): New.  Look for # 1 "directory//"
and process it.
(cpp_read_main_file): Call dir_change callback if working_directory
option is set.
* gcc.c (cpp_unique_options): Pass -g*.
* c-lex.c (cb_dir_change): New.
(init_c_lex): Set dir_change callback.
* toplev.c (src_pwd): New static variable.
(set_src_pwd, get_src_pwd): New functions.
* toplev.h (get_src_pwd, set_src_pwd): Declare.
* dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd().
* dwarf2out.c (gen_compile_unit_die): Likewise.
* dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise.

From-SVN: r70189
2003-08-05 21:15:57 +00:00
Neil Booth
bf42e45b20 Makefile.in: Refine dependencies.
* Makefile.in: Refine dependencies.
	* c-opts.c (c_common_handle_option): Do nothing for -Wimport.
	* c.opt: Update help for -Wimport.
	* cppfiles.c: Include hashtab.h.  Update comments.
	(stack_file): Read the file before updating dependencies.
	(once_only_file_p): Be smarter about marking once-only files.
	(_cpp_mark_file_once_only): Correct the check for existence on
	the list.
	(open_file_failed): Use name not path, which is NULL.
	* cpphash.h: Don't include hashtab.h.
	(struct _cpp_file): Remove.
	(struct cpp_reader): Update.
	* cppinit.c (cpp_create_reader): Don't initialize warn_import.
	* cpplib.h (struct cpp_options): Remove warn_import.
	(cpp_simplify_path): Remove.

From-SVN: r70045
2003-08-01 14:04:02 +00:00
Neil Booth
8f9b40094d Makefile.in (LIBCPP_DEPS): Add HASHTAB_H.
* Makefile.in (LIBCPP_DEPS): Add HASHTAB_H.
	* cppfiles.c: Completely rewritten.
	* c-incpath.c (free_path, remove_duplicates, heads, tails, add_path):
	struct cpp_path is now struct cpp_dir.
	(remove_duplicates): Don't simplify path names.
	* c-opts.c (c_common_parse_file): cpp_read_next_file renamed
	cpp_stack_file.
	* cpphash.h: Include hashtab.h.
	(_cpp_file): Declare.
	(struct cpp_buffer): struct include_file is now struct _cpp_file,
	and struct cpp_path is now struct cpp_dir.  Rename members.
	(struct cpp_reader): Similarly.  New members once_only_files,
	file_hash, file_hash_entries, quote_ignores_source_dir,
	no_search_path, saw_pragma_once.  Remove all_include_files and
	max_include_len.  Make some members bool.
	(_cpp_mark_only_only): Renamed from _cpp_never_reread.
	(_cpp_stack_file): Renamed from _cpp_read_file.
	(_cpp_stack_include): Renamed from _cpp_execute_include.
	(_cpp_init_files): Renamed from _cpp_init_includes.
	(_cpp_cleanup_files): Renamed from _cpp_cleanup_includes.
	* cppinit.c (cpp_create_reader): Initialize no_search_path.  Update.
	(cpp_read_next_file): Rename and move to cppfiles.c.
	(cpp_read_main_file): Update.
	* cpplib.c (run_directive): Update for renamed members.
	(do_include_common, _cpp_pop_buffer): Update.
	(do_import): Undeprecate #import.
	(do_pragma_once): Undeprecate.  Use _cpp_mark_file_once_only.
	* cpplib.h: Remove file_name_map_list.
	(cpp_options): Remove map_list.
	(cpp_dir): Rename from cpp_path.  New datatype for name_map.
	(cpp_set_include_chains, cpp_stack_file, cpp_included): Update.
testsuite:
	* gcc.dg/cpp/include2.c: Only expect one message.

From-SVN: r69942
2003-07-29 22:26:13 +00:00
Zack Weinberg
a2f7be91fc hashtable.c (approx_sqrt): Make static.
* hashtable.c (approx_sqrt): Make static.
	* hashtable.h: Don't prototype approx_sqrt.
	* line-map.c (init_line_maps): Rename linemap_init.
	(free_line_maps): Rename linemap_free.
	(add_line_map): Rename linemap_add.
	(lookup_line): Rename linemap_lookup.
	(print_containing_files): Rename linemap_print_containing_files.
	* linemap.h: Update to match.

	* cpperror.c, cppinit.c, cpplib.c, cppmacro.c: Update calls to
	linemap routines to use new names.

From-SVN: r69672
2003-07-22 16:24:53 +00:00
Kaveh R. Ghazi
703ad42b4b alias.c [...]: Remove unnecessary casts.
* alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c
	c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in
	c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c
	collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c
	cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c
	cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c
	dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c
	fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c
	gcse.c genattr.c genattrtab.c genautomata.c genconditions.c
	genemit.c genextract.c genoutput.c genrecog.c gensupport.c
	ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c
	integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c
	loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c
	postreload.c prefix.c print-tree.c protoize.c ra-build.c
	ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c
	regmove.c regrename.c reload.c reload1.c reorg.c resource.c
	sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c
	simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c
	tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c
	varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary
	casts.

From-SVN: r69587
2003-07-19 14:47:15 +00:00
Zack Weinberg
438396422c Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H).
* Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H).
	(hashtable.o, line-map.o, mkdeps.o): Likewise, from dependency
	list.  Move these all together down by cpplib.

	* cpplib.h: Don't refer to MAX_WCHAR_TYPE_SIZE when determining
	definition of CPPCHAR_SIGNED_T.

	* cppcharset.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, cppinit.c
	* cpplex.c, cpplib.c, cppmacro.c, cpppch.c, cpptrad.c, hashtable.c
	* line-map.c, mkdeps.c: Don't include coretypes.h or tm.h.

	* cpphash.c (_cpp_init_hashtable): Don't use gcc_obstack_init.
	* cppinit.c (cpp_create_reader): Likewise.

	* cpphash.h (scan_out_logical_line): Rename _cpp_scan_out_logical_line.
	* cpptrad.c: Likewise.  All callers changed.
	* cpplib.c: All callers changed.
	* c-ppoutput.c: Replace 'uchar' with 'unsigned char' throughout.
	* hashtable.h: Define GTY(x) to nothing here too.

From-SVN: r69298
2003-07-13 17:34:18 +00:00
Geoffrey Keating
d1bd0ded61 Index: ChangeLog
2003-07-10  Geoffrey Keating  <geoffk@apple.com>

	* c-decl.c (finish_decl): Handle 'used' here...
	* cgraphunit.c (cgraph_finalize_function): ... and here ...
	* c-common.c: (handle_used_attribute): ... not here.

	* configure.in (onstep): Support --enable-intermodule.
	* Makefile.in (OBJS-common): New.
	(OBJS-md): New.
	(OBJS-archive): New.
	(OBJS): Build from OBJS-common, OBJS-md, OBJS-archive.
	(OBJS-onestep): New.
	(libbackend.a): Support @onestep@.
	(libbackend.o): New.
	* configure: Regenerate.

	* c-common.h (c_reset_state): New prototype.
	(c_parse_file): New prototype.
	(finish_file): Move prototype from c-tree.h.
	* c-decl.c: Include <hashtab.h>.
	(builtin_decls): New.
	(current_file_decl): New.
	(duplicate_decls): Add extra parameter. Change all callers.  Don't
	output duplicate common symbols.
	(link_hash_hash): New.
	(link_hash_eq): New.
	(poplevel): Handle popping of the top level.
	(warn_if_shadowing): Handle TRANSLATION_UNIT_DECL.
	(pushdecl): Set DECL_CONTEXT to TRANSLATION_UNIT_DECL if appropriate.
	(pushdecl_top_level): Likewise.
	(redeclaration_error_message): Handle TRANSLATION_UNIT_DECL.
	(c_init_decl_processing): Create TRANSLATION_UNIT_DECL.
	(finish_decl): Handle TRANSLATION_UNIT_DECL.
	(merge_translation_unit_decls): New.
	(c_write_global_declarations): New.
	(c_reset_state): New.
	(implicitly_declare): Handle TRANSLATION_UNIT_DECL.
	* c-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
	* c-objc-common.c (c_cannot_inline_tree_fn): Handle
	TRANSLATION_UNIT_DECL.
	(c_objc_common_finish_file): Call merge_translation_unit_decls.
	* c-opts.c (in_fnames): Rename from in_fname.
	(c_common_decode_option): Handle multiple input filenames.
	(c_common_post_options): Likewise.
	(c_common_parse_file): Likewise; also, call c_parse_file rather than
	yyparse.
	* c-parse.in: Move cleanup code to c_parse_file.
	(free_parser_stacks): Move contents to c_parse_file.
	(c_parse_file): New.
	* c-tree.h (union lang_tree_node): Chain along TYPE_NEXT_VARIANT
	for integer types.
	(C_DECL_FILE_SCOPE): New.
	(finish_file): Move prototype to c-common.h.
	(merge_translation_unit_decls): New prototype.
	(comptypes): Add extra parameter to prototype.
	(c_write_global_declarations): New prototype.
	* c-typeck.c (tagged_types_tu_compatible_p): New.
	(function_types_compatible_p): Add extra parameter, change all callers.
	(type_lists_compatible_p): Likewise.
	(comptypes): Likewise.
	(struct tagged_tu_seen): New.
	(tagged_tu_seen_base): New.
	(build_unary_op): Handle TRANSLATION_UNIT_DECL.
	(c_mark_addressable): Remove #if 0 code.
	* calls.c (special_function_p): Handle TRANSLATION_UNIT_DECL, add
	comment explaining why it shouldn't have to.
	* cgraph.h (struct cgraph_node): Add chain_next and chain_prev GTY
	options.
	* cppinit.c (cpp_read_next_file): New.
	(cpp_read_main_file): Use it.
	* cpplib.c (undefine_macros): New.
	(cpp_undef_all): New.
	* cpplib.h (cpp_read_next_file): Prototype.
	(cpp_undef_all): Prototype.
	* langhooks-def.h (write_global_declarations): Remove prototype.
	* toplev.h (write_global_declarations): Add prototype.
	* tree.c (decl_type_context): Use switch statement, handle
	TRANSLATION_UNIT_DECL.
	* tree.def: Update documentation for TRANSLATION_UNIT_DECL.
	(TRANSLATION_UNIT_DECL): New kind of tree.
	* tree.h: Update documentation for TRANSLATION_UNIT_DECL.
	* Makefile.in (c-decl.o): Add $(HASHTAB_H) to dependencies.
	* doc/invoke.texi: Make attempt to document new functionality.

	2003-05-19  Per Bothner <bothner@apple.com>

	* gcc.c (combine_inputs): New.
	(process_command): Set combine_inputs.
	(do_spec_1): Handle combine_inputs.
	(main): Likewise.

Index: cp/ChangeLog
2003-07-10  Geoffrey Keating  <geoffk@apple.com>

	* decl.c (cp_finish_decl): Handle 'used' attribute.

	* cp-lang.c (c_reset_state): New dummy routine.
	* cp-tree.h (finish_file): Move prototype to c-common.h.
	* parser.c (c_parse_file): Rename from yyparse; don't call finish_file.

From-SVN: r69224
2003-07-11 08:33:21 +00:00
Zack Weinberg
e6cc3a24c2 cpplib.h (CPP_AT_NAME, [...]): New token types.
* cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types.
	(struct cpp_options): Add narrow_charset, wide_charset,
	bytes_big_endian fields.  Remove EBCDIC field.
	(cpp_init_iconv, cpp_interpret_string): New external interfaces.

	* cpphash.h: Include <iconv.h> if we have it, otherwise
	provide a dummy definition of iconv_t.
	(struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields.
	(_cpp_valid_ucn): Update prototype.
	(_cpp_destroy_iconv): New prototype.

	* doc/cpp.texi: Document character set handling.
	* doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=.
	* doc/extend.texi: Delete entire section on multiline strings.
	Rewrite section on __FUNCTION__ etc now that these are
	variables in C.

	* cppucnid.tab, cppucnid.pl: New files.
	* cppucnid.h: New generated file.
	* cppcharset.c: Include cppucnid.h.  Lots of commentary added.
	(iconv_open, iconv, iconv_close): Provide dummy definitions
	if !HAVE_ICONV.
	(SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv,
	_cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn,
	emit_numeric_escape, convert_hex, convert_oct, convert_escape,
	cpp_interpret_string, narrow_str_to_charconst,
	wide_str_to_charconst): New.
	(ucn_valid_in_identifier): Use a binary search through the
	ucnranges table defined in cppucnid.h, not a long chain of if
	statements.
	(_cpp_valid_ucn): Add a limit pointer.  Downgrade "universal
	character names are only valid in C++ and C99" to a warning.
	Issue the "meaning of \[uU] is different in traditional C"
	warning here.  Take care not to let iconv see an invalid UCS
	value if we get a malformed UCN.  Issue an error if we don't
	have iconv.
	(cpp_interpret_charconst): Moved here from cpplex.c.  Use
	cpp_interpret_string to do the heavy lifting.

	* cppinit.c (cpp_create_reader): Initialize bytes_big_endian,
	narrow_charset, wide_charset fields of options structure.
	(cpp_destroy): Call _cpp_destroy_iconv.
	* cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn.
	(maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete.
	(cpp_interpret_charconst): Moved to cppcharset.c.
	* cpplib.c (dequote_string): Delete.
	(interpret_string_notranslate): New.
	(do_line, do_linemarker): Use interpret_string_notranslate.

	* Makefile.in (cppcharset.o): Depend on cppucnid.h.

	* c-common.c (fname_string, combine_strings): Delete.
	* c-common.h (fname_string, combine_strings): Delete prototypes.
	* c-lex.c (ignore_escape_flag): Delete.
	(cb_ident): Use cpp_interpret_string, not lex_string.
	(get_nonpadding_token): New function.
	(c_lex): Handle Objective-C @-prefixed identifiers and strings here.
	Adjust calls to lex_string.  Don't write *value twice.
	(lex_string): Now handles string constant concatenation.
	Most of the work handed off to cpp_interpret_string.
	Call fix_string_type here.
	* c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with
	FUNC_NAME, throughout.
	(OBJC_STRING): New token type.
	(primary:STRING): No need to call fix_string_type here.
	(primary:objc_string): Make that OBJC_STRING.
	(objc_string nonterminal): Delete.
	(yylexname): Delete code to handle fake string constants.
	(yylexstring): Delete entirely.
	(_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING.  No need
	to handle CPP_ATSIGN.

	* c.opt (-fexec-charset=, -fwide-exec-charset=): New options.
	* c-opts.c (missing_arg, c_common_handle_option): Handle
	OPT_fexec_charset_ and OPT_fwide_exec_charset_.
	(c_common_init): Set cpp_opts->bytes_big_endian, not
	cpp_opts->EBCDIC.  Call cpp_init_iconv.
	(print_help): Document -fexec-charset= and -fexec-wide-charset=.
	(TARGET_EBCDIC): Delete default definition.

	* objc/objc-act.c (build_objc_string_object): No need to
	handle string constant concatenation.

cp:
	* parser.c (cp_lexer_read_token): No need to handle string
	constant concatenation.

testsuite:
	* gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c
	everywhere.
	* gcc.dg/concat.c: Concatenation of string constants with
	__FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error.
	* gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp.
	* gcc.dg/cpp/escape-2.c: Use wide character constants where
	necessary to avoid multi-character character constant warning.
	* gcc.dg/cpp/escape.c: Likewise.
	* gcc.dg/cpp/ucs.c: Likewise.
	Remove backslashes from dg-bogus comments, as they confuse Tcl.
	Fix a typo.

libstdc++-v3:
	* testsuite/22_locale/collate/compare/wchar_t/2.cc
	* testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
	* testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
	* testsuite/22_locale/collate/hash/wchar_t/2.cc
	* testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
	* testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
	* testsuite/22_locale/collate/transform/wchar_t/2.cc
	* testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
	* testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
	XFAIL on all targets.

From-SVN: r68952
2003-07-05 00:24:00 +00:00
Zack Weinberg
6cf87ca4e5 * cpplib.h, cpphash.h, cppcharset.c, cpperror.c, cppexp.c
* cppfiles.c, cpphash.c, cppinit.c, cpplex.c, cpplib.c
	* cppmacro.c, cpppch.c, cpptrad.c, cppspec.c: Convert to
	ISO C: new-style function declarations, no need for PARAMS,
	no special punctuation on indirect function calls, use string
	constant concatenation where convenient.

From-SVN: r68070
2003-06-17 06:17:44 +00:00
Kaveh R. Ghazi
fad205ffba decl.c, [...]: Don't use the PTR macro.
cp:
	* cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR
	macro.

gcc:
	* bitmap.c, builtins.c, c-incpath.c, cgraph.c, config/frv/frv.c,
	config/mips/mips.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c,
	dwarf2out.c, dwarfout.c, except.c, expr.c, expr.h, fold-const.c,
	function.c, gcc.c, genoutput.c, gensupport.c, global.c,
	haifa-sched.c, hashtable.c, ifcvt.c, integrate.c, local-alloc.c,
	loop.c, mips-tdump.c, mips-tfile.c, mkdeps.c, protoize.c,
	read-rtl.c, recog.h, reload1.c, sbitmap.c, ssa-dce.c,
	stringpool.c, tlink.c, tree.c, varasm.c, varray.c: Don't use
	the PTR macro.

From-SVN: r68043
2003-06-16 21:41:10 +00:00
Hans-Peter Nilsson
78b8811a38 Don't warn on dollars in builtin macro definitions,
e.g. __REGISTER_PREFIX__.
	* cpphash.h (struct cpp_reader): Move member warn_dollars...
	* cpplib.h (struct cpp_options): ...to here.  Change type to
	unsigned char.
	* cppinit.c (cpp_create_reader): Set it to 1 here.
	(post_options): Don't set it here.
	* c-opts.c (c_common_init_options): Reset it to 0 here.
	(finish_options): Set it here.
	* cpplex.c (forms_identifier_p): Tweak for new location of
	warn_dollars.

From-SVN: r67824
2003-06-12 06:09:15 +00:00
Neil Booth
b1822ccc44 c-common.c, c-common.h (dollars_in_ident): Remove.
* c-common.c, c-common.h (dollars_in_ident): Remove.
	* c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true.
	(c_common_init_options, c_common_decode_option): Set dollars_in_ident.
	* cpphash.h (warned_dollar): Rename warn_dollars.
	* cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang)
	Permit dollars regardless of -std=.
	(post_options): Set warn_dollars.
	* cpplex.c (forms_identifier_p): Use warn_dollars.
	* config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h:
	Remove redundant definitions of DOLLARS_IN_IDENTIFIERS.
	* doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi:
	Update documentation.
testsuite:
	* gcc.dg/dollar.c: New test.

From-SVN: r66911
2003-05-17 20:29:34 +00:00
Neil Booth
58b5b89492 * cppinit.c (cpp_init_builtins): Use _cpp_define_builtin
From-SVN: r66691
2003-05-11 15:15:35 +00:00
Neil Booth
82244e3e9c * cppinit.c (cpp_init_builtins): Use _cpp_define_builtin
From-SVN: r66689
2003-05-11 13:58:10 +00:00
Neil Booth
6e2701797a c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into cpplib as it's a Standard Predefined Macro.
* c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into
	cpplib as it's a Standard Predefined Macro.
	* c-opts.c (finish_options): Pass flag_hosted to cpp_init_builtins.
	* cppinit.c (_cpp_init_builtins): Take HOSTED.  Define
	__STDC_HOSTED__ appropriately.
	* cpplib.h (_cpp_init_builtins): Update.
	* fix-header.c (read_scan_file): Update.
	* doc/cpp.texi, doc/cppopts.texi: Update documentation.
	* cppfiles.c (find_or_create_entry): Preserve errno.

From-SVN: r66688
2003-05-11 13:43:36 +00:00
Neil Booth
a8eb6044a9 cppinit.c (cpp_create_reader, [...]): Warn about trigraphs unless explicity set or -trigraphs.
* cppinit.c (cpp_create_reader, post_options): Warn about
	trigraphs unless explicity set or -trigraphs.
	* cpplex.c (warn_in_comment): New.
	(_cpp_process_line_notes): Better handling of -Wtrigraphs.
	(_cpp_skip_block_comment): Add call to _cpp_process_line_notes.
	* doc/cppopts.texi, doc/cpp.texi: Update.
testsuite:
	* gcc.dg/cpp/Wtrigraphs.c: Update.
	* gcc.dg/cpp/Wtrigraphs-2.c: New tests.

From-SVN: r66459
2003-05-04 20:03:55 +00:00
Neil Booth
26aea0737b cppfiles.c (ENABLE_VALGRIND_CHECKING, [...]): Remove.
* cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
	MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
	(struct include_file): Remove fefcnt, mapped members.
	(open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
	(read_include_file): Don't use mmap, terminate buffers in '\r'.
	(purge_cache): Don't use munmap.
	* cpphash.h (CPP_BUF_COLUMN): Update.
	(lexer_state): Remove lexing_comment.
	(struct _cpp_line_note): New.
	(struct cpp_buffer): New members cur_note, notes_used, notes_cap,
	next_line and need_line.  Remove col_adjust and saved_flags.
	(_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
	_cpp_skip_block_comment, scan_out_logical_line): New.
	(_cpp_init_mbchar): Remove.
	* cppinit.c (init_library): Remove call to _cpp_init_mbchar.
	(cpp_read_main_file): Set line to 1 earlier.
	(post_options): -traditional-cpp doesn't want trigraphs.
	* cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
	(add_line_note, _cpp_clean_line, _cpp_process_line_notes,
	_cpp_get_fresh_line): New.
	(handle_newline, skip_escaped_newlines, trigraph_p,
	continue_after_nul, _cpp_init_mbchar): Remove.
	(get_effective_char): Update.
	(_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
	(skip_line_comment): Simplify.
	(skip_whitespace, parse_identifier, parse_slow, parse_number,
	parse_string): Update.
	(cpp_lex_direct): Use clean lines and process line notes.  Update.
	(cpp_interpret_charconst): No MULTIBYTE_CHARS.
	* cpplib.c (prepare_directive_trad): Call scan_out_logical_line
	directly.
	(_cpp_handle_directive): Don't set saved_flags.
	(run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
	cpp_undef, handle_assertion, cpp_push_buffer): Update.
	(_cpp_pop_buffer): Free notes.
	* cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
	* cpppch.c (cpp_read_state): \n terminate buffer.
	* cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
	(copy_comment): Use _cpp_skip_block_comment.
	(skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
	Simplify.
	(_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
	save_replacement_text): Update.
	(scan_out_logical_line): Update to use clean lines and process
	line notes.
	* fix-header.c (read_scan_file): Update.
testsuite:
	* gcc.dg/cpp/_Pragma4.c: Remove stray space.
	* gcc.dg/cpp/trad/escaped-eof.c: Correct line number.

From-SVN: r65808
2003-04-19 00:22:51 +00:00
Per Bothner
b4e46cea24 Various cleanups to help compile server.
* cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
	and pass that to _cpp_init_hashtable.
	(cpp_read_main_file):  Drop hash_table* argument; don't call
	_cpp_init_hashtable.
	* cpplib.h:  Update declarations to match.
	* c-opts.c (c_common_init_options):  Pass ident_hash to
	cpp_create_reader.
	(c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
	* fix-header.c (read_scan_file):  Likewise pass NULL table to
	cpp_create_reader rather than cpp_read_main_file.

	* cppfiles.c (cpp_rename_file):  Generalized and renamed
	to cpp_change_file.
	* cpplib.h:  Update declaration to match.
	* c-opts.c (push_command_line_line, finish_options):  Change
	cpp_rename_file calls to cpp_change_file.

From-SVN: r64617
2003-03-20 08:46:18 -08:00
Neil Booth
c1bad961ed Makefile.in: Update.
* Makefile.in: Update.
	* c-common.h (cb_register_builtins): Rename c_cpp_builtins.
	* c-lex.c (init_c_lex): Register builtins hook is dead.
	* c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
	(c_common_decode_option): Don't call cpp_handle_option.
	Handle -A, -D and -U.
	(handle_deferred_opts): Simplify.
	(finish_options): Define builtins and command line macros.
	* c-ppoutput.c (init_pp_output): Register builtins hook is dead.
	* cppinit.c: Don't include intl.h.
	(init_builtins): Rename cpp_init_builtins.  No hook to call.
	(init_library): Don't need to sort options.
	(cpp_create_reader): Don't set pending.
	(cpp_destroy): Don't free pending.
	(struct pending_option, cl_directive_handler, struct cpp_pending,
	APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
	cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
	cl_options, cpp_handle_option): Remove.
	* cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
	cpp_finish_options): Remove.
	(cpp_init_builtins): New.
	* fix-header.c (read_scan_file): Update to handle -D.  Fix
	handling of -I.  Replace call to cpp_finish_options.
cp:
	* Make-lang.in: Update.

From-SVN: r64398
2003-03-15 12:18:47 +00:00
Neil Booth
255c10b1a7 c-opts.c (finish_options): New.
* c-opts.c (finish_options): New.
	(COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros.
	(missing_arg): Handle OPT_include and OPT_imacros.
	(c_common_init, c_common_parse_file): Use finish_options.
	(handle_deferred_opts): Update.
	* cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail.
	(cpp_finish_options): Don't handle -imacros here.
	(no_fil): Remove.
	(COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros.

From-SVN: r64378
2003-03-14 23:47:24 +00:00
Neil Booth
23345bbbcc /home/neil/diffs/include.log
From-SVN: r64373
2003-03-14 21:47:50 +00:00
Neil Booth
c19b12cb00 cppfiles.c (cpp_rename_file, [...]): New.
* cppfiles.c (cpp_rename_file, cpp_push_include): New.
	* cppinit.c (push_include): Move with changes to cppfiles.c.
	(cpp_read_main_file): Mark named operators here...
	(cpp_finish_options): ...not here.  Update.
	(_cpp_maybe_push_include_file): Update.
	* cpplib.h (cpp_push_include, cpp_rename_file): New.

From-SVN: r64266
2003-03-12 21:31:51 +00:00
Neil Booth
39a9126445 cppinit.c (cpp_finish_options): Set first_unused_line to -1.
* cppinit.c (cpp_finish_options): Set first_unused_line to -1.
testsuite:
	* gcc.dg/cpp/Wunused.c: Update test.

From-SVN: r63985
2003-03-08 13:34:31 +00:00
Neil Booth
9d10c9a9eb Makefile.in (c-ppoutput.o): Update.
* Makefile.in (c-ppoutput.o): Update.
	* c-common.h (init_pp_output): New.
	(preprocess_file): Update.
	* c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
	Register builtins.
	* c-opts.c (c_common_init): Call init_pp_output if preprocessing.
	Make call to cpp_read_main_file common to whether preprocessing
	or not.  Don't register builtins.
	* c-ppoutput.c: Include c-pragma.h.
	(setup_callbacks): Rename init_pp_output.
	(preprocess_file): No longer setup callbacks or call
	cpp_read_main_file.
	* cpphash.h (_cpp_init_mbchar): New.
	* cppinit.c (init_library): Call _cpp_init_mbchar.
	* cpplex.c (_cpp_init_mbchar): New.

From-SVN: r63913
2003-03-06 23:12:30 +00:00
Neil Booth
5793b27668 Makefile.in (C_AND_OBJC_OBJS, [...]): Update.
* Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
	cppinit.o, cppdefault.o, fix-header): Update.
	* c-incpath.c: New file.
	* c-incpath.h: New file.
	* c-lex.c: Include c-incpath.h.
	(init_c_lex): Register path simplifier.
	* c-opts.c: Include cppdefault.h and c-incpath.h.
	(TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
	std_cxx_inc, quote_chain_split, add_prefixed_path): New.
	(COMMAND_LINE_OPTIONS): Add more options from cpplib.
	(missing_arg, c_common_decode_option): Handle them.
	(c_common_post_options): Register include chains.
	(print_help): Update.
	* cppdefault.h (struct default include): Update.
	Move some macros to ...
	* cppdefault.c: ... here.
	(cpp_include_defaults): Add extra field add_sysroot.
	* cppfiles.c (include_file, search_from, find_or_create_entry,
	cpp_included, find_include_file, remap_filename): Update for
	renaming of search_path to cpp_path, and of the chain headers.
	(remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
	* cpphash.h (struct search_path): Move to cpplib.h.
	(struct cpp_buffer, struct cpp_reader): Update.
	(_cpp_simplify_pathname): Remove.
	* cppinit.c: Don't include prefix.h and cppdefault.h.
	(INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
	remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
	init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
	no_pth, cpp_handle_options): Remove.
	(struct pending_option): Remove chain members.
	(cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
	cpp_handle_option): Update.
	* cpplib.h (struct cpp_path, cpp_set_include_chains): New.
	(struct cpp_options): Remove quote_include, bracket_include,
	include_prefix, include_prefix_len, verbose, ignore_srcdir,
	no_standard_includes, no_standard_cplusplus_includes.
	(struct cpp_callbacks): Add simplify_path.
	(cpp_handle_options): Remove.
	* fix-header.c: Include c-incpath.h.
	(read_scan_file): Update to use c-incpath functionality.
	* doc/passes.texi: Update.
cp:
	* Make-lang.in (CXX_C_OBJS): Update.

From-SVN: r63612
2003-03-01 14:31:21 +00:00
Daniel Jacobowitz
047d636f54 Makefile.in (PREPROCESSOR_DEFINES): Add @TARGET_SYSTEM_ROOT_DEFINE@.
* Makefile.in (PREPROCESSOR_DEFINES): Add
	@TARGET_SYSTEM_ROOT_DEFINE@.
	* configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
	is specified or if building a cross compiler.
	(TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
	if the sysroot is under $exec_prefix.
	* configure: Regenerated.
	* cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
	defined.
	(struct default_include): Add add_sysroot field.
	(cpp_SYSROOT): Declare.
	* cppdefault.c (cpp_include_defaults): Fill in add_sysroot
	field.
	(cpp_SYSROOT): New variable.
	* cppinit.c (cpp_create_reader): Initialize
	CPP_OPTION (pfile, sysroot).
	(init_standard_includes): Handle add_sysroot.  Do not
	add unrelocated copies of relocated directories.
	(COMMAND_LINE_OPTIONS): Add -isysroot.
	(cpp_handle_option): Handle -isysroot.
	* cpplib.h (struct cpp_options): Add sysroot member.
	* gcc.c (The Specs Language): Update description of %I.
	(target_system_root_changed): New variable.
	(process_command): Conditionalize make_relative_prefix call
	on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE.  Set
	target_system_root_changed.
	(do_spec_1): Add -isysroot to %I.
	* doc/invoke.texi (Spec Files): Update description of %I.
	* doc/install.texi (--with-sysroot): Update comment about
	relocation.

From-SVN: r62853
2003-02-13 17:23:56 +00:00
Jason Merrill
9fbd3e4166 cpplib.h (struct cpp_options): Add warn_deprecated field.
* cpplib.h (struct cpp_options): Add warn_deprecated field.
        * cppinit.c (cpp_create_reader): Turn it on by default.
        * c-opts.c (c_common_decode_option): Set it.
        * cpplib.c (do_pragma_once): Only complain about #pragma once
        if warn_deprecated is set.

From-SVN: r62005
2003-01-28 14:30:00 -05:00
Zack Weinberg
4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Frank Ch. Eigler
7c7c549e2c cppinit.c (init_standard_includes, [...]): Use strncmp.
* cppinit.c (init_standard_includes, parse_option): Use strncmp.
	* c-opts.c (find_opt): Similarly.

From-SVN: r57864
2002-10-06 11:21:09 +00:00
Kazu Hirata
da7d830409 ChangeLog: Follow spelling conventions.
* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* alias.c: Likewise.
	* basic-block.h: Likewise.
	* c-aux-info.c: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-decl.c: Likewise.
	* c-format.c: Likewise.
	* c-semantics.c: Likewise.
	* c-typeck.c: Likewise.
	* calls.c: Likewise.
	* cfganal.c: Likewise.
	* cfgloop.c: Likewise.
	* collect2.c: Likewise.
	* combine.c: Likewise.
	* conflict.c: Likewise.
	* cppexp.c: Likewise.
	* cppfiles.c: Likewise.
	* cpphash.h: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* cpplib.c: Likewise.
	* cpplib.h: Likewise.
	* cppmacro.c: Likewise.
	* cse.c: Likewise.

From-SVN: r57398
2002-09-22 02:03:17 +00:00
Kazu Hirata
8d9afc4e2b ABOUT-NLS: Follow spelling conventions.
* ABOUT-NLS: Follow spelling conventions.
	* ChangeLog: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* c-common.c: Likewise.
	* c-lex.c: Likewise.
	* c-objc-common.c: Likewise.
	* cppexp.c: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* doloop.c: Likewise.
	* flow.c: Likewise.
	* function.c: Likewise.
	* integrate.c: Likewise.
	* loop.c: Likewise.
	* reg-stack.c: Likewise.
	* reload.h: Likewise.
	* ssa.c: Likewise.

From-SVN: r57188
2002-09-16 11:42:00 +00:00
Kazu Hirata
4912a07c88 ChangeLog: Follow spelling conventions.
* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* cppfiles.c: Likewise.
	* cppinit.c: Likewise.
	* cpplib.h: Likewise.
	* cse.c: Likewise.
	* debug.h: Likewise.
	* df.c: Likewise.
	* dominance.c: Likewise.
	* hashtable.c: Likewise.
	* hashtable.h: Likewise.
	* loop.c: Likewise.
	* config/arm/README-interworking: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/dsp16xx/dsp16xx.h: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/stormy16/stormy-abi: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/v850/v850.c: Likewise.

From-SVN: r57146
2002-09-14 15:51:45 +00:00
John David Anglin
d873d82743 * cppinit.c (remove_dup_nonsys_dirs): Fix warning and return value.
From-SVN: r56493
2002-08-21 17:07:26 +00:00
John David Anglin
48209ce53a cppinit.c (remove_dup_dir): Add head_ptr argument to handle removal at head.
* cppinit.c (remove_dup_dir): Add head_ptr argument to handle removal
	at head.
	(remove_dup_nonsys_dirs): New function.
	(remove_dup_dirs): Change argument head to head_ptr.  Remove warnings.
	(merge_include_chains): Remove non-system include directories from
	quote and bracket include chains when they duplicate equivalent system
	directories.
	* doc/cpp.texi (-I): Update.
        * doc/cppopts.texi (-I): Update.
        * doc/install.texi (--with-local-prefix): Further document usage of
	this option.
	* doc/invoke.texi (-I): Update.

From-SVN: r56468
2002-08-20 19:56:30 +00:00
Neil Booth
463f1b2b93 re PR preprocessor/7602 (C++ header files found in CPLUS_INCLUDE_PATH treated as C headers)
PR preprocessor/7602
	* cppinit.c (path_include): Treat the system environment
	variables as being cxx_aware.

From-SVN: r56416
2002-08-18 06:26:11 +00:00
Neil Booth
f4ff5a691f c-opts.c (deps_seen, [...]): New.
* c-opts.c (deps_seen, deps_file, deferred_count, deferred_size,
	handle_deferred_opts, sanitize_cpp_opts, defer_opt,
	struct deferred_opt): New.
	(COMMAND_LINE_OPTIONS): Add -M*.
	(missing_arg): Update.
	(c_common_decode_option): Handle -M*.
	(c_common_post_options): Handle -M*.  Use sanitize_cpp_opts;
	don't call cpp_post_options.
	(c_common_finish, check_deps_environment_vars): Update.
	* cppfiles.c (stack_include_file, handle_missing_header): Update.
	* cpphash.h (CPP_PRINT_DEPS): Remove.
	* cppinit.c: Don't include version.h.
	(cpp_create_reader): Don't call deps_init.  Initialize
	warn_long_long.
	(cpp_read_main_file): Init deps if necessary.
	(cpp_destroy): Conditionally free deps.
	(cpp_finish): Update.
	(no_tgt): Remove.
	(COMMAND_LINE_OPTIONS, cpp_handle_option): Remove -M*.
	(cpp_post_options): Rename post_options.
	* cpplib.h (struct cpp_options): Remove some dependency options;
	move others to a new structure.
	(cpp_post_options): Remove.
	(cpp_finish): Comment.
	* fix-header.c (read_scan_file): Don't call cpp_post_options.
treelang:
	* treelang.c: Remove cpp_post_options.

From-SVN: r56239
2002-08-12 22:44:30 +00:00
Neil Booth
460bd0e32d c-common.c (STDC_0_IN_SYSTEM_HEADERS, [...]): Move to c-copts.c.
* c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move
	to c-copts.c.
	(warn_multichar): Die.
	(cb_register_builtins): Export.
	* c-common.h (warn_multichar, preprocess_file): Remove.
	(cb_register_builtins): New.
	* c-lang.c (c_init): Remove.
	(LANG_HOOKS_INIT): Use c_objc_common_init.
	* c-lex.c (init_c_lex): Don't canonicalize filename.
	* c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New.
	(preprocess_file): Make static.  Update for cpplib.
	(c_common_decode_option): Remove warn_multichar.  Use in_fname.
	(c_common_post_options): Set some cpp options here.
	(c_common_init): Move from c-common.c.
	* cppinit.c (cpp_post_options): Don't canonicalize in_fname.
	* cpplib.h (struct cpp_options): Remove in_fname.
	(cpp_preprocess_file): Update.
	* cppmain.c (cpp_preprocess_file): Update for new prototypes.

From-SVN: r56223
2002-08-12 06:02:53 +00:00
Neil Booth
76c3e73e32 c-common.c (c_common_init): Call preprocess_file instead.
* c-common.c (c_common_init): Call preprocess_file instead.
	(c_common_finish): Move to c-opts.c.
	* c-common.h (preprocess_file): new.
	* c-opts.c (out_fname, out_stream, deps_append, preprocess_file,
	check_deps_environment_vars, c_common_finish): New.
	(c_common_decode_option): Update for out_fname and dependencies.
	* cppinit.c (init_dependency_output, output_deps): Remove.
	(cpp_destroy): Update prototype.
	(cpp_add_dependency_target): New.
	(cpp_read_main_file): Don't overlay a buffer.
	(cpp_finish): Take a deps output stream and write deps to it.
	Return the error count.
	(cpp_post_options): Don't canonicalize out_fname, or do anything
	with dependencies.
	* cpplib.h (struct cpp_options): Remove out_fname and
	preprocess_only.
	(cpp_add_dependency_target): New.
	(cpp_destroy, cpp_finish, cpp_preprocess_file): Update.
	* cppmain.c (cpp_preprocess_file): Update prototype.  Don't
	set preprocess_only.  Don't handle the output stream directly.

From-SVN: r56214
2002-08-11 22:22:28 +00:00
Neil Booth
b4a9390491 c-common.h (enum c_language_kind): Emphasize that clk_c is 0.
* c-common.h (enum c_language_kind): Emphasize that clk_c is 0.
	* c-opts.c (parse_option): Rename find_opt.
	(set_std_c99): New function.
	(COMMAND_LINE_OPTIONS): Handle -remap and -o.  Remove OPT_std_bad.
	(missing_arg): Remove OPT_std_bad.  Handle -o.
	(c_common_decode_option): Handle input and output file names,
	-o and -remap.	Clean up -std= handling.
	* cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_o and OPT_remap.
	(cpp_handle_option): Similarly.  Don't handle filenames.

From-SVN: r56197
2002-08-11 07:32:19 +00:00
Neil Booth
f749a36bbe c-opts.c (set_std_cxx98, [...]): New.
* c-opts.c (set_std_cxx98, set_std_c89): New.
	(COMMAND_LINE_OPTIONS): Move more from cppinit.c.
	(c_common_decode_option): Handle new switches from cppinit.c.
	Add -std=gnu++98.
	* cppinit.c (set_lang): Rename cpp_set_lang.  Export.
	(no_arg, no_num): Remove.
	(COMMAND_LINE_OPTIONS): Move more to c-opts.c.  Drop all lang-
	switches apart from -lang-objc and lang-asm.
	(cpp_handle_option): Similarly.
	* cpplib.h (cpp_set_lang): New.
	* doc/cppopts.texi, doc/invoke.texi: Document -std=c++98,
	-std=gnu++98.
	* objc/lang-specs.h: Remove -ansi.
cp:
	* lang-specs.h: Remove -ansi.

From-SVN: r56185
2002-08-10 20:58:45 +00:00
Ziemowit Laski
0f7866e7ba c-common.c (flag_objc): New.
2002-08-09  Ziemowit Laski  <zlaski@apple.com>

        * c-common.c (flag_objc): New.
        * c-common.h (c_language_kind): Get rid of clk_objective_c
        enum value.
        (flag_objc): New extern declaration.
        * c-decl.c (implicitly_declare): Call objc_check_decl
        instead of maybe_objc_check_decl.
        (finish_decl): Likewise.
        (grokfield): Likewise.
        (finish_struct): Likewise.
        * c-lang.c (maybe_objc_check_decl): Rename to objc_check_decl.
        (maybe_objc_comptypes): Rename to objc_comptypes.
        (maybe_building_objc_message_expr): Rename to
        objc_message_selector.
        * c-lex.c (lex_charconst): Remove uses of clk_objective_c,
        replace with flag_objc as needed.
        * c-opts.c (c_common_init_options): Likewise.
        (c_common_decode_option): Likewise.
        * c-parse.in (init_reswords): Likewise.
        * c-tree.h (maybe_objc_check_decl): Rename to objc_check_decl.
        (maybe_objc_comptypes): Rename to objc_comptypes.
        (maybe_building_objc_message_expr): Rename to
        objc_message_selector.
        * c-typeck.c (comptypes): Call objc_comptypes instead of
        maybe_objc_comptypes, and/or objc_message_selector instead of
        (comp_target_types): Likewise.
        (convert_for_assignment): Likewise.
        (warn_for_assignment): Likewise.
        * cppinit.c (init_builtins): Set __OBJC__ manifest constant
        independently of those for other languages.
        * objc/objc-act.c (maybe_objc_comptypes): Delete.
        (maybe_objc_check_decl): Delete.
        (maybe_building_objc_message_expr): Rename to
        objc_message_selector.
        * objc/objc-lang.c (objc_init_options): Use clk_c instead of
        clk_objective_c; set flag_objc flag.

From-SVN: r56173
2002-08-10 02:18:28 +00:00
Neil Booth
4b7091eb62 Makefile.in (c-opts.o): Update
* Makefile.in (c-opts.o): Update
	* c-opts.c: Include intl.h.
	(print_help): Move from cppinit.c.  Remove unused options.
	(COMMAND_LINE_OPTIONS): Move more from cppinit.c.
	(missing_arg): Complain for switches without an argument.
	(c_common_decode_option): Reject missing joined arguments.
	Handle new switches from cppinit.c.
	* cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
	(cpp_handle_option): Similarly.
	(print_help): Moved to c-opts.c.
	* cpplib.h (struct cpp_options): Remove help_only.
	* gcc.c (cpp_unique_options): Remove -$.
	* doc/cppopts.texi: Undocument -h.

From-SVN: r56155
2002-08-09 06:19:08 +00:00
Neil Booth
18bdccaab2 c-opts.c (cpp_opts): New.
* c-opts.c (cpp_opts): New.
	(COMMAND_LINE_OPTIONS): Add switches from cppinit.c.
	(c_common_decode_options): Handle cpplib switches.
	(c_common_init_options): Set cpp_opts.
	* cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
	(cpp_handle_option): Similarly.

From-SVN: r56119
2002-08-08 06:30:13 +00:00
Neil Booth
58551c2335 cppinit.c (struct lang_flags): Rename trigraphs std.
* cppinit.c (struct lang_flags): Rename trigraphs std.
	(set_lang): Update.
	* cpplib.h (struct cpp_options): New member std.
	* cppmacro.c (_cpp_builtin_macro_text): Use std.
	(collect_args): Flag whether to swallow a possible future
	comma pasted with varargs.
	(replace_args): Use this flag.
	* doc/cpp.texi: Update varargs extension documentation.
testsuite:
	* gcc.dg/cpp/vararg3.c, gcc.dg/cpp/vararg4.c: New tests.

From-SVN: r56077
2002-08-06 20:35:46 +00:00
Zack Weinberg
56da7207c1 c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
* c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
	* cppinit.c (cpp_post_options): Likewise.

	* cppexp.c (cpp_classify_number): Suppress -Wtraditional
	warning about 'LL' suffix (but not 'ULL' etc) when
	-Wno-long-long is in effect.

	* cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]:
	Check for failing time()/localtime(), issue a warning, and
	make __TIME__ and __DATE__ expand to fallback strings.

	* doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__
	and __TIME__ when the date and time cannot be determined.

From-SVN: r55969
2002-08-02 04:18:16 +00:00
Neil Booth
78df51fe29 cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_dollar.
* cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_dollar.
	(cpp_handle_option): Don't handle it.
	(print_help): Update.
	* doc/cppopts.texi: Update.

From-SVN: r55925
2002-08-01 06:32:38 +00:00