Commit Graph

235 Commits

Author SHA1 Message Date
Zack Weinberg
40ea76de51 cpperror.c: Remove #ifdef EMACS block.
* cpperror.c: Remove #ifdef EMACS block.
	* cppmain.c: Likewise.
	* cpphash.c: Remove #if 0 blocks.
	* cppinit.c: Remove #if 0 blocks, and the -lint option.
	* cpplib.c: Remove #if 0 blocks and code referencing
	pcp_inside_if or for_lint.  Remove duplicate error message.
	Fix error messages for #else after #else or #elif.  Reformat.
	Remove archaic TODO list.
	* cpplib.h: Remove pcp_inside_if and for_lint flags.

From-SVN: r31817
2000-02-06 07:30:25 +00:00
Kaveh R. Ghazi
c69916605c Makefile.in (c-common.o): Depend on $(EXPR_H).
* Makefile.in (c-common.o): Depend on $(EXPR_H).

	* c-common.c: Include expr.h.

	* c-pragma.c (mark_align_stack): Add prototype.

	* caller-save.c (add_stored_regs): Likewise.

	* combine.c (record_promoted_value): Likewise.

	* i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
	Likewise.

	* cppinit.c (new_pending_define): Likewise.

	* cpplib.c (skip_block_comment, skip_line_comment): Likewise.

	* dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
	AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
	AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
	class_scope_p): Likewise.

	* dwarf2out.h (dwarf2out_set_demangle_name_func,
	dwarf2out_add_library_unit_info): Likewise.

	* ggc.h (ggc_page_print_statistics): Likewise.

	* haifa-sched.c (propagate_deps): Likewise.

	* reg-stack.c (next_flags_user, record_label_references): Likewise.

	* rtl.h (set_stack_check_libfunc): Likewise.

	* toplev.h (set_fatal_function): Likewise.

	* toplev.c (set_fatal_function): Delete prototype.

	* diagnostic.c: Deconstify functions returning malloc'ed ptrs.

From-SVN: r31810
2000-02-06 03:40:46 +00:00
Ulrich Drepper
916269abda Adjust variable names, comments, help strings to c99.
Recognize options with names *99 as well.

From-SVN: r31690
2000-01-29 19:00:43 +00:00
Zack Weinberg
75ec21db30 cppinit.c (cpp_handle_option): Recognize C++ comments under -std=gnu89.
* cppinit.c (cpp_handle_option): Recognize C++ comments under
	-std=gnu89.
	* cpplib.c (skip_block_comment, skip_line_comment): Split code
	out of...
	(skip_comment) ... here.  Permit C++ comments in system
	headers always.  Warn about C++ comments in user code under
	-std=gnu89 -pedantic.
	(copy_comment): Use skip_comment.
	(cpp_skip_hspace, cpp_get_token): skip_comment can no longer
	return EOF.
	(consider_directive_while_skipping, do_else, do_endif): Call
	validate_else unconditionally.
	(validate_else): Check CPP_PEDANTIC here.  Accept non-comment
	text after the conditional in a system header.
	* cpplib.h (struct cpp_buffer): Add flag
	warned_cplusplus_comments.

From-SVN: r31654
2000-01-27 22:29:07 +00:00
Zack Weinberg
9082f8471a cppinit.c: Add " (cpplib)" to end of string printed by -v / --version.
* cppinit.c: Add " (cpplib)" to end of string printed by
	-v / --version.

From-SVN: r31645
2000-01-27 18:37:50 +00:00
Zack Weinberg
40c79d58a3 cpplib.h (struct cpp_options): Change lang_asm to char.
2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>

	* cpplib.h (struct cpp_options): Change lang_asm to char.
	Add lang_fortran.
	* cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
	done in cpp_handle_option now.
	(initialize_builtins): Take out special case code used only by
	__STDC_VERSION__.
	(cpp_handle_option): Turn off trigraphs and trigraph warnings
	if -traditional.  Recognize -lang-fortran and set
	lang_fortran, also turn off cplusplus_comments.
	(print_help): Document -lang-fortran.
	* cpplib.c (handle_directive): Ignore `# 123 "file"' if
	lang_asm. Ignore all directives other than `# 123 "file"' if
	CPP_PREPROCESSED.
	(cpp_get_token): If -traditional, don't recognize directives
	unless the # is in column 1.
	(parse_string): If lang_fortran or lang_asm, silently
	terminate strings ('' or "") at end of line.
	Remove unnecessary braces.

From-SVN: r31342
2000-01-12 00:35:36 +00:00
Mumit Khan
d5b6516da5 cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and IS_DIR_SEPARATOR macros.
2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>

	* cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
	IS_DIR_SEPARATOR macros.
	* collect2.c: Likewise.
	* cppinit.c: Likewise.
	* dwarf2out.c: Likewise.
	* gcc.c: Likewise.
	* gcov.c: Likewise.
	* prefix.c: Likewise.
	* rtl.c: Likewise.
	* toplev.c: Likewise.
	* system.h: And move to here.

From-SVN: r31264
2000-01-07 00:16:51 +00:00
Richard Henderson
e05eb76168 cccp.c (main): Define __STDC_VERSION__ as necessary.
* cccp.c (main): Define __STDC_VERSION__ as necessary.
        * cppinit.c (cpp_handle_option): Likewise.

        * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
        determine when to define.

From-SVN: r31022
1999-12-18 20:43:20 -08:00
Richard Henderson
223dca6a20 cppp.c (main): Set trigraphs and __STRICT_ANSI__ as appropriate for -lang-c89 and -std=*.
* cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
        appropriate for -lang-c89 and -std=*.
        * cppinit.c (cpp_handle_option): Likewise.
        (new_pending_define): New, split out from cpp_handle_option.
        * gcc.c (default_compilers): Don't define __STRICT_ANSI__
        or enable trigraphs for -ansi/-std=*.

        * ginclude/stdarg.h (__va_copy): New.
        (va_copy): Don't define for C89.

From-SVN: r30921
1999-12-14 08:05:23 -08:00
Philippe De Muyter
8d68dd6975 cppinit.c (CAT): The argument list of this macro may not contain spaces !
* cppinit.c (CAT): The argument list of this macro may not contain
        spaces !

From-SVN: r30718
1999-11-30 01:36:13 -07:00
Nick Clifton
bb51178fb1 Fix command line parsing to report unrecognised options.
From-SVN: r30574
1999-11-18 11:01:34 +00:00
Philippe De Muyter
6c9821b783 ansidecl.h: Define and test GCC_VERSION', not HAVE_GCC_VERSION'.
include:
        * ansidecl.h: Define and test `GCC_VERSION', not `HAVE_GCC_VERSION'.

gcc:
        * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.

        * gansidecl.h: Likewise.

        * rtl.c: Likewise.

        * rtl.h: Likewise.

        * toplev.h: Likewise.

        * tree.c: Likewise.

        * tree.h: Likewise.

        * varray.c: Likewise.

        * varray.h: Likewise.

gcc/cp:
        * cp-tree.h: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.

gcc/f:
        * proj.h: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.

Co-Authored-By: Kaveh R. Ghazi <ghazi@caip.rutgers.edu>

From-SVN: r30477
1999-11-10 17:57:21 +00:00
Zack Weinberg
a9ae448346 cpplib.h (struct cpp_buffer: fname, [...]): Mark const.
1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>

	* cpplib.h (struct cpp_buffer: fname, nominal_fname,
	last_nominal_fname): Mark const.
	(struct include_hash: name, nshort, control_macro): Mark
	const.
	(struct macrodef: symnam): Mark const.
	(struct if_stack: fname): Mark const.
	(is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
	(IStable): New character-syntax array which encompasses all
	the old is_foo arrays.
	(is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
	is_space): New macros for interrogating IStable.
	(check_macro_name): Kill last argument.  All callers changed.

	* cppinit.c (initialize_char_syntax): Delete.
	(is_idchar, is_idstart, is_hor_space, is_space,
	trigraph_table): Delete.
	(IStable): New.  Initialize with clever macros to avoid
	information duplication.
	(builtin_array): Table of builtins to get rid of explicit list
	in initialize_builtins.
	(initialize_builtins): Use builtins_array.
	(cpp_start_read): Call init_IStable, and set IStable['$'] if
	opts->dollars_in_ident.

	* cppexp.c: Change all refs to is_xyz[] arrays to use new
	is_xyz() macros.
	(cpp_parse_expr): Avoid 'format string is not constant'
	warning. Use ISGRAPH to identify printable chars.
	* cppfiles.c: Change all refs to is_xyz[] arrays to use new
	is_xyz() macros.
	(read_and_prescan): Map trigraphs to chars with open-coded
	if-else-if-... sequence, not a lookup table.
	* cpphash.c: Change all refs to is_xyz[] arrays to use new
	is_xyz() macros.
	* cpplib.c: Change all refs to is_xyz[] arrays to use new
	is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
	(check_macro_name): Remove ability to report an invalid
	assertion name, which is never used.
	(do_line): Constify a couple of char *'s.
	* cppmain.c (main): Call cpp_cleanup before returning.

From-SVN: r30252
1999-10-29 04:31:14 +00:00
Kaveh R. Ghazi
b30bce6b52 ansidecl.h (HAVE_GCC_VERSION): New macro.
include:
	* ansidecl.h (HAVE_GCC_VERSION): New macro.  Use instead of
	explicitly testing __GNUC__ and __GNUC_MINOR__.

	(ATTRIBUTE_PRINTF): Use `__format__', not `format'.

gcc:
	* cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
	__GNUC__ and __GNUC_MINOR__.

	* gansidecl.h: Likewise.

	* rtl.c: Likewise.

	* rtl.h: Likewise.

	* toplev.h: Likewise.

	* tree.c: Likewise.

	* tree.h: Likewise.

	* varray.c: Likewise.

	* varray.h: Likewise.

cp:
	* cp-tree.h: Use HAVE_GCC_VERSION instead of explicitly testing
	__GNUC__ and __GNUC_MINOR__.

f:
	* proj.h: Use HAVE_GCC_VERSION instead of explicitly testing
	__GNUC__ and __GNUC_MINOR__.  Don't define BUILT_WITH_270.
	Define macro UNUSED in terms of ATTRIBUTE_UNUSED.

From-SVN: r29890
1999-10-10 13:02:41 +00:00
Alexandre Oliva
712fbcfac4 cppinit.c (is_idchar initializer): Loosen tests to accept gcc 2.>6 and >2.
* cppinit.c (is_idchar initializer): Loosen tests to accept
gcc 2.>6 and >2.

From-SVN: r29802
1999-10-04 11:11:16 +00:00
Jeffrey A Law
d93ec8a08c cppinit.c (is_idchar initializer): Tighten tests for when to put the table into initialized memory.
* cppinit.c (is_idchar initializer): Tighten tests for when
        to put the table into initialized memory.

From-SVN: r29794
1999-10-04 00:19:02 -06:00
Dave Brolley
503cb43627 cppinit.c (append_include_chain): Initialize 'next' and 'alloc' fields.
Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>

	* cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
	fields.

From-SVN: r29380
1999-09-13 12:58:44 -04:00
Kaveh R. Ghazi
bcc5cac9a7 cpperror.c (cpp_file_line_for_message): Constify a char*.
* cpperror.c (cpp_file_line_for_message): Constify a char*.

	* cppexp.c (parse_number, parse_charconst, cpp_lex,
	cpp_parse_expr): Add static prototypes.
	(parse_charconst): Don't cast away const-ness.
	(token): Constify a char*.

	* cppfiles.c (file_name_list, include_hash, find_include_file,
	finclude, initialize_input_buffer): Constify a char*.
	(file_cleanup, find_position): Add static prototypes.

	* cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
	collect_expansion): Add static prototypes.
	(cpp_install, create_definition, monthnames): Constify a char*.

	* cpphash.h (cpp_install): Likewise.

	* cppinit.c (known_suffixes, default_include,
	dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
	(base_name, dump_special_to_buffer, initialize_dependency_output):
	Add static prototypes.

	* cpplib.c (my_strerror): Constify a char*.
	(null_underflow, null_cleanup, skip_comment, copy_comment,
	copy_rest_of_line, handle_directive, pass_thru_directive,
	get_directive_token, read_line_number, cpp_print_file_and_line,
	v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
	v_cpp_warning_with_line, detect_if_not_defined,
	consider_directive_while_skipping): Add static prototypes.
	(pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
	cpp_pedwarn_with_file_and_line): Constify a char*.

	* cpplib.h (cpp_options, include_hash, progname, definition,
	cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
	check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
	find_include_file, deps_output, include_hash): Constify a char*.

	* cppmain.c (progname): Constify.
	(main): Add prototype.  Use return, not exit.

	* fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
	recognized_macro, check_macro_names, read_scan_file, write_rbrac,
	inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
	check_protection): Add static prototype.
	(xfree): Remove.
	(progname, recognized_macrom, recognized_extern): Constify a char*.
	(main): Add prototype.

	* gen-protos.c (progname): Constify a char*.

From-SVN: r29171
1999-09-07 15:41:26 +00:00
Kaveh R. Ghazi
ad85216ece c-aux-info.c (concat): Don't define.
* c-aux-info.c (concat): Don't define.

	* cccp.c (my_strerror): Likewise.  All callers changed to use
	xstrerror instead.
	(do_include): Call xstrdup, not xmalloc/strcpy.
	(grow_outbuf): Don't check if xrealloc returns NULL, it can't.
	(xmalloc, xrealloc, xcalloc, xstrdup): Don't define.

	* collect2.c (my_strsignal): Likewise.  All callers changed to use
	strsignal instead.
	(locatelib): Call xstrdup, not xmalloc/strcpy.

	* 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.

	* dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.

	* i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.

	* mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.

	* cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.

	* dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...

	* except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
	malloc/realloc.
	(find_all_handler_type_matches): Likewise.  Don't check return
	value.
	(get_new_handler, init_insn_eh_region, process_nestinfo): Call
	xmalloc, not malloc.
	(init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.

	* gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
	(init_spec): Call xcalloc, not xmalloc/bzero.
	(set_spec): Call xstrdup, not save_string.
	(record_temp_file): Call xstrdup, not xmalloc/strcpy.
	(find_a_file): Call xstrdup, not xmalloc/strcpy.
	(process_command): Call xstrdup, not save_string.
	(main): Call xcalloc, not xmalloc/bzero.

	* gcov.c (xmalloc): Don't define.
	(create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
	(scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
	(output_data): Call xcalloc, not xmalloc/bzero.

	* haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.

	* mips-tdump.c (xmalloc): Don't define.
	(print_symbol): Call xmalloc, not malloc.
	(read_tfile): Call xcalloc, not calloc.

	* mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
	Don't define.  All callers of xfree/my_strsignal changed to use
	free/strsignal instead.
	(allocate_cluster): Call xcalloc, not calloc.

	* objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
	Fix memory leak, free allocated memory.

	* prefix.c (translate_name): Call xstrdup, not save_string.
	(update_path): Likewise.

	* profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.

	* protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
	Don't define.  Callers of xfree/savestring2 changed to use
	free/concat instead.

	* reload1.c (reload): Call xcalloc, not xmalloc/bzero.
	(init_elim_table): Likewise.

	* resource.c (init_resource_info): Likewise.

	* stupid.c (stupid_life_analysis): Likewise.

	* toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
	(open_dump_file): Call concat, not xmalloc/strcpy/...
	(clean_dump_file): Likewise.
	(compile_file): Call xstrdup, not xmalloc/strcpy.

From-SVN: r29148
1999-09-07 02:36:41 +00:00
Zack Weinberg
5d83f44baa cpphash.c (macroexpand): Delete leading whitespace when arg is concatenated before.
Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>

	* cpphash.c (macroexpand): Delete leading whitespace when arg
	is concatenated before.
	(unsafe_chars): Correct test for whether + and - can extend a
	token.

	* cppinit.c (cpp_start_read): Do dependencies for
	-include/-imacros files also.

	* cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
	tokenizing non-directive lines.
	(cpp_expand_to_buffer): Temporarily disable no-output mode.
	* cppmain.c: In no-output mode, just call cpp_scan_buffer for
	the input file.

From-SVN: r28512
1999-08-04 20:39:33 +00:00
Jason Merrill
3773a46b93 gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
* gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
	* toplev.c (documented_lang_options): Add -fpreprocessed.
	* cpplib.h (struct cpp_buffer): Add preprocessed.
	* cppinit.c (cpp_handle_option): Handle -fpreprocessed.
	(cpp_start_read): Don't expand macros or emit an initial #line
	directive if -fpreprocessed.

	* cpplib.h (struct cpp_buffer): Added manual_pop for
	better C++ tokenization.
	* cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
	Also, support C++ tokenization for ->*, .*, <?, and >? operators.
	* c-common.c (cpp_token): Make non-static.

From-SVN: r28190
1999-07-20 15:13:01 -04:00
Zack Weinberg
2c826217f4 cppfiles.c (initialize_input_buffer): New function.
1999-05-10 18:21 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
	* cppfiles.c (initialize_input_buffer): New function.
	(finclude): Call it, if pfile->input_buffer is NULL.  Accept
	any character device as an input file.
	(read_and_prescan): Use pfile->input_buffer and
	pfile->input_speccase.
	* cppinit.c (cpp_cleanup): Free pfile->input_buffer and
	pfile->input_speccase.
	* cpplib.h (cpp_reader): Add input_buffer, input_speccase, and
	input_buffer_len members.  Use memcpy in CPP_PUTS_Q.
	* cppmain.c: Buffer output in the token_buffer; throttle
	number of calls to fwrite; check for errors from fwrite.

From-SVN: r26869
1999-05-10 11:24:36 -04:00
Zack Weinberg
3caee4a8ee cpphash.c (dump_definition): New function.
1999-04-26 19:16 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
	* cpphash.c (dump_definition): New function.
	* cpphash.h: Prototype it.
	* cpplib.c (handle_directive): Don't output anything here.
	Streamline.
	(pass_thru_directive): Take a length, not a pointer to the
	end.  All callers changed.
	(do_define): Handle -dD, -dN, -g3 entirely here.  Streamline.
	(do_include): Handle -dI here.
	(do_ident): Correct to match cccp.
	(do_pragma): Copy the pragma through here.
	(do_assert, do_unassert): Tidy.
	* cppinit.c (cpp_finish): If -dM was specified, walk the macro
	hash table and call dump_definition on all the entries.
	* cppmain.c: cpp_finish may produce output.

From-SVN: r26659
1999-04-26 16:41:02 +00:00
Zack Weinberg
3b6e11237c Back out accidental commit of unrelated patch
From-SVN: r26549
1999-04-19 15:23:57 +00:00
Zack Weinberg
80e9dcb4b2 cpplib.c (output_line_command): Drop CONDITIONAL argument.
1999-04-19 14:51 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
	* cpplib.c (output_line_command): Drop CONDITIONAL argument.
	We can omit unnecessary line commands if file_change ==
	same_file and pfile->lineno != 0.  All callers changed.
	(cpp_get_token [case '\n']): Don't bump pfile->lineno if
	CPP_OPTIONS (pfile)->no_line_commands is set.
	* cpplib.h: Fix prototype of output_line_command.

From-SVN: r26547
1999-04-19 11:55:04 +00:00
Dave Brolley
9e934a98fa cppinit.c (cpp_start_read): Fix buffer overwrite.
Tue Apr 13 12:14:07 1999  Dave Brolley  <brolley@cygnus.com>
	* cppinit.c (cpp_start_read): Fix buffer overwrite.
	* Makefile.in (cppinit.o): Typo in dependencies.

From-SVN: r26401
1999-04-13 05:43:28 -04:00
Mark Elbrecht
509781a4d1 collect2.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM in place of the DIR_SEPARATOR test.
* collect2.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM in place
        of the DIR_SEPARATOR test.
        Consider any file starting with a drivename to be absolute.
        If the absolute filename test fails and EXECUTABLE_SUFFIX is
        defined, append EXECUTABLE_SUFFIX to the file and try again.
        * cppinit.c (base_name): Use HAVE_DOS_BASED_FILE_SYSTEM
        in place of __MSDOS__ and _WIN32.
        * cppfiles.c (simplify_pathname): Likewise.
        * gcc.c (IS_DIR_SEPARATOR): Define new macro. Returns true if a
        character is a directory separator.
        (find_a_file): Use it.
        (convert_filename): Likewise.
        (process_command): Likewise.
        (do_spec_1): Likewise.
        (is_directory): Likewise.
        (main): Likewise.
        * prefix.c (IS_DIR_SEPARATOR): Define. Tests whether a character is
        a directory separator.
        (translate_name): Use it.
        (update_path): Change DIR_SEPARATOR_2 to DIR_SEPARATOR. Fix
        warning in block where '/' is changed to DIR_SEPARATOR.
        * i386/xm-djgpp.h (DIR_SEPARATOR): Set to '/'.
        (DIR_SEPARATOR_2): New macro. Set to '\'.
        (HAVE_DOS_BASED_FILESYS): Define.
        * i386/xm-mingw32.h: Updated copyright. Set
        DIR_SEPARATOR_2 to '/'. Define HAVE_DOS_BASED_FILE_SYSTEM.
        * i386/xm-os2.h: Likewise.
        * winnt/xm-winnt.h: Likewise.
        * i386/xm-dos.h: Likewise.  Add copyright.

From-SVN: r26328
1999-04-09 22:27:16 -06:00
Zack Weinberg
507df93940 cppinit.c (install_predefs): Delete function.
1999-04-06 12:51 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
	* cppinit.c (install_predefs): Delete function.
	(cpp_start_read): Don't call install_predefs.
	(cpp_handle_option): Remove case 'u' and all refs to
	opts->inhibit_predefs.
	(print_help): Don't mention -undef.
	(initialize_builtins): Define __HAVE_BUILTIN_SETJMP__, to
	match cccp.
	* cpplib.h (struct cpp_options): Remove inhibit_predefs
	member.
	* cccp.c (predefs): Delete variable.
	(main): Remove case 'u' in argument parse loop,
	'inhibit_predefs' variable, and the code block that would
	process CPP_PREDEFINES.
	(initialize_builtins): Don't define __OBJC__, the driver will
	do that.
	* gcc.c (default_compilers): Remove -undef from all specs that
	invoke a C preprocessor.
	* ch/lang-specs.h: Likewise.
	* cp/lang-specs.h: Likewise.
	* f/lang-specs.h: Likewise.
	* objc/lang-specs.h: Likewise.

From-SVN: r26212
1999-04-06 09:54:30 +00:00
Zack Weinberg
3fdc651fed cppfiles.c (read_and_prescan): Map backslash-newline to '\r' (which cannot otherwise appear in the processed...
1999-03-16 16:06 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
	* cppfiles.c (read_and_prescan): Map backslash-newline to '\r'
	(which cannot otherwise appear in the processed buffer) and
	move it out of tokens that it appears in the middle of.
	Improve performance.
	(find_position): New function.
	* cpplib.c: \r (one character) indicates backslash
	newline, not \\\n (two characters).  It cannot appear in the
	middle of a token.  Call CPP_BUMP_LINE (pfile) whenever
	parsing moves past \n or \r.  Increment pfile->lineno whenever
	a \n is placed into token_buffer.  Only one mark can exist at
	a time, and CPP_BUMP_LINE must not be used while it is
	active.  It is automatically cleared by cpp_pop_buffer and
	parse_goto_mark.  \r is not in is_hor_space or is_space.
	(NEWLINE_FIX, NEWLINE_FIX1, adjust_position,
	update_position, count_newlines, parse_move_mark): Removed.
	(parse_string, copy_comment): New functions.
	(parse_name): Returns void.
	(parse_set_mark, parse_clear_mark, parse_goto_mark): Take only
	one argument, a cpp_reader *.  Change for new marking scheme.
	(skip_comment): Handle CHILL line comments too.  Second
	argument is now first character of comment marker; all callers
	changed.  Issue error for unterminated block comment here.
	(cpp_skip_hspace): Recognize CHILL comments.
	(copy_rest_of_line): Likewise.  Call skip_comment and
	parse_string directly, don't go through cpp_get_token.  Emit
	"/**/" for block comments if -traditional (create_definition
	needs this).
	(do_define): Don't play with put_out_comments.
	(cpp_push_buffer): Initialize ->mark to -1.
	(cpp_buf_line_and_col): Just read out the values in the buffer
	structure.
	(output_line_command): Use cpp_buf_line_and_col.  Fix
	formatting.  Remove stale code.
	(cpp_get_token): Break out string parsing code to
	parse_string.  Use skip_comment for CHILL comments too.  Use
	copy_comment for put_out_comments instead of dinking with
	marks.  Remove stale code.  Don't call output_line_command
	unless it's necessary.
	* cpplib.h (parse_marker): Removed.
	(struct cpp_buffer): line_base is now a unsigned char *; add
	`mark' [long], remove `marks' [struct parse_marker *].
	(parse_set_mark, parse_clear_mark, parse_goto_mark): Update
	prototypes.
	(CPP_BUMP_LINE, CPP_BUMP_BUFFER_LINE): New macros.
	* cppinit.c (is_hor_space, is_space): '\r' is not considered
	whitespace.
	* cppexp.c (cpp_parse_expression): Use cpp_skip_hspace, not
	SKIP_WHITE_SPACE.
	* cpphash.c (macarg): Disable line commands while expanding.

From-SVN: r25802
1999-03-16 08:10:15 -05:00
Zack Weinberg
0b22d65c9a cppinit.c: Instead of one pending list...
1999-03-15 21:39 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
	* cppinit.c: Instead of one pending list, keep separate lists
	for each category of pending option: -D/-U, -A, -include,
	-imacros.  Move the four partial include-path lists into the
	pending block.  Use head and tail pointers so we don't ever
	have to reverse the lists.
	(cpp_start_read): Break out blocks of code to their own
	functions: install_predefs and initialize_dependency_output.
	Use path_include for C_INCLUDE_PATH and friends as well as
	CPATH.  Remove include_defaults gunk.  Warn about the
	combination of -lang-chill and -trigraphs.  Optimize string
	bashing.  Walk each pending list once, deallocating as we go.
	(append_include_chain): Brought over from cppfiles.c.  Mark
	dirs as system include dirs if and only if appending to
	system include path. If opts->verbose, print a notice when a
	dir is dropped from the include path because it doesn't
	exist.  Fix memory leak: this function is not supposed to copy
	its DIR argument.
	(nreverse_pending, push_pending): Removed.
	(APPEND): New macro for adding to pending lists.
	(path_include): Can now add to any partial include path.
	(base_name): Bring over from cccp.c.
	(cpp_options_init): Allocate the pending block.
	(cpp_handle_option): Add --version.  Exit after --help.  Fix
	formatting.  Order -ifoo options by frequency of usage.
	(install_predefs): New function, simplified version of code
	that was in cpp_start_read.
	(initialize_dependency_output): Likewise.  Understand OBJECT_SUFFIX.
	* cppfiles.c (simplify_pathname): Export.
	(merge_include_chains):  Don't nreverse the lists.  If
	opts->verbose, print a notice when a duplicate dir is detected
	and dropped from the include path.
	(finclude): Fix excessive cleverness in setting
	fp->system_header_p.
	(actual_directory): Set x->sysp from
	CPP_BUFFER (pfile)->system_header_p so that one system header
	may include another with "".
	(deps_output): Fix double adjustment of deps_size which would
	cause all dependencies after the first two lines to be lost.
	* cpplib.c (cpp_unassert): New function.
	* cpplib.h: Lay out struct cpp_pending here.  Adjust
	prototypes.  Add include_prefix_len to struct cpp_options.

From-SVN: r25793
1999-03-15 18:42:46 +00:00
Zack Weinberg
122ae89b14 cpphash.c (install): Rename to cpp_install, add cpp_reader* first argument.
1999-02-25 17:14 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
	* cpphash.c (install): Rename to cpp_install, add cpp_reader*
	first argument.  All callers changed.
	(hashtab): Removed.
	(cpp_lookup, cpp_install): Change all refs to hashtab to
	pfile->hashtab.
	(cpp_hash_cleanup): Removed.
	* cpphash.h: Adjust prototypes.
	* cpplib.h (struct cpp_reader): Add hashtab pointer.
	* cppinit.c (cpp_reader_init): Also allocate space for the
	hashtab.
	(cpp_cleanup): Delete all macros and free the hashtab.

From-SVN: r25441
1999-02-25 14:24:40 +00:00
Kaveh R. Ghazi
16ed229914 * cppinit.c (print_help): Remove unescaped newline in string.
From-SVN: r25315
1999-02-19 12:50:44 +00:00
Zack Weinberg
6de1e2a978 cpplib.c: Kill define of STDC_VALUE.
1999-02-18 18:32 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
	* cpplib.c: Kill define of STDC_VALUE.  Don't include output.h
          or prefix.h. Change CPP_IS_MACRO_BUFFER to not refer to
          macro_cleanup.
	  (GET_ENV_PATH_LIST, PATH_SEPARATOR, STANDARD_INCLUDE_DIR,
          predefs, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
          CPP_WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct
          cpp_pending, version_string, struct default_include,
          include_defaults_array, path_include, cpp_options_init,
          dump_special_to_buffer, initialize_builtins, cpp_start_read,
          cpp_reader_init, nreverse_pending, push_pending, print_help,
          cpp_handle_option, cpp_handle_options, cpp_finish,
          cpp_cleanup): Move to cppinit.c.
	  (macro_cleanup, struct arglist, collect_expansion,
	  create_definition, compare_defs, comp_def_part, ARG_BASE,
	  struct argdata, macarg, change_newlines, timestamp,
	  monthnames, special_symbol, unsafe_chars, macroexpand,
	  push_macro_expansion): Move to cpphash.c.
	  (quote_string, check_macro_name, cpp_expand_to_buffer,
	  output_line_command, cpp_undef): Export.
	  (null_underflow, null_cleanup, handle_directive): Make static.
	* cpplib.h: Prototype now-exported functions.  Adjust decls of
          syntax tables so we can include cpplib.h in cppinit.c.
	* cpphash.h: Prototype all functions exported by cpphash.c.
	* cppinit.c: Make syntax tables initialized data if possible
          (uses GCC designated-initializer extension).
	* cppexp.c:  Make cpp_lex static.
	* Makefile.in: Move -D switches for the various include dirs
          from cpplib.o rule to cppinit.o rule.  Adjust dependencies.

From-SVN: r25287
1999-02-18 15:35:49 +00:00
Kaveh R. Ghazi
bdc1937ed9 cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to U_CHAR* when assigning to one.
* cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to
        U_CHAR* when assigning to one.  Ensure the values of a ?: operator
        have the same type.
        * cppinit.c (initialize_char_syntax): Use K&R function definition.

From-SVN: r25054
1999-02-06 07:38:50 +00:00
Zack Weinberg
5538ada62f cpplib.c (initialize_char_syntax): Move to cppinit.c.
1999-02-04 14:33 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
	* cpplib.c (initialize_char_syntax): Move to cppinit.c.
	(cpp_define): Remove redundant syntax checks.
	(make_assertion): Rename cpp_assert, remove redundant syntax
	checks, export.
	(cpp_options_init): Don't init things to zero twice.
	(cpp_expand_to_buffer): Use memcpy, not a char-by-char loop.
	(do_include): Kill excessively verbose import warning that
	snuck back in in the gcc2 merge.
	(convert_string): Removed.
	(do_line): Rewrite with simple last-name-used cache instead of
	private hashtable.
	(cpp_start_read): Call initialize_char_syntax here, not...
	(cpp_reader_init): ...here.
	(cpp_handle_options): Support the -std switch.
	* cpplib.h (cpp_buffer): Add last_nominal_fname member.
	(cpp_options): Add c9x flag.
	Declare all the is_* tables and trigraph table here, as const.
	Prototype cpp_assert and initialize_char_syntax.
	* cppinit.c: New file.
	* cppfiles.c (read_and_prescan): Optimize.
	* Makefile.in (LIBCPP_OBJS): Add cppinit.o.

From-SVN: r25024
1999-02-04 06:36:54 -05:00