Commit Graph

34 Commits

Author SHA1 Message Date
Tom Tromey
5ffeb913b1 tree-cfg.c (remove_bb): Only warn if line is non-zero.
gcc:
	* tree-cfg.c (remove_bb): Only warn if line is non-zero.
	* c-pch.c (c_common_read_pch): Restore current location after
	reading PCH file.
	* tree.c (expand_location): Update.
	(expr_filename): Changed return type.  Unified the two cases.
	(expr_lineno): Likewise.
	(annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
	as lvalues.
	* toplev.c (line_table): Changed type.
	(general_init): Update.
	(realloc_for_line_map): New function.
	(general_init): Allocate line_table using GC.
	* fix-header.c (line_table): Changed type.
	(read_scan_file): Update.
	(read_scan_file): Update.
	* c-ppoutput.c (maybe_print_line): Update.
	(print_line): Update.
	(cb_line_change): Update.
	(cb_define): Update.
	(pp_file_change): Update.
	* c-opts.c (c_common_init_options): Update.
	(finish_options): Update.
	(push_command_line_include): Update.
	* c-lex.c (cb_line_change): Update.
	(cb_def_pragma): Update.
	(cb_define): Update.
	(cb_undef): Update.
	(c_lex_with_flags): Use cpp_get_token_with_location.
	* input.h (line_table): Changed type.
	(location_from_locus): New macro.
	* tree.h (EXPR_FILENAME): No longer an lvalue.
	(EXPR_LINENO): Likewise.
	(expr_locus, set_expr_locus): Declare separately for
	USE_MAPPED_LOCATION.
	(expr_filename, expr_lineno): Changed return type.
	* gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
	* cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
	(expand_gimple_basic_block): Likewise.
	* final.c (final_scan_insn): Use expanded_location.
gcc/cp:
	* decl.c (finish_function): Put return's location on line zero of
	file.
gcc/fortran:
	* scanner.c (get_file): Update.
	(load_file): Update.
	(gfc_next_char_literal): Use gfc_linebuf_linenum.
	* f95-lang.c (gfc_init): Update.
	* gfortran.h (gfc_linebuf_linenum): New macro.
gcc/java:
	* lang.c (java_post_options): Update.
	* jcf-parse.c (set_source_filename): Update.
	(give_name_to_class): Update.
	(jcf_parse): Update.
	(duplicate_class_warning): Update.
	(parse_class_file): Update.
	(java_parse_file): Update.
	* expr.c (expand_byte_code): Update.
gcc/testsuite:
	* lib/g++.exp (g++_target_compile): Use -fno-show-column.
gcc/treelang:
	* tree1.c (treelang_init): Update.
	(treelang_parse_file): Update.
	(treelang_parse_file): Update.
	(treelang_parse_file): Update.
	* lex.l: Update.
	(update_lineno_charno): Likewise.
libcpp:
	* internal.h (struct cpp_reader) <invocation_location>: New
	field.
	(struct cpp_reader) <set_invocation_location>: Likewise.
	* init.c (cpp_set_line_map): New function.
	* line-map.c (linemap_add): Use linemap's allocator.
	* include/line-map.h (GTY): Define.
	(line_map_realloc): New typedef.
	(struct line_map): Mark with GTY.
	(struct line_maps): Likewise.
	(struct line_maps) <maps>: Likewise.
	(struct line_maps) <reallocator>: New field.
	* include/symtab.h (GTY): Conditionally define.
	* include/cpplib.h (cpp_set_line_map): Declare.
	(cpp_get_token_with_location): Declare.
	* macro.c (cpp_get_token): Set invocation_location on the reader.
	(cpp_get_token_with_location): New function.

From-SVN: r128190
2007-09-06 16:24:05 +00:00
Ollie Wild
ccfc4c91bb directives-only.c: New file.
libcpp/
	* directives-only.c: New file.
	* internal.h (struct _cpp_dir_only_callbacks): New.
	(_cpp_preprocess_dir_only): New function.
	* directives.c (_cpp_handle_directive): Check directives_only before
	disabling execution of indented directives.
	* files.c (_cpp_stack_file): Add directives_only check.
	* include/cpplib.h (struct cpp_options): Add directives_only.
	(cpp_init_special_builtins): New function.
	* init.c (cpp_init_special_builtins): New function.
	(cpp_init_builtins): Move builtin_array initialization to
	cpp_init_special_builtins.
	(post_options): Check directives_only before setting
	pfile->state.prevent_expansion = 1.
	* macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
	is expanded inside a directive while -fdirectives-only is enabled.
	* Makefile.in (libcpp_a_OBJS): Add directives-only.o.
	(libcpp_a_SOURCES): Add directives-only.c.

	gcc/
	* c-ppoutput.c (print_lines_directives_only): New function.
	(scan_translation_unit_directives_only): New function.
	(preprocess_file): Add call to scan_translation_unit_directives_only.
	* c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
	(sanitize_cpp_opts): Add default flag_dump_macros setting for
	-fdirectives-only.  Add errors for -fdirectives-only conflict with
	-Wunused-macros and -traditional.
	(finish_options): Add builtin macro initialization for
	-fdirectives-only + -fpreprocessed.
	* c.opt (fdirectives-only): New.
	* doc/cppopts.texi (fdirectives-only): New.

	gcc/testsuite/
	* gcc.dg/cpp/counter-2.c: New test.
	* gcc.dg/cpp/counter-3.c: New test.
	* gcc.dg/cpp/dir-only-1.c: New test.
	* gcc.dg/cpp/dir-only-1.h: New file.
	* gcc.dg/cpp/dir-only-2.c: New test.
	* gcc.dg/cpp/dir-only-3.c: New test.
	* gcc.dg/cpp/dir-only-3a.h: New file.
	* gcc.dg/cpp/dir-only-3b.h: New file.
	* gcc.dg/cpp/dir-only-4.c: New test.
	* gcc.dg/cpp/dir-only-5.c: New test.
	* gcc.dg/cpp/dir-only-6.c: New test.

From-SVN: r127066
2007-07-30 18:29:20 +00:00
Nick Clifton
9dcd6f09a3 Change copyright header to refer to version 3 of the GNU General Public License and to point readers at the COPYING3 file and the FSF's license web page.
From-SVN: r126948
2007-07-26 08:37:01 +00:00
Kaveh R. Ghazi
5f754896d3 c-lex.c (c_lex_with_flags, lex_string): Constify.
* c-lex.c (c_lex_with_flags, lex_string): Constify.
	* c-ppoutput.c (print_line, pp_dir_change): Likewise.
	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
	* cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
	* cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
	* ddg.c (compare_sccs): Likewise.
	* df-scan.c (df_ref_compare, df_mw_compare): Likewise.
	* dfp.c (decimal_real_from_string, decimal_to_decnumber,
	decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
	decimal_do_fix_trunc, decimal_real_to_integer,
	decimal_real_to_integer2, decimal_real_maxval): Likewise.
	* dse.c (const_group_info_t): New.
	(invariant_group_base_eq, invariant_group_base_hash): Constify.
	* dwarf2out.c (const_dw_die_ref): New.
	(decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
	* tree-browser.c (TB_parent_eq): Likewise.
	* unwind-dw2-fde.c (__register_frame_info_bases,
	__deregister_frame_info_bases, fde_unencoded_compare, fde_split,
	add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
	Likewise.
	* unwind-dw2-fde.h (get_cie, next_fde): Likewise.
	* unwind-dw2.c (uw_frame_state_for): Likewise.
	* value-prof.c (histogram_hash, histogram_eq): Likewise.
	* value-prof.h (const_histogram_value): New.

From-SVN: r126920
2007-07-25 18:14:57 +00:00
Per Bothner
112598f405 Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
* c-opts.c (finish_options): Use internal line 0 for <command-line>.
	* c-ppoutput.c (cb_define): Don't increment line 0.

From-SVN: r114311
2006-06-01 09:36:25 -07:00
Mike Stump
c22cacf346 Whitespace fixups
From-SVN: r113893
2006-05-18 22:16:23 +00:00
Gabriel Dos Reis
cceb18855e tree-inline.c (copy_body_r): Use explicit cast when converting from void *.
* tree-inline.c (copy_body_r): Use explicit cast when
          converting
        from void *.
        (copy_bb): Likewise.
        (copy_edges_for_bb): Likewise.
        (remap_decl_1): Likewise.
        (estimate_num_insns_1): Likewise.
        * cgraph.c (hash_node): Use explicit cast when converting from
        void *.
        (eq_node): Likewise.
        (cgraph_create_node): Use GGC_CNEW.
        (cgraph_create_edge): Use GGC_NEW.
        (cgraph_remove_node): Use explicit cast when converting from
          void *.
        (hash_varpool_node): Likewise.
        (eq_varpool_node): Likewise.
        (cgraph_varpool_node): Use GGC_CNEW.
        * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
        * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
        (eq_scev_info): Use explicit cast when converting from void *.
        (find_var_scev_info): Likewise.
        (set_instantiated_value): Likewise.
        (gather_stats_on_scev_database_1): Likewise.
        * cfgloop.h (simple_loop_desc): Use explicit cast when
          converting
        from void *.
        * c-pch.c (c_common_write_pch): Use XNEWVEC.
        (c_common_read_pch): Likewise.
        * prefix.c (save_string): Use XNEWVEC.
        (translate_name): Use explicit cast when converting from void
          *.
        * c-ppoutput.c (print_line): Use explicit cast when converting
        from void *.
        (pp_dir_change): Likewise.
        * c-cppbuiltin.c (builtin_define_std): Likewise.
        (builtin_define_with_value): Likewise.
        (builtin_define_with_value_n): Likewise.
        (builtin_define_with_int_value): Likewise.
        (builtin_define_type_max): Likewise.
        * c-incpath.c (add_env_var_paths): Use XNEWVEC.
        (add_path): Use XNEW.
        * c-format.c (check_format_info_main): Use GGC_NEW.
        (format_type_warning): Use explicit cast when converting from
          void *.
        * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
        xmalloc. 
        (start_init): Likewise.
        * tree-flow-inline.h (first_referenced_var): Use explicit cast
        when converting from void *.
        (next_referenced_var): Likewise.
        * c-pragma.c (push_alignment): Use GGC_NEW instead of
          ggc_alloc.
        * gensupport.c (lookup_predicate): Use explicit cast to
          convert
        from void *.
        (init_predicate_table): Use XCNEW instead of xcalloc.
        * genpreds.c (process_define_predicate): Likewise.

From-SVN: r108723
2005-12-17 20:45:46 +00:00
Per Bothner
d2c979efb7 re PR preprocessor/21250 (line number 0 for <built-in> causes GAS to complain)
PR preprocessor/21250
	* c-ppoutput.c (print_line): Print internal line 0 as 1.

From-SVN: r105408
2005-10-14 07:56:45 -07:00
Ian Lance Taylor
cbc43ae091 re PR preprocessor/13726 (cpp -C -dI loses comments on same line as #include directives)
libcpp/
	PR preprocessor/13726
	* directives.c (check_eol_return_comments): New static function.
	(parse_include): Add buf parameter.  Change all callers.
	(do_include_common): If not discard comments, turn on
	save_comments.  Pass collected comments to include callback.
	* include/cpplib.h (struct cpp_callbacks): Add new parameter to
	include callback: cpp_token list.
gcc/
	PR preprocessor/13726
	* c-ppoutput.c (cb_include): Add comments parameter, and print out
	any comments passed in.
gcc/testsuite/
	PR preprocessor/13726
	* gcc.dg/cpp/cmdlne-dI-C.c: New test.
	* gcc.dg/cpp/cmdlne-dI-C.h: New file.

From-SVN: r104951
2005-10-04 18:06:19 +00:00
Kelley Cook
366ccddb2b Update FSF address.
From-SVN: r101317
2005-06-25 02:02:01 +00:00
Nathanael Nerode
f9c656237c re PR preprocessor/17651 (Erroneous preprocessor output with -g when generating dependencies)
2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR preprocessor/17651
	* c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
	flag_no_line_commands.
	* c-ppoutput.c (pp_file_change): Remove now-redundant check of
	flag_no_output.

From-SVN: r91436
2004-11-28 23:29:41 +00:00
Andrew Pinski
147887759d re PR c/16999 (#ident stopped working)
2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c/16999
        * c-ppoutput.c (cb_ident): Don't quote string as it is already
        quoted.

	* gcc.dg/cpp/ident-1.c: New test.

From-SVN: r88773
2004-10-08 11:37:07 -07:00
Joseph Myers
3f75a25471 c-aux-info.c, [...]: Follow code formatting conventions.
* c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
	c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
	c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
	code formatting conventions.

From-SVN: r88462
2004-10-03 21:53:05 +01:00
Per Bothner
a281759fdf Conditionally compile support for --enable-mapped_location.
* tree-mudflap.c (mf_file_function_line_tree):  Take a location_t
	rather than a pointer to one.  Use expand_location.
	(mf_varname_tree):  Use expand_location.
	* tree-dump.c:  Use expand_location on DECL_SOURCE_LOCATION.
	* coverage.c:  Likewise.
	* print-tree.c:  Likewise.
	* c-aux-info.c (gen_aux_info_record):  Likewise.
	* c-parse.in:  Use SET_EXPR_LOCATION macro.
	* gimple-low.c:  Likewise.
	* tree-mudflap.c:  Likewise.
	* gimplify.c:  Likewise.  Also use EXPR_LOCATION and EXPR_HAS_LOCATION.
	* c-ppoutput.c:  Use new source_location typedef instead of fileline.
	* c-semantics.c:  Use new macros.
	* c-typeck.c:  Likewise.

From-SVN: r83920
2004-06-30 11:11:14 -07:00
Geoffrey Keating
c0d578e68f c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
2004-06-21  Geoffrey Keating  <geoffk@apple.com>

	* c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
	* c-common.h (flag_pch_preprocess): Declare.
	(c_common_pch_pragma): Likewise.
	* c-common.c (flag_pch_preprocess): New.
	* c-pch.c (c_common_read_pch): Support -fpreprocess-only.
	(c_common_pch_pragma): New.
	* c-ppoutput.c (cb_read_pch): New.
	(init_pp_output): Support -fpch-preprocess.
	* c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
	* c.opt (fpch-preprocess): New.
	* gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
	* doc/cppopts.texi: Document -fpch-preprocess.
	* doc/invoke.texi (Precompiled Headers): Mention that
	-fpreprocessed is safe for PCH.  Mention that if an option is
	listed as safe that doesn't mean it does what you expect.

Index: gcc/testsuite/ChangeLog
2004-06-21  Geoffrey Keating  <geoffk@apple.com>

	* gcc.dg/pch/save-temps-1.c: New file.
	* gcc.dg/pch/save-temps-1.hs: New file.

Index: libcpp/ChangeLog
2004-06-21  Geoffrey Keating  <geoffk@apple.com>

	* files.c (should_stack_file): Correct swapped parameters to call
	to cb.read_pch.
	* pch.c (cpp_valid_state): Handle -fpreprocessed.

From-SVN: r83478
2004-06-22 06:51:56 +00:00
Paolo Bonzini
4f4e53dd85 Makefile.def (host_modules): add libcpp.
ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (host_modules): add libcpp.
	* Makefile.tpl: Add dependencies on and for libcpp.
	* Makefile.in: Regenerate.
	* configure.in: Add libcpp host module.
	* configure: Regenerate.

config/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* acx.m4 (ACX_HEADER_STDBOOL, ACX_HEADER_STRING):
	From gcc.

gcc/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	Move libcpp to the toplevel.
	* Makefile.in: Remove references to libcpp files,
	use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
	and change hashtable.h to that.
	* aclocal.m4 (gcc_AC_HEADER_STDBOOL,
	gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
	* configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
	* configure: Regenerate.
	* config.in: Regenerate.
	* c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
	* cppcharset.c: Removed.
	* cpperror.c: Removed.
	* cppexp.c: Removed.
	* cppfiles.c: Removed.
	* cpphash.c: Removed.
	* cpphash.h: Removed.
	* cppinit.c: Removed.
	* cpplex.c: Removed.
	* cpplib.c: Removed.
	* cpplib.h: Removed.
	* cppmacro.c: Removed.
	* cpppch.c: Removed.
	* cpptrad.c: Removed.
	* cppucnid.h: Removed.
	* cppucnid.pl: Removed.
	* cppucnid.tab: Removed.
	* hashtable.c: Removed.
	* hashtable.h: Removed.
	* line-map.c: Removed.
	* line-map.h: Removed.
	* mkdeps.c: Removed.
	* mkdeps.h: Removed.
	* stringpool.h: Include symtab.h instead of hashtable.h.
	* tree.h: Include symtab.h instead of hashtable.h.
	* system.h (O_NONBLOCK, O_NOCTTY): Do not define.

gcc/cp/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* Make-lang.in: No need to specify $(LIBCPP).

gcc/java/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.

libcpp/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	Moved libcpp from the gcc subdirectory to the toplevel.
	* Makefile.am: New file.
	* Makefile.in: Regenerate.
	* configure.ac: New file.
	* configure: Regenerate.
	* config.in: Regenerate.
	* charset.c: Moved from gcc/cppcharset.c.  Add note about
	brokenness of input charset detection.  Adjust for change
	in name of cppucnid.h.
	* errors.c: Moved from gcc/cpperror.c.  Do not include intl.h.
	* expr.c: Moved from gcc/cppexp.c.
	* files.c: Moved from gcc/cppfiles.c.  Do not include intl.h.
	Remove #define of O_BINARY, it is in system.h.
	* identifiers.c: Moved from gcc/cpphash.c.
	* internal.h: Moved from gcc/cpphash.h.  Change header
	guard name.  All other files adjusted to match name change.
	* init.c: Moved from gcc/cppinit.c.
	(init_library) [ENABLE_NLS]: Call bindtextdomain.
	* lex.c: Moved from gcc/cpplex.c.
	* directives.c: Moved from gcc/cpplib.c.
	* macro.c: Moved from gcc/cppmacro.c.
	* pch.c: Moved from gcc/cpppch.c.  Do not include intl.h.
	* traditional.c: Moved from gcc/cpptrad.c.
	* ucnid.h: Moved from gcc/cppucnid.h.  Change header
	guard name.
	* ucnid.pl: Moved from gcc/cppucnid.pl.
	* ucnid.tab: Moved from gcc/cppucnid.tab.  Change header
	guard name.
	* symtab.c: Moved from gcc/hashtable.c.
	* line-map.c: Moved from gcc.  Do not include intl.h.
	* mkdeps.c: Moved from gcc.
	* system.h: New file.

libcpp/include/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* cpplib.h: Moved from gcc.  Change header guard name.
	* line-map.h: Moved from gcc.  Change header guard name.
	* mkdeps.h: Moved from gcc.  Change header guard name.
	* symtab.h: Moved from gcc/hashtable.h.  Change header
	guard name.

libcpp/po/ChangeLog:

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	* be.po: Extracted from gcc/po/be.po.
	* ca.po: Extracted from gcc/po/ca.po.
	* da.po: Extracted from gcc/po/da.po.
	* de.po: Extracted from gcc/po/de.po.
	* el.po: Extracted from gcc/po/el.po.
	* es.po: Extracted from gcc/po/es.po.
	* fr.po: Extracted from gcc/po/fr.po.
	* ja.po: Extracted from gcc/po/ja.po.
	* nl.po: Extracted from gcc/po/nl.po.
	* sv.po: Extracted from gcc/po/sv.po.
	* tr.po: Extracted from gcc/po/tr.po.

From-SVN: r82199
2004-05-24 10:50:45 +00:00
Kazu Hirata
a110561799 c-decl.c, [...]: Fix comment typos and formatting.
* c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
	expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
	params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
	comment typos and formatting.  Follow spelling conventions.

From-SVN: r78555
2004-02-27 07:09:43 +00:00
Per Bothner
22234f56d2 re PR preprocessor/14103 (ICEs on "gcc -E -imacros foo.h baz.c")
* cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
	partly reverts my 2003-10-01 change, because we're back to logically
	including <command line> inside the main line.
	* cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
	* cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
	Fixes PR preprocessor/14103.

	* cppfiles.c (_cpp_stack_include):  When appropriate decrement
	line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
	(cpp_push_include):  Don't need to increment pfile's line field.
	* line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.

	* c-ppoutput.c (print struct):  New first_time field.
	(init_pp_output):  Set print.first_time.
	(pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
	which is set also for (say) <command line>.  Clear print.first_time.

	* cppfiles.c (struct _cpp_file):  Comment and type for pch field
	does not match the code, so fix both.
	(should_stack_file):  Inline include_pch_p function.
	(include_pch_p):  Remove pointless function.

	* cpphash.h (struct cpp_buffer):  Remove unused search_cached field.

From-SVN: r78049
2004-02-18 14:02:39 -08:00
Kazu Hirata
9ac9746067 c-decl.c, [...]: Fix comment formatting.
* c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
	line-map.c, line-map.h, var-tracking.c: Fix comment
	formatting.

From-SVN: r77888
2004-02-16 14:20:10 +00:00
Per Bothner
12f9df4ec5 Represent column numbers using line-map's source_location.
The "next available source_location" is now managed internally by
	line-maps.c rather than by clients.
	* line-map.h (struct line_map):  New field column_bits.
	<from_line>:  Rename field to start_location.
	(struct line_maps):  New fields highest_location and max_column_hint.
	(linemap_check_files_exited):  New declaration.
	(linemap_line_start):  New declaration.
	(linemap_add):  Remove from_line parameter; use highest_location field.
	(SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
	(SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
	(CURRENT_LINE_MAP):  Remove macro.
	(linemap_position_for_column):  New inline function.
	* line-map.c (linemap_init):  Clear new fields.
	(linemap_check_files_exited):  New function, extracted from ...
	(linemap_free):  Use linemap_check_files_exited.
	(linemap_add):  Remove from_line parameter.  Various updates.
	(linemap_line_start):  New function.
	(linemap_lookeup):  Update for new field names.
	* cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
	linemap_position_for_column may unpredictably change the current map,
	it is cleaner and simpler for us to not cache it in cpp_reader.
	(struct cpp_buffer):  New sysp field.
	Changed warned_cplusplus_comments and from_stage3 to bitfields.
	* cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
	* cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
	current map using linemap_lookup.
	(do_linemarker):  Also set buffer's sysp field.
	(destringize_and_run):  No longer need to decrement current line.
	* cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
	(search_path_head, open_file_failed):  Use buffer's sysp.
	(cpp_make_system_header):  Get current map using linemap_lookup.
	Also set buffer's sysp flag.
	* cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
	* cpphash.h (CPP_INCREMENT_LINE):  New macro.
	(struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
	(struct cpp_reader):  ... and adding saved_line_base field.
	* cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
	Update accordingly.  Don't adjust line.
	(_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
	* cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
	(cpp_in_system_header):  ... new inline function, using buffer's sysp.
	* cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
	* cpplex.c (_cpp_lex_direct):  Likewise.
	* cppmacro.c (_cpp_builtin_macro_text):  Likewise.
	* cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
	* cpplib.h (struct cpp_token):  Rename line field to src_loc.
	Remove col field as it is now subsumed by src_loc.
	* cpperror.c:  Update various field, parameter, and macro names.
	(print_location):  If col==0, try SOURCE_COLUMN of line.
	(cpp_error):  Use cur_token's src_loc field, rather than line+col.
	* cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
	* cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
	_cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
	(_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
	(_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
	(_cpp_lex_direct):  Use linemap_position_for_column.
	* c-ppoutput.c (maybe_print_line, print_line):  Don't take map
	parameter.  Instead get it from the line_table global.  Adjust callers.
	(print):  Remove map field.  Replace line field to src_line.
	(init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
	(cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
	(pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
	Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
	* cpptrad.c (copy_comment):  Rename variable.
	* c-lex.c (map):  Remove static variable, for same reason we removed
	cpp_reader's map field.
	(cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
	to call linemap_lookup.
	(cb_line_change):  Token's line field replaced by src_loc.
	(fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
	Don't save new_map.

	* cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
	source_location.

From-SVN: r77663
2004-02-11 07:29:30 -08:00
Kazu Hirata
0ea5865c17 c-ppoutput.c, [...]: Update copyright.
gcc/
	* c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
	config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
	config/m32r/linux.h, config/rs6000/ppc64-fp.c,
	config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
	Update copyright.

	cp/
	* rtti.c: Update copyright.

From-SVN: r77449
2004-02-07 14:14:54 +00:00
Kazu Hirata
fb0840fc1e * c-ppoutput.c, var-tracking.c: Fix comment typos.
From-SVN: r77448
2004-02-07 13:55:07 +00:00
Per Bothner
8e9ea4d72c Partially revert/redo 2003-10-01 change; fix -fworking-directory.
* c-ppoutput.c (pp_dir_change):  New function.
	* c-common.h (pp_dir_change):  New declaration.
	* cpplib.h (struct cpp_options):  Remove working_directory field.
	* cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
	(cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
	Don't handle -fworking_directory here, but in c_common_post_options.
	(read_original_directory): Don't back up when done.
	Don't clear no-longer used working_directory flag.
	* cpplib.h:  Update declarations to match.
	* c-lex.c (cb_dir_change):  Move to c-opts.c.
	(init_c_lex):  Don't set dir_change callback here, since we want
	to set it even if flag_preprocess_only.
	* c-opts.c (cb_dir_change):  Function moved from c-lex.c.
	(c_common_post_options):  Set dir_change callback.
	Call pp_dir_change if approporiate.
	(finish_options):  Don't call cpp_find_main_file here.	Hence remove
	unneeded parameter and result. Do LC_RENAME for <built-in>.
	(c_common_post_options):  Call cpp_read_main_file here instead.
	(c_common_init):  Update accordingly.
	(push_command_line_include):  Don't cpp_push_main_file.
	Do LC_RENAME rather than LC_LEASE to get back to main file.
	Compared to pre-10-01 version, inline cpp_rename_to_main_file.
	(c_common_parse_file):  Call cpp_read_main_file for subsequent main
	files, but call finish_options for all files.
	* c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
	* fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
	cpp_find_main_file + cpp_push_main_file.
	* c-lex.c (fe_file_change):  Don't set main_input_filename here.
	* opts.c (handle_options):  Only set main_input_filename first time.

From-SVN: r77303
2004-02-04 22:52:26 -08:00
Per Bothner
f4b2bde73f c-lex.c (fe_file_change): Handle a NULL new_map.
* c-lex.c (fe_file_change):  Handle a NULL new_map.
	* fix-header.c (cb_file_change):  Likewise.
	* c-ppoutput.c (pp_file_change):  Likewise.

From-SVN: r72011
2003-10-02 00:03:42 -07:00
Mike Stump
a1c18b4ac8 c-ppoutput.c (print): Use fileline typedef for field 'line'.
* c-ppoutput.c (print):  Use fileline typedef for field 'line'.
	(print_line, maybe_print_line, cb_define, cb_undef, cb_include,
	cb_ident, cb_def_pragma):  Use fileline typedef.
	* cpphash.h (struct cpp_reader):  Likewise for field out.first_line.

From-SVN: r71554
2003-09-18 17:47:53 -07:00
Alexandre Oliva
7b9a5a662b c-ppoutput.c (cb_line_change): Revert 2003-08-04's change.
* c-ppoutput.c (cb_line_change): Revert 2003-08-04's change.
* c-lex.c (cb_line_change): Skip line changing whenever
c-ppoutput.c would.

From-SVN: r71381
2003-09-14 13:56:18 +00:00
Alexandre Oliva
b2734c680c c-ppoutput.c (cb_line_change): Don't skip line changing while parsing macro arguments in the top-level context.
* c-ppoutput.c (cb_line_change): Don't skip line changing while
parsing macro arguments in the top-level context.

From-SVN: r70148
2003-08-04 16:49:38 +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
Andreas Jaeger
2f6e4e977d c-lex.c: Convert to ISO C90.
* c-lex.c: Convert to ISO C90.
	* c-objc-common.c: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.h: Likewise.
	* c-pretty-print.c: Likewise.
	* c-pretty-print.h: Likewise.
	* c-semantics.c: Likewise.
	* c-tree.h: Likewise.
	* c-typeck.c: Likewise.

From-SVN: r68327
2003-06-22 15:41:26 +02:00
Neil Booth
74eb4b3e2e c-ppoutput.c (cb_include): Don't take a cpp_token.
* c-ppoutput.c (cb_include): Don't take a cpp_token.
	* cppfiles.c: Don't undef strcmp.
	(find_include_file): Don't take a cpp_token.  Check for empty
	file names.
	(_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
	(cpp_push_include): Simplify.
	* cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
	* cpplib.c (glue_header_name): Return the file name, not a cpp_token.
	(parse_include): Similary.  Don't check for zero-length filenames.
	(do_include_common, do_pragma_dependency): Update accordingly.
	* cpplib.h (struct cpp_callbacks): Change prototype of include.

From-SVN: r65894
2003-04-21 19:21:59 +00: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
23345bbbcc /home/neil/diffs/include.log
From-SVN: r64373
2003-03-14 21:47:50 +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
63973df350 Makefile.in: Update.
* Makefile.in: Update.
	* c-common.c (flag_no_line_commands, flag_no_output,
	flag_dump_macros, flag_dump_includes): New.
	* c-common.h (flag_no_line_commands, flag_no_output,
	flag_dump_macros, flag_dump_includes, preprocess_file): New.
	(init_c_lex): Update prototype.
	* c-lex.c (init_c_lex): Update prototype; move some code to
	c_common_init.
	* c-opts.c (preprocess_file): Subsume into c_common_init.
	(c_common_decode_option): Update flags.
	(c_common_init): Move code from preprocess_file and init_c_lex.
	(sanitize_cpp_opts): Update.
	* c-ppoutput.c: New, cppmain.c almost verbatim.
	* cpphash.h (struct printer): Remove.
	(struct cpp_reader): Remove print.
	* cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
	cpp_preprocess_file): Remove.
	(struct cpp_options): Remove no_output, no_line_commands, dump_macros
	and dump_includes.
	* cppmain.c: Remove.
	* doc/passes.texi: Update.

From-SVN: r63773
2003-03-04 07:00:39 +00:00