Commit Graph

262 Commits

Author SHA1 Message Date
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
Neil Booth
a69cbaac60 cppexp.c (parse_defined): Mark macro used.
* cppexp.c (parse_defined): Mark macro used.
	* cpphash.h (struct cpp_macro): New member "used".
	(_cpp_mark_macro_used, _cpp_warn_if_unused_macro): New.
	(struct cpp_reader): New member.
	* cppinit.c (cpp_finish_options): Set first_unused_line.
	(cpp_finish): Warn of unused macros if requested.
	(OPT_TABLE): New switches.
	(cpp_handle_option): Handle them.
	* cpplib.c (do_undef): Warn if macro unused.
	(do_ifdef, do_ifndef): Mark macro used.
	* cpplib.h (struct cpp_options): New member.
	* cppmacro.c (_cpp_warn_if_unused_macro): New.
	(enter_macro_context): Mark macro used.
	(_cpp_create_definition): Mark macro unused; warn if unused
	when redefined.
	* cpptrad.c (scan_out_logcial_line, push_replacement_text):
	Mark macros used.
	* doc/cppopts.texi: Update.
testsuite:
	* gcc.dg/cpp/trad/Wunused.c, gcc.dg/cpp/trad/Wunused.h,
	gcc.dg/cpp/Wunused.c, gcc.dg/cpp/Wunused.h: New tests.

From-SVN: r55692
2002-07-23 22:57:49 +00:00
Neil Booth
2f8dd115d2 c-lex.c (GET_ENVIRONMENT): Remove.
* c-lex.c (GET_ENVIRONMENT): Remove.
	* collect2.c (GET_ENV_PATH_LIST): Remove.
	(prefix_from_env): Use GET_ENVIRONMENT.
	* cppinit.c (GET_ENV_PATH_LIST): Remove.
	(init_standard_includes): Use GET_ENVIRONMENT.
	* defaults.h (GET_ENVIRONMENT): Define here if not already.
	* gcc.c (GET_ENV_PATH_LIST): Remove.
	(make_relative_prefix, process_command): Update.
	* protoize.c (GET_ENV_PATH_LIST): Remove.
	(do_processing): Update.
java:
	* jcf-path.c (GET_ENV_PATH_LIST): Remove.
	(jcf_path_init): Use GET_ENVIRONMENT.

From-SVN: r55630
2002-07-21 21:59:03 +00:00
Neil Booth
68e6527569 cppexp.c (struct op): Add token pointer.
* cppexp.c (struct op): Add token pointer.
	(check_promotion, CHECK_PROMOTION): New.
	(optab): Update.
	(_cpp_parse_expr): Update, use token pointer of struct op.
	(reduce): Warn about change of sign owing to promotion.
	* cppinit.c (cpp_handle_option): New warning if -Wall.
	* cpplib.h (struct cpp_options): New member.
testsuite:
	* gcc.dg/cpp/Wsignprom.c: New tests.

From-SVN: r55611
2002-07-20 13:31:56 +00:00
Neil Booth
ba57a9c052 cppinit.c (cpp_handle_option): Suppress warnings with an implicit "-w" for "-M" and "-MM".
* cppinit.c (cpp_handle_option):  Suppress warnings with an
	implicit "-w" for "-M" and "-MM".

From-SVN: r55195
2002-07-02 22:28:18 +00:00
Neil Booth
278c466207 cpphash.h (struct cpp_reader): Make date and time strings.
* cpphash.h (struct cpp_reader): Make date and time strings.
	(_cpp_builtin_macro_text, _cpp_copy_replacement_text,
	_cpp_replacement_text_len): New.
	* cppinit.c (cpp_create_reader): Update.
	(init_builtins): Register appropriate builtins for -traditional-cpp.
	* cppmacro.c (new_number_token): Remove.
	(_cpp_builtin_macro_text): New.
	(builtin_macro): Use it.
	(cpp_macro_definition): Update to handle traditional macros.
	* cppmain.c (cb_line_change): Don't do column positioning for
	traditional output.
	* cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open.  New
	state ls_fun_close.
	(skip_whitespace): Fix.
	(maybe_start_funlike): Don't set state.parsing_args.
	(scan_out_logical_line): Remove duplicate error.  Use lex_state
	rather than state.parsing_args.
	(push_replacement_text): Handle builtins.
	(_cpp_replacement_text_len, _cpp_copy_replacement_text): New.

From-SVN: r54771
2002-06-19 05:40:08 +00:00
Neil Booth
1a76916c78 Makefile.in: Update cppmain.o.
* Makefile.in: Update cppmain.o.
	* cpphash.h (struct cpp_reader): Move some members to a
	nested structure.
	(trad_line): Rename saved_line.
	(_cpp_read_logical_line_trad): Update.
	(_cpp_remove_overlay): New.
	* cppinit.c (cpp_create_reader): No need to set saved_line.
	(cpp_destroy): Update.
	(cpp_read_main_file): Only overlay if compiling.
	* cpplex.c (continue_after_nul): Return false if in directive.
	* cpplib.c (EXPAND): New.
	(directive_table, SEEN_EOL): Update.
	(end_directive): Remove overlay if traditional; don't skip
	line in traditional #define.
	(prepare_directive_trad): New.
	(_cpp_handle_directive, run_directive): Update for traditional
	directives.
	(lex_macro_node): Simplify, don't use lex_identifier_trad.
	* cpplib.h (struct options): Add preprocess_only.
	* cppmain.c: Don't include intl.h.
	(cpp_preprocess_file): Set options->preprocess_only.
	(scan_translation_unit_trad): Fix, and print line numbers.
	* cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
	maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
	save_replacement_text, _cpp_create_trad_definition): Update for
	variable renaming.
	(_cpp_overlay_buffer): Save line number.
	(_cpp_remove_overlay): Rename from restore_buff, restore line.
	(_cpp_read_logical_line_trad): Don't handle overlays here.
	(scan_out_logical_line): Process directives.

From-SVN: r54485
2002-06-11 05:36:17 +00:00
Zack Weinberg
5a9ee62387 Makefile.in (LIBCPP_OBJS): Take out version.o.
* Makefile.in (LIBCPP_OBJS): Take out version.o.
	* cpphash.h (cpp_reader): Take out print_version member.
	* cppinit.c: (cpp_handle_option): Don't do anything with
	-version.  Just set help_only for --version, --target-help.
	Just set verbose option for -v.
	(cpp_post_options): Don't print a version string.

From-SVN: r54390
2002-06-09 00:26:31 +00:00
Zack Weinberg
09e77dee59 cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W options their own entries.
* cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
	options their own entries.
	(parse_option): Clarify comment.
	(cpp_handle_option): Remove 'ignore' parameter and OPT_W
	special case.  Replace if/strcmp chain for -W options with
	use of new OPT_* entries for them.
	(cpp_handle_options): Update to match.
	* cpplib.h: Remove last parameter to cpp_handle_option from prototype.
	* c-decl.c, cp/decl2.c: Update call to cpp_handle_option.

From-SVN: r54352
2002-06-07 22:24:30 +00:00
Neil Booth
cbc69f844e cpphash.h (_cpp_create_definition): Update prototype.
* cpphash.h (_cpp_create_definition): Update prototype.
	(_cpp_push_text_context, _cpp_create_trad_definition): New.
	( cpp_lex_identifier_trad): New.
	(_cpp_set_trad_context): New.
	* cppinit.c (cpp_finish_options): Don't conditionalize builtins.
	* cpplib.c (SEEN_EOL): Update.
	(lex_macro_node): Update for -traditional.
	(cpp_push_buffer, _cpp_pop_buffer): Similarly.
	* cppmacro.c (_cpp_create_definition): Split into
	create_iso_definition() and _cpp_create_trad_definition().
	(warn_of_redefinition): Update prototype; handle traditional
	macros.
	(_cpp_push_text_context): New.
	* cpptrad.c (skip_whitespace, push_replacement_text): New.
	(lex_identifier): Call ht_lookup with correct start.
	(_cpp_lex_identifier_tradm _cpp_create_trad_definition,
	_cpp_set_trad_context): New.
	(scan_out_logical_line): Update to handle changing contexts.

From-SVN: r54293
2002-06-05 20:27:12 +00:00
Neil Booth
ceeedfc11a c-common.c (c_common_init): Override cpplib's default warn_long_long setting.
* c-common.c (c_common_init): Override cpplib's default
	warn_long_long setting.
	* c-lex.c (lex_number): Replace with interpret_integer,
	interpret_float, narrowest_unsigned_type and
	narrowest_signed_type, taking advantage of the new
	cpplib functionality.
	* cpperror.c (_cpp_begin_message): If a warning is turned
	into an error, avoid printing "warning:".
	* cppexp.c (cpp_num_sign_extend): New.
	* cppinit.c: Update comment.
	* cpplib.h (cpp_num_sign_extend): New.
	* tree.h: Update comment.
testsuite:
	* gcc.dg/wtr-int-type-1.c, gcc.dg/wtr-suffix-1.c,
	gcc.dg/cpp/paste4.c, gcc.dg/cpp/sysmac2.c:
	Update for mofified diagnostics.
	* gcc.dg/c99-intconst-1.c: No longer fail.

From-SVN: r54180
2002-06-02 19:37:34 +00:00
Zack Weinberg
39e5db1a7c cppinit.c (append_include_chain): Always pay attention to cxx_aware when setting new->sysp.
* cppinit.c (append_include_chain): Always pay attention to
	cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
	marker on argument.

From-SVN: r54124
2002-05-31 22:57:55 +00:00
Neil Booth
cd7ab83f2d cppexp.c (cpp_num): Move to cpplib.h.
2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
	    Zack Weinberg <zack@codesourcery.com>

	* cppexp.c (cpp_num): Move to cpplib.h.
	(CPP_ERROR): Remove.
	(interpret_float_suffix, interpret_int_suffix): New.
	(struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
	(cpp_classify_number, cpp_interpret_integer): New.
	(interpret_number): Remove.
	(eval_token): Update to use new routines.
	* cpphash.h (cpp_num_part): Move to cpplib.h.
	* cppinit.c (cpp_post_options): Set warn_long_long.
	* cpplib.h (struct cpp_options): Add warn_long_long.
	(cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
	CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
	CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
	CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
	cpp_interpret_integer): New.
testsuite:
	* gcc.dg/cpp/c++98-pedantic.c, gcc.dg/cpp/c89-pedantic.c,
	gcc.dg/cpp/c94-pedantic.c, gcc.dg/cpp/gnuc89-pedantic.c,
	gcc.dg/cpp/if-1.c: Update for modified diagnostics.

Co-Authored-By: Zack Weinberg <zack@codesourcery.com>

From-SVN: r54007
2002-05-29 17:15:42 +00:00
Neil Booth
c9220e3a83 c-common.c (c_common_init): Set CPP arithmetic precision.
* c-common.c (c_common_init): Set CPP arithmetic precision.
	* cppexp.c (cpp_num_part): Move typedef ...
	* cpphash.h: ...here; make unsigned HOST_WIDE_INT.
	* cppinit.c (cpp_create_reader): Default to host long arithmetic.
	(sanity_checks): Update.
testsuite:
	* gcc.dg/cpp/arith-2.c, gcc.dg/cpp/arith-3.c: New tests.
	* gcc.dg/cpp/if-3.c: Remove.

From-SVN: r53911
2002-05-27 05:51:14 +00:00
Neil Booth
17645b154d cppinit.c (mark_named_operators): Split out from init_builtins.
* cppinit.c (mark_named_operators): Split out from init_builtins.
	(cpp_finish_options): Call it from here instead.
testsuite:
	* gcc.dg/cpp/named_ops.c: New test.

From-SVN: r53803
2002-05-23 18:55:27 +00:00
Neil Booth
bdee42b16c cpperror.c (_cpp_begin_message): No special casing of CPP_FATAL_LIMIT.
* cpperror.c (_cpp_begin_message): No special casing
	of CPP_FATAL_LIMIT.
	* cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
	(output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
	* cpplib.c (do_include_common): Use DL_ERROR.
	* cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
	(DL_ICE): Renumber.
	* fix-header.c (read_scan_file): Update.

From-SVN: r53765
2002-05-23 06:07:45 +00:00
Kazu Hirata
df38348381 cpperror.c: Fix formatting.
* cpperror.c: Fix formatting.
	* cppexp.c: Likewise.
	* cppfiles.c: Likewise.
	* cpphash.c: Likewise.
	* cpphash.h: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* cpplib.c: Likewise.
	* cppmacro.c: Likewise.
	* cppmain.c: Likewise.
	* cppspec.c: Likewise.

From-SVN: r53751
2002-05-22 22:02:16 +00:00
Zack Weinberg
2a1dc0d87e c-common.c (c_common_init): Set options->unsigned_char from flag_signed_char.
* c-common.c (c_common_init): Set options->unsigned_char from
	flag_signed_char.
	(cb_register_builtins): Define __STRICT_ANSI__ and
	__CHAR_UNSIGNED__ here...
	* cppinit.c (init_builtins): Not here.
	(cpp_create_reader): unsigned_char option defaults to 0, not
	!DEFAULT_SIGNED_CHAR.
	(COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
	and -funsigned-char.

	* cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
	* cpphash.c (_cpp_init_hashtable): Don't set it.
	* cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
	directly.  Clarify comment.

From-SVN: r53703
2002-05-21 21:55:37 +00:00
Andreas Jaeger
68bd6dd688 * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
From-SVN: r53694
2002-05-21 22:09:00 +02:00
Neil Booth
43612ffb67 cppinit.c (cpp_post_options): If preprocessed, turn off traditional.
* cppinit.c (cpp_post_options): If preprocessed, turn off
	traditional.  If traditional, turn off column numbers.
	* cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
	* cpptrad.c (handle_newline): Update line_base.
	(skip_comment): Handle -Wcomment.

From-SVN: r53582
2002-05-18 08:23:20 +00:00
Zack Weinberg
f24a153ab2 cppinit.c (struct builtin): Remove unused fields.
* cppinit.c (struct builtin): Remove unused fields.
	(CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
	(operator_array): New - was second half of builtin_array.
	(init_builtins): Simplify loop over builtin_array/operator_array.

From-SVN: r53574
2002-05-18 00:43:13 +00:00
Neil Booth
004cb26351 Makefile.in: Update for cpptrad.c.
* Makefile.in: Update for cpptrad.c.
	* cpphash.h (struct cpp_buffer): New members for buffer
	overlays.
	(struct cpp_reader): New members for traditional output.
	(_cpp_read_logical_line, _cpp_overlay_buffer): New.
	* cppinit.c (cpp_create_reader): Set trad_line.
	(cpp_destroy): Free trad_out_base if used.
	(cpp_read_main_file): Overlay an empty buffer if traditional.
	(cpp_finish_options): Don't do builtins.
	(COMMAND_LINE_OPTIONS): Add -traditional-cpp.
	(cpp_handle_option): Handle it.
	* cpplex.c (continue_after_nul): New.
	(_cpp_lex_direct): Use handle_nul.
	* cpplib.h (struct cpp_options): New traditional option.
	* cpptrad.c: New file.

From-SVN: r53568
2002-05-17 20:16:48 +00:00
Neil Booth
bdcae02bc4 c-common.c (c_common_init_options): Use C89 for Objective-C, and set the options flag.
* c-common.c (c_common_init_options): Use C89 for Objective-C,
	and set the options flag.
	* cppinit.c (lang_flags): Remove objc.
	(lang_defaults): Remove OBJC and OBJCXX.
	(set_lang): Update.
	(COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
	(cpp_handle_option): Remove -+ and -lang-objc++.
	For ObjC, just set a flag.
	(print_help): Update.
	* cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.

From-SVN: r53566
2002-05-17 19:37:43 +00:00
Zack Weinberg
5279d7394e c-common.c (STDC_0_IN_SYSTEM_HEADERS, [...]): Default-define here.
* c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
	Default-define here.
	(builtin_define_with_value): Can now wrap the expansion in
	quotation marks if such is wanted.
	(cb_register_builtins): Update calls to	builtin_define_with_value.
	Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
	here.
	(c_common_init): Set options->stdc_0_in_system_headers.
	* c-lex.h: Update prototype of builtin_define_with_value.
	* cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
	and REGISTER_PREFIX.

	* cppinit.c (VERS, ULP, C, X): Kill.
	(builtin_array): Remove entries for __VERSION__,
	__USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
	__HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
	a constant.
	(init_builtins): Kill off a bunch of now-dead code.
	(COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
	-fno-leading-underscore.
	(cpp_handle_option): Remove code to set user_label_prefix.
	(cpp_post_options): Likewise.

	* cpplib.h (struct cpp_options): Remove user_label_prefix.
	(stdc_0_in_system_headers): New.
	* cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
	stdc_0_in_system_headers) too to decide the value of __STDC__.

	* tradcpp.c (user_label_prefix): Kill.
	(main): Remove code handling -f(no-)leading-underscore.
	(initialize_builtins): Don't define __REGISTER_PREFIX__
	or __USER_LABEL_PREFIX__.
	(install_value): Wrap compound statement in dummy loop so the
	macro works properly in an if statement.

From-SVN: r53525
2002-05-16 19:03:02 +00:00
Zack Weinberg
a11eba953e c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
* c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
	(c_common_nodes_and_builtins): Use it.
	(builtin_define_with_value): New function.
	(cb_register_builtins): Define __SIZE_TYPE__,
	__PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
	using builtin_define_with_value.  Use consistent notation when
	defining __GXX_WEAK__.
	(WCHAR_TYPE_SIZE): Don't redefine.
	(combine_strings): Don't use WCHAR_TYPE_SIZE.

	* cppdefault.h: Don't provide defaults for SIZE_TYPE,
	PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
	* cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
	* tradcpp.c (initialize_builtins): Likewise.
	* gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.

	* c-lex.h (builtin_define_with_value): Prototype.
	* system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
	NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
	* doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.

	* config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
	config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
	config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
	config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
	config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
	config/sparc/linux64.h, config/sparc/netbsd-elf.h,
	config/sparc/sol2-bi.h, config/sparc/sparc.h:
	Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
	to __SIZE_TYPE__ etc from all spec strings. When this makes
	extra specs empty, delete them.

From-SVN: r53472
2002-05-15 05:30:01 +00:00
Neil Booth
12a41c224d Makefile.in (c-common.o, cppinit.o): Update.
* Makefile.in (c-common.o, cppinit.o): Update.
	* c-common.c: Include except.h.
	(cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
	Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
	* cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
	* defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
	CPP_PREDEFINES): Handle here.
config:
	* alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
	alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
	alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
	TARGET_OS_CPP_BUILTINS.
	* alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
	(CPP_SPEC, EXTRA_SPECS): Update.
	(CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
	CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
	CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
	CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
	CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
doc:
	* tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
	(TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.

From-SVN: r53410
2002-05-13 05:57:38 +00:00
Neil Booth
44a147ad2e c-common.c (c_common_init): Set options->unsigned_wchar.
* c-common.c (c_common_init): Set options->unsigned_wchar.
	* cppinit.c (cpp_create_reader): Default unsigned_wchar,
	group target dependencies.
	(init_builtins, cpp_handle_option): Update.
	* cpplex.c (cpp_interpret_charconst): Update.
	* cpplib.h (struct cpp_options): Add unsigned_wchar, rename
	signed_char to unsigned_char, group target dependencies.
	* defaults.h (WCHAR_UNSIGNED): Remove.
	* system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
config:
	* freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
	i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
	i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
	i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
	sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
doc:
	* tm.texi: Remove MAX_CHAR_TYPE_SIZE.

From-SVN: r53271
2002-05-07 21:07:24 +00:00
Neil Booth
a5a49440f7 c-common.c (warn_multichar): New.
* c-common.c (warn_multichar): New.
	(c_common_init): Set CPP's warn_multichar.
	* c-common.h (warn_multichar): New.
	* c-decl.c (warn_multichar): Remove.
	* c-lex.c (lex_charconst): Update.
	* c-tree.h (warn_multichar): Remove.
	* cppexp.c (eval_token): Sign-extend charconst value.
	* cppinit.c (cpp_create_reader): Set warn_multichar.
	* cpplex.c (cpp_interpret_charconst): Don't sign-extend
	each character.  Update prototype.  Sign-extend the result.
	* cpplib.h: Fix conditions.
	(struct cpp_options): Add new warning flag.
	(cpp_interpret_charconst): Update prototype.
cp:
	* Make-lang.in (decl2.o): Update.
	* cp-tree.h (warn_multichar): Remove.
	* decl2.c: Include c-common.h.
	(warn_multichar): Remove.
doc:
	* cpp.texi: Update documentation.
testsuite:
	* gcc.dg/cpp/charconst-3.c: Correct tests accordingly.

From-SVN: r53240
2002-05-06 22:53:10 +00:00
Neil Booth
2443d4e110 c-common.c (c_common_init): Set up CPP arithmetic.
* c-common.c (c_common_init): Set up CPP arithmetic.
	* cppinit.c (cpp_create_reader): Default CPP arithmetic to
	something reasonable for the host.
	(sanity_checks): Add checks.
	(cpp_read_main_file): Call sanity_checks() from here...
	(cpp_post_options): ... not here.
	* cpplex.c (cpp_interpret_charconst): Get max_chars right.
	* cpplib.h (struct cpp_options): New member int_precision.
testsuite:
	* gcc.dg/cpp/charconst.c: Update tests.

From-SVN: r53186
2002-05-05 17:05:09 +00:00
Neil Booth
3d90d2908e Makefile.in (c-lex.o): Update.
* Makefile.in (c-lex.o): Update.
	* c-lex.c: Include target.h.
	(cb_register_builtins): New.
	(init_c_lex): Set builtins callback.
	* c-lex.h (cpp_define, cpp_assert): New prototypes.
	* cppinit.c (init_builtins): Use callback, including for
	GXX_WEAK.
	* cpplib.h (struct cpp_callbacks): New member.
	* target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
	(TARGET_INITIALIZER): Update.
	* target.h (struct gcc_target): New hook.
	* tree.c (default_register_cpp_builtins): New.
	* tree.h (default_register_cpp_builtins): New.
doc:
	* tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.

From-SVN: r53165
2002-05-04 20:15:00 +00:00
Neil Booth
625458d0b9 cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
* cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
	(cpp_post_options): Move sanity checks to...
	(sanity_checks): New.
	* cpplex.c (maybe_read_ucs): Fix prototype.
	(parse_string, cpp_parse_escape): Cast for %c format specifier.
	* cpplib.h (cppchar_t): Use unsigned long or unsigned long long
	if necessary.

From-SVN: r53163
2002-05-04 19:42:01 +00:00
Neil Booth
4268e8bb94 c-lex.c (lex_string): Let cpp_parse_escape handles truncation and sign-extension.
* c-lex.c (lex_string): Let cpp_parse_escape handles truncation
	and sign-extension.
	(lex_charconst): Update for change in prototype of
	cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
	appropriately.
	* cpphash.h (BITS_PER_CPPCHAR_T): New.
	* cppinit.c (cpp_create_reader): Initialize them for no
	change in semantics.
	(cpp_post_options): Add sanity checks.
	* cpplex.c (cpp_parse_escape): Handle precision, sign-extension
	and truncation issues.  Calculate in type cppchar_t.
	(MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
	(cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
	run-time dependent precision correctly.  Return whether the
	result is signed or not.
	* cpplib.c (dequote_string): Use cppchar_t; update.
	* cpplib.h (cppchar_signed_t): New.
	struct cpp_options): New precision members.
	(cpp_interpret_charconst, cpp_parse_escape): Update prototypes.

From-SVN: r53152
2002-05-04 07:30:32 +00:00
Jakub Jelinek
1651cc96a4 cppinit.c (cpp_handle_option): Don't set no_output here...
* cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
	(cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
	-M -or -MM is in effect.

From-SVN: r53013
2002-05-01 22:07:36 +02:00
Neil Booth
87ed109f1f cppexp.c (lex): Update to use state.skip_eval.
* cppexp.c (lex): Update to use state.skip_eval.
	(struct op): Remove prio and flags members.
	(FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
	SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
	(LEFT_ASSOC): New macro.
	(optab): New table of operator priorities and flags.
	(SHIFT): Update.
	(_cpp_parse_expr): Clean up logic.  Return bool.  Use a
	malloc-ed parser stack.
	(reduce): New; reduce the operator stack.
	(_cpp_expand_op_stack): Expand the operator stack as necessary.
	* cpphash.h (struct op): Predeclare.
	(struct cpp_reader): New members op_stack, op_limit.
	(struct lexer_state): New member skip_eval.
	(_cpp_parse_expr): Update.
	(_cpp_expand_op_stack): New.
	* cpplib.c (do_if): Update.
	* cppinit.c (cpp_create_reader): Create op stack.
	(cpp_destroy): And destroy it.
	* cpplib.h (CPP_LAST_CPP_OP): Correct.
	(TTYPE_TABLE): Correct.
testsuite:
	* gcc.dg/cpp/if-mop.c: Update.
	* gcc.dg/cpp/if-mpar.c: Add test.
	* gcc.dg/cpp/if-oppr.c: Update.

From-SVN: r52853
2002-04-28 19:42:54 +00:00
Neil Booth
af0d16cdec cppfiles.c (_cpp_pop_file_buffer): Return void.
* cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
	file change and include code to _cpp_pop_buffer.
	* cpphash.h (struct pending_option): Predeclare.
	(struct cpp_reader): New member next_include_file.
	(_cpp_pop_file_buffer): Update.
	(_cpp_push_next_buffer): Update, rename.
	* cppinit.c (cpp_destroy): Free include chain and pending here.
	(cpp_finish_options): Simplify.
	(_cpp_push_next_buffer): Rename and clean up.
	* cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
	Clarify.
	* cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.

From-SVN: r52621
2002-04-22 17:48:02 +00:00