Skip to content
Snippets Groups Projects
  1. Jun 29, 2013
    • Ed Smith-Rowland's avatar
      lex.c (lex_raw_string(), [...]): Constrain suffixes treated as concatenated... · c865f923
      Ed Smith-Rowland authored
      lex.c (lex_raw_string(), [...]): Constrain suffixes treated as concatenated literal and macro to just the...
      
      libcpp:
      
      2013-06-28  Ed Smith-Rowland  <3dw4rd@verizon.net>
      
      	* lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
      	as concatenated literal and macro to just the patterns found in
      	inttypes.h; (is_macro()): New.
      
      
      gcc/cp:
      
      2013-06-28  Ed Smith-Rowland  <3dw4rd@verizon.net>
      
      	* cp-tree.h (UDLIT_OP_ANSI_PREFIX): Remove space.
      	* parser.c (cp_parser_operator()): Parse user-defined string
      	literal as literal operator.
      
      
      gcc/testsuite:
      
      2013-06-28  Ed Smith-Rowland  <3dw4rd@verizon.net>
      
      	* g++.dg/cpp0x/udlit-nospace-neg.C: Adjust.
      	* g++.dg/cpp1y/udlit-enc-prefix-neg.C: New.
      	* g++.dg/cpp1y/udlit-userdef-string.C: New.
      	* g++.dg/cpp1y/complex_literals.h: New.
      
      From-SVN: r200563
      c865f923
  2. Jun 24, 2013
  3. Apr 28, 2013
    • Jakub Jelinek's avatar
      N3472 binary constants · 01187df0
      Jakub Jelinek authored
      	N3472 binary constants
      	* include/cpplib.h (struct cpp_options): Fix a typo in user_literals
      	field comment.  Add binary_constants field.
      	* init.c (struct lang_flags): Add binary_constants field.
      	(lang_defaults): Add bin_cst column to the table.
      	(cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
      	* expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
      	in diagnostics.  Accept binary constants if
      	CPP_OPTION (pfile, binary_constants) even when pedantic.  Adjust
      	pedwarn message.
      
      	* g++.dg/cpp/limits.C: Adjust warning wording.
      	* g++.dg/system-binary-constants-1.C: Likewise.
      	* g++.dg/cpp1y/system-binary-constants-1.C: New test.
      
      From-SVN: r198380
      01187df0
  4. Apr 24, 2013
    • Paolo Carlini's avatar
      cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y. · 61949153
      Paolo Carlini authored
      /libcpp
      2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
      	* init.c (lang_defaults): Add defaults for the latter.
      	(cpp_init_builtins): Define __cplusplus as 201300L for the latter.
      	* lex.c (_cpp_lex_direct): Update.
      
      /gcc/c-family
      2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* c-opts.c (set_std_cxx11): Use CLK_CXX1Y and CLK_GNUCXX1Y.
      
      /gcc/testsuite
      2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/cpp1y/cplusplus.C: New.
      
      From-SVN: r198261
      61949153
  5. Apr 03, 2013
  6. Mar 30, 2013
  7. Mar 27, 2013
  8. Mar 15, 2013
  9. Mar 09, 2013
  10. Mar 06, 2013
    • Jakub Jelinek's avatar
      re PR middle-end/56461 (GCC is leaking lots of memory) · 28937f11
      Jakub Jelinek authored
      	PR middle-end/56461
      	* internal.h (struct cpp_buffer): Add to_free field.
      	(_cpp_pop_file_buffer): Add third argument.
      	* files.c (_cpp_stack_file): Set buffer->to_free.
      	(_cpp_pop_file_buffer): Add to_free argument.  Free to_free
      	if non-NULL, and if equal to file->buffer_start, also clear
      	file->buffer{,_start,_valid}.
      	* directives.c (_cpp_pop_buffer): Pass buffer->to_free
      	to _cpp_pop_file_buffer.
      
      From-SVN: r196497
      28937f11
  11. Mar 04, 2013
    • Joseph Myers's avatar
      be.po, [...]: Update. · d06b592c
      Joseph Myers authored
      	* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
      	id.po, ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po,
      	zh_CN.po, zh_TW.po: Update.
      
      From-SVN: r196440
      d06b592c
  12. Mar 01, 2013
    • Jakub Jelinek's avatar
      re PR middle-end/56461 (GCC is leaking lots of memory) · 3b8af25b
      Jakub Jelinek authored
      	PR middle-end/56461
      	* files.c (_cpp_save_file_entries): Free result at the end.
      	* pch.c (cpp_string_free): New function.
      	(cpp_save_state): Use it in htab_create call.
      	(cpp_write_pch_deps): Free ss->defs.  Destroy ss->definedhash.
      
      From-SVN: r196394
      3b8af25b
  13. Feb 28, 2013
    • Jakub Jelinek's avatar
      files.c (_cpp_find_file): If returning early... · 15fd8332
      Jakub Jelinek authored
      	* files.c (_cpp_find_file): If returning early, before storing
      	something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
      	on it.  Access *hash_slot using void * type rather than
      	struct file_hash_entry * to avoid aliasing issues.
      
      From-SVN: r196356
      15fd8332
    • Jakub Jelinek's avatar
      configure.ac: Don't define ENABLE_CHECKING whenever --enable-checking is seen... · 1a80db97
      Jakub Jelinek authored
      	* configure.ac: Don't define ENABLE_CHECKING whenever
      	--enable-checking is seen, instead use similar --enable-checking=yes
      	vs. --enable-checking=release default as gcc/ subdir has and
      	define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
      	Define ENABLE_VALGRIND_CHECKING if requested.
      	* lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
      	struct first in the allocated buffer and result->base after it.
      	(_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
      	instead of buff->base.
      	* config.in: Regenerated.
      	* configure: Regenerated.
      
      From-SVN: r196333
      1a80db97
  14. Feb 24, 2013
  15. Feb 14, 2013
  16. Feb 05, 2013
  17. Jan 14, 2013
  18. Jan 04, 2013
    • Paolo Carlini's avatar
      PR c++/54526 (again) · 1582c677
      Paolo Carlini authored
      /libcpp
      2013-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54526 (again)
      	* lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2.
      
      /gcc/cp
      2013-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54526 (again)
      	* parser.c (cp_parser_template_id): Revert core of previous change
      	(keep adjusted inform message).
      
      /gcc/testsuite
      2013-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54526 (again)
      	* g++.dg/cpp0x/parse2.C: Extend.
      	* g++.old-deja/g++.other/crash28.C: Adjust.
      
      From-SVN: r194909
      1582c677
  19. Jan 03, 2013
    • Marc Glisse's avatar
      re PR bootstrap/50167 (gmp memory functions are extern "C" (graphite)) · 8ac16127
      Marc Glisse authored
      2013-01-03  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR bootstrap/50167
      gcc/
      	* graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
      	* graphite-poly.c (debug_gmp_value): Likewise.
      
      	PR bootstrap/50177
      libcpp/
      	* line-map.c (get_combined_adhoc_loc): Cast from extern "C" type.
      	(new_linemap): Likewise.
      	(linemap_enter_macro): Likewise.
      
      From-SVN: r194868
      8ac16127
  20. Dec 03, 2012
    • Jakub Jelinek's avatar
      re PR bootstrap/55380 (All search_line_fast implementations read beyond buffer) · f41e5bd1
      Jakub Jelinek authored
      	PR bootstrap/55380
      	PR other/54691
      	* files.c (read_file_guts): Allocate extra 16 bytes instead of
      	1 byte at the end of buf.  Pass size + 16 instead of size
      	to _cpp_convert_input.
      	* charset.c (_cpp_convert_input): Reallocate if there aren't
      	at least 16 bytes beyond to.len in the buffer.  Clear 16 bytes
      	at to.text + to.len.
      
      From-SVN: r194102
      f41e5bd1
  21. Nov 21, 2012
  22. Nov 16, 2012
    • Simon Baldwin's avatar
      cpplib.h (struct cpp_options): Add canonical_system_headers. · 5dc99c46
      Simon Baldwin authored
          * include/cpplib.h (struct cpp_options): Add canonical_system_headers.
          * files.c (find_file_in_dir): Call maybe_shorter_path() only if
          canonical_system_headers is set.
          * init.c (cpp_create_reader): Initialize canonical_system_headers.
          * configure.ac: Add new --enable-canonical-system-headers.
          * configure: Regenerate.
          * config.in: Regenerate.
      
          * doc/cppopts.texi: Document -f[no-]canonical-system-headers.
          * doc/install.texi: Document --enable-canonical-system-headers.
      
          * c.opt: Add f[no-]canonical-system-headers.
          * c-opts.c (c_common_handle_option): Handle
          OPT_fcanonical_system_headers.
      
      From-SVN: r193569
      5dc99c46
  23. Nov 10, 2012
  24. Oct 23, 2012
    • Ian Bolton's avatar
      AArch64 [7/10] · 04ce690f
      Ian Bolton authored
      
      2012-10-23  Ian Bolton  <ian.bolton@arm.com>
      	    Jim MacArthur  <jim.macarthur@arm.com>
      	    Marcus Shawcroft  <marcus.shawcroft@arm.com>
      	    Nigel Stephens  <nigel.stephens@arm.com>
      	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      	    Richard Earnshaw  <rearnsha@arm.com>
      	    Sofiane Naci  <sofiane.naci@arm.com>
      	    Stephen Thomas  <stephen.thomas@arm.com>
      	    Tejas Belagod  <tejas.belagod@arm.com>
      	    Yufeng Zhang  <yufeng.zhang@arm.com>
      
      	* configure.ac: Enable AArch64.
      	* configure: Regenerate.
      
      
      Co-Authored-By: default avatarJim MacArthur <jim.macarthur@arm.com>
      Co-Authored-By: default avatarMarcus Shawcroft <marcus.shawcroft@arm.com>
      Co-Authored-By: default avatarNigel Stephens <nigel.stephens@arm.com>
      Co-Authored-By: default avatarRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
      Co-Authored-By: default avatarRichard Earnshaw <rearnsha@arm.com>
      Co-Authored-By: default avatarSofiane Naci <sofiane.naci@arm.com>
      Co-Authored-By: default avatarStephen Thomas <stephen.thomas@arm.com>
      Co-Authored-By: default avatarTejas Belagod <tejas.belagod@arm.com>
      Co-Authored-By: default avatarYufeng Zhang <yufeng.zhang@arm.com>
      
      From-SVN: r192728
      04ce690f
    • Joseph Myers's avatar
      gcc: · 1efcb8c6
      Joseph Myers authored
      	* config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
      	*-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Use
      	glibc-c.o in c_target_objs and cxx_target_objs.  Use t-glibc in
      	tmake_file.  Set target_has_targetcm.
      	(tilegx-*-linux*, tilepro-*-linux*): Append to c_target_objs and
      	cxx_target_objs rather than overriding previous value.
      	* config/glibc-c.c, config/t-glibc: New.
      	* doc/tm.texi.in (TARGET_C_PREINCLUDE): New @hook.
      	* doc/tm.texi: Regenerate.
      	* hooks.c (hook_constcharptr_void_null): New.
      	* hooks.h (hook_constcharptr_void_null): Declare.
      
      gcc/c-family:
      	* c-common.h (pch_cpp_save_state): Declare.
      	* c-target.def (c_preinclude): New hook.
      	* c-opts.c (done_preinclude): New.
      	(push_command_line_include): Handle default preincluded header.
      	(cb_file_change): Call pch_cpp_save_state when calling
      	push_command_line_include.
      	* c-pch.c (pch_ready_to_save_cpp_state, pch_cpp_state_saved)
      	(pch_cpp_save_state): New.
      	(pch_init): Call pch_cpp_save_state conditionally, instead of
      	calling cpp_save_state.
      
      gcc/testsuite:
      	* gcc.dg/c99-predef-1.c: New test.
      	* gcc.dg/cpp/cmdlne-dU-1.c, gcc.dg/cpp/cmdlne-dU-2.c,
      	gcc.dg/cpp/cmdlne-dU-3.c, gcc.dg/cpp/cmdlne-dU-4.c,
      	gcc.dg/cpp/cmdlne-dU-5.c, gcc.dg/cpp/cmdlne-dU-6.c,
      	gcc.dg/cpp/cmdlne-dU-7.c, gcc.dg/cpp/cmdlne-dU-8.c,
      	gcc.dg/cpp/cmdlne-dU-9.c, gcc.dg/cpp/cmdlne-dU-10.c,
      	gcc.dg/cpp/cmdlne-dU-11.c, gcc.dg/cpp/cmdlne-dU-12.c,
      	gcc.dg/cpp/cmdlne-dU-13.c, gcc.dg/cpp/cmdlne-dU-14.c,
      	gcc.dg/cpp/cmdlne-dU-15.c, gcc.dg/cpp/cmdlne-dU-16.c,
      	gcc.dg/cpp/cmdlne-dU-17.c, gcc.dg/cpp/cmdlne-dU-18.c,
      	gcc.dg/cpp/cmdlne-dU-19.c, gcc.dg/cpp/cmdlne-dU-20.c,
      	gcc.dg/cpp/cmdlne-dU-21.c, gcc.dg/cpp/cmdlne-dU-22.c,
      	gcc.dg/cpp/mi5.c, gcc.dg/cpp/multiline.c: Add -nostdinc to
      	dg-options.
      
      libcpp:
      	* files.c (struct _cpp_file): Add implicit_preinclude.
      	(pch_open_file): Allow a previously opened implicitly included
      	file.
      	(_cpp_find_file): Add implicit_preinclude argument.  Free file and
      	do not call open_file_failed if implicit_preinclude.  Store
      	implicit_preinclude value.
      	(_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
      	Update calls to _cpp_find_file.
      	(_cpp_stack_include): Handle IT_DEFAULT.
      	(cpp_push_default_include): New.
      	* include/cpplib.h (cpp_push_default_include): Declare.
      	* init.c (cpp_read_main_file): Update call to _cpp_find_file.
      	* internal.h (enum include_type): Add IT_DEFAULT.
      	(_cpp_find_file): Update prototype.
      
      From-SVN: r192715
      1efcb8c6
  25. Oct 15, 2012
  26. Oct 04, 2012
    • Florian Weimer's avatar
      Implement #pragma GCC warning/error · f591bd8f
      Florian Weimer authored
      2012-10-04  Florian Weimer  <fweimer@redhat.com>
      
      	* doc/cpp.texi (Pragmas): Document #pragma GCC warning, #pragma
      	GCC error.
      
      2012-10-04  Florian Weimer  <fweimer@redhat.com>
      
      	* c-c++-common/cpp/diagnostic-pragma-1.c: New testcase.
      
      2012-10-04  Florian Weimer  <fweimer@redhat.com>
      
      	* directives.c (do_pragma_warning_or_error): New.
      	(do_pragma_warning): New.
      	(do_pragma_error): New.
      	(_cpp_init_internal_pragmas): Register new pragmas.
      
      From-SVN: r192084
      f591bd8f
  27. Sep 26, 2012
  28. Sep 25, 2012
    • Dehao Chen's avatar
      re PR middle-end/54704 (three-fold increase in compile-time between r191483 and r191569) · ec6e0399
      Dehao Chen authored
      libcpp:
      	2012-09-25  Dehao Chen  <dehao@google.com>
      
      	PR middle-end/54704
      	* line-map.c (location_adhoc_data_hash): Fix the hash function.
      
      From-SVN: r191747
      ec6e0399
    • Joseph Myers's avatar
      * vi.po: Update. · c985a8e9
      Joseph Myers authored
      From-SVN: r191709
      c985a8e9
    • Dehao Chen's avatar
      re PR middle-end/54645 (Many testsuite failures) · 52187008
      Dehao Chen authored
      gcc:
      	2012-09-25  Dehao Chen  <dehao@google.com>
      
      	PR middle-end/54645
      	* c-family/c-pch.c (c_common_read_pch): Rebuild the location_adhoc_data
      	map when read in the pch.
      
      libcpp:
      	2012-09-25  Dehao Chen  <dehao@google.com>
      
      	PR middle-end/54645
      	* include/line-map.h (location_adhoc_data): Move location_adhoc_data
      	into GC.
      	(location_adhoc_data_map): Likewise.
      	(line_maps): Likewise.
      	(rebuild_location_adhoc_htab): New Function.
      	* line-map.c (+rebuild_location_adhoc_htab): new Funcion.
      	(get_combined_adhoc_loc): Move location_adhoc_data into GC.
      	(location_adhoc_data_fini): Likewise.
      	(linemap_init): Likewise.
      	(location_adhoc_data_init): Remove Function.
      
      From-SVN: r191706
      52187008
  29. Sep 19, 2012
    • Dehao Chen's avatar
      Integrate lexical block into source_location. · 5368224f
      Dehao Chen authored
      gcc:
      	2012-09-19  Dehao Chen  <dehao@google.com>
      
      	* toplev.c (general_init): Init block_locations.
      	* tree.c (tree_set_block): New.
      	(tree_block): Change to use LOCATION_BLOCK.
      	* tree.h (TREE_SET_BLOCK): New.
      	* final.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK.
      	(final_start_function): Likewise.
      	* input.c (expand_location_1): Likewise.
      	* input.h (LOCATION_LOCUS): New.
      	(LOCATION_BLOCK): New.
      	(IS_UNKNOWN_LOCATION): New.
      	* fold-const.c (expr_location_or): Change to use new location.
      	* reorg.c (emit_delay_sequence): Likewise.
      	(try_merge_delay_insns): Likewise.
      	* modulo-sched.c (dump_insn_location): Likewise.
      	* lto-streamer-out.c (lto_output_location_bitpack): Likewise.
      	* lto-cgraph.c (output_node_opt_summary): Likewise.
      	* jump.c (rtx_renumbered_equal_p): Likewise.
      	* ifcvt.c (noce_try_move): Likewise.
      	(noce_try_store_flag): Likewise.
      	(noce_try_store_flag_constants): Likewise.
      	(noce_try_addcc): Likewise.
      	(noce_try_store_flag_mask): Likewise.
      	(noce_try_cmove): Likewise.
      	(noce_try_cmove_arith): Likewise.
      	(noce_try_minmax): Likewise.
      	(noce_try_abs): Likewise.
      	(noce_try_sign_mask): Likewise.
      	(noce_try_bitop): Likewise.
      	(noce_process_if_block): Likewise.
      	(cond_move_process_if_block): Likewise.
      	(find_cond_trap): Likewise.
      	* ipa-prop.c (ipa_set_jf_constant): Likewise.
      	(ipa_write_jump_function): Likewise.
      	* dwarf2out.c (add_src_coords_attributes): Likewise.
      	* expr.c (expand_expr_real): Likewise.
      	* tree-parloops.c (create_loop_fn): Likewise.
      	* recog.c (peep2_attempt): Likewise.
      	* function.c (free_after_compilation): Likewise.
      	(expand_function_end): Likewise.
      	(set_insn_locations): Likewise.
      	(thread_prologue_and_epilogue_insns): Likewise.
      	* print-rtl.c (print_rtx): Likewise.
      	* profile.c (branch_prob): Likewise.
      	* trans-mem.c (ipa_tm_scan_irr_block): Likewise.
      	* gimplify.c (gimplify_call_expr): Likewise.
      	* except.c (duplicate_eh_regions_1): Likewise.
      	* emit-rtl.c (try_split): Likewise.
      	(make_insn_raw): Likewise.
      	(make_debug_insn_raw): Likewise.
      	(make_jump_insn_raw): Likewise.
      	(make_call_insn_raw): Likewise.
      	(emit_pattern_after_setloc): Likewise.
      	(emit_pattern_after): Likewise.
      	(emit_debug_insn_after): Likewise.
      	(emit_pattern_before): Likewise.
      	(emit_insn_before_setloc): Likewise.
      	(emit_jump_insn_before): Likewise.
      	(emit_call_insn_before_setloc): Likewise.
      	(emit_call_insn_before): Likeise.
      	(emit_debug_insn_before_setloc): Likewise.
      	(emit_copy_of_insn_after): Likewise.
      	(insn_locators_alloc): Remove.
      	(insn_locators_finalize): Remove.
      	(insn_locators_free): Remove.
      	(set_curr_insn_source_location): Remove.
      	(get_curr_insn_source_location): Remove.
      	(set_curr_insn_block): Remove.
      	(get_curr_insn_block): Remove.
      	(locator_scope): Remove.
      	(insn_scope): Change to use new location.
      	(locator_location): Remove.
      	(insn_line): Change to use new location.
      	(locator_file): Remove.
      	(insn_file): Change to use new location.
      	(locator_eq): Remove.
      	(insn_locations_init): New.
      	(insn_locations_finalize): New.
      	(set_curr_insn_location): New.
      	(curr_insn_location): New.
      	* cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location.
      	(expand_gimple_cond): Likewise.
      	(expand_call_stmt): Likewise.
      	(expand_gimple_stmt_1): Likewise.
      	(expand_gimple_basic_block): Likewise.
      	(construct_exit_block): Likewise.
      	(gimple_expand_cfg): Likewise.
      	* cfgcleanup.c (try_forward_edges): Likewise.
      	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
      	(dump_scope_block): Likewise.
      	(remove_unused_locals): Likewise.
      	* rtl.c (rtx_equal_p_cb): Likewise.
      	(rtx_equal_p): Likewise.
      	* rtl.h (XUINT): New.
      	(INSN_LOCATOR): Remove.
      	(CURR_INSN_LOCATION): Remove.
      	(INSN_LOCATION): New.
      	(INSN_HAS_LOCATION): New.
      	* tree-inline.c (remap_gimple_op_r): Change to use new location.
      	(copy_tree_body_r): Likewise.
      	(copy_phis_for_bb): Likewise.
      	(expand_call_inline): Likewise.
      	* tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise.
      	* tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
      	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
      	* combine.c (try_combine): Likewise.
      	* tree-outof-ssa.c (set_location_for_edge): Likewise.
      	(insert_partition_copy_on_edge): Likewise.
      	(insert_value_copy_on_edge): Likewise.
      	(insert_rtx_to_part_on_edge): Likewise.
      	(insert_part_to_rtx_on_edge): Likewise.
      	* basic-block.h (edge_def): Remove field.
      	* gimple.h (gimple_statement_base): Remove field.
      	(gimple_bb): Change to use new location.
      	(gimple_set_block): Likewise.
      	(gimple_has_location): Likewise.
      	* tree-cfg.c (make_cond_expr_edges): Likewise.
      	(make_goto_expr_edges): Likewise.
      	(gimple_can_merge_blocks_p): Likewise.
      	(move_stmt_op): Likewise.
      	(move_block_to_fn): Likewise.
      	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
      	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
      	* config/i386/i386.c (x86_output_mi_thunk): Likewise.
      	* config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
      	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
      	* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
      	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
      	* config/score/score.c (score_output_mi_thunk): Likewise.
      	* config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
      	* config/mips/mips.c (mips_output_mi_thunk): Likewise.
      	* cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
      	(unique_locus_on_edge_between_p): Likewise.
      	(emit_nop_for_unique_locus_between): Likewise.
      	(force_nonfallthru_and_redirect): Likewise.
      	(fixup_reorder_chain): Likewise.
      	(cfg_layout_merge_blocks): Likewise.
      	* stmt.c (emit_case_nodes): Likewise.
      
      gcc/lto:
      	2012-09-19  Dehao Chen  <dehao@google.com>
      
      	* lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.
      
      libcpp:
      	2012-09-19  Dehao Chen  <dehao@google.com>
      
      	* include/line-map.h (MAX_SOURCE_LOCATION): New value.
      	(location_adhoc_data_fini): New.
      	(get_combined_adhoc_loc): New.
      	(get_data_from_adhoc_loc): New.
      	(get_location_from_adhoc_loc): New.
      	(location_adhoc_data_map): New.
      	(COMBINE_LOCATION_DATA): New.
      	(IS_ADHOC_LOC): New.
      	(expanded_location): New field.
      	(line_maps): New field.
      	* line-map.c (location_adhoc_data): New.
      	(location_adhoc_data_hash): New.
      	(location_adhoc_data_eq): New.
      	(location_adhoc_data_update): New.
      	(get_combined_adhoc_loc): New.
      	(get_data_from_adhoc_loc): New.
      	(get_location_from_adhoc_loc): New.
      	(location_adhoc_data_init): New.
      	(location_adhoc_data_fini): New.
      	(linemap_init): Initialize location_adhoc_data.
      	(linemap_lookup): Change to use new location.
      	(linemap_ordinary_map_lookup): Likewise.
      	(linemap_macro_map_lookup): Likewise.
      	(linemap_macro_map_loc_to_def_point): Likewise.
      	(linemap_macro_map_loc_unwind_toward_spel): Likewise.
      	(linemap_get_expansion_line): Likewise.
      	(linemap_get_expansion_filename): Likewise.
      	(linemap_location_in_system_header_p): Likewise.
      	(linemap_location_from_macro_expansion_p): Likewise.
      	(linemap_macro_loc_to_spelling_point): Likewise.
      	(linemap_macro_loc_to_def_point): Likewise.
      	(linemap_macro_loc_to_exp_point): Likewise.
      	(linemap_resolve_location): Likewise.
      	(linemap_unwind_toward_expansion): Likewise.
      	(linemap_unwind_to_first_non_reserved_loc): Likewise.
      	(linemap_expand_location): Likewise.
      	(linemap_dump_location): Likewise.
      	(linemap_line_start): Likewise.
      
      From-SVN: r191494
      5368224f
    • Joseph Myers's avatar
      * cpplib.pot: Regenerate. · 5b156fea
      Joseph Myers authored
      From-SVN: r191483
      5b156fea
  30. Aug 27, 2012
    • Dodji Seketeli's avatar
      PR preprocessor/53469 - argument tokens of _Pragma miss virtual location · f3d25c65
      Dodji Seketeli authored
      Consider this short test snippet:
      
      -------------------------8-------------------
          #define STRINGIFY(x) #x
          #define TEST(x) \
            _Pragma(STRINGIFY(GCC diagnostic ignored "-Wunused-local-typedefs")) \
            typedef int myint;
      
          void bar ()
          {
            TEST(myint)
          }
      -------------------------8-------------------
      
      The _Pragma is effectively ignored, and compiling with
      -Wunused-local-typedefs warns on the local typedef, even though the
      pragma should have prevented the warning to be emitted.
      
      This is because when the preprocessor sees the _Pragma operator and
      then goes to handle the first token ('GCC' here) that makes up its
      operands, it retains the spelling location of that token, not its
      virtual location.
      
      Later when diagnostic_report_diagnostic is called to emit the warning
      (or ignore it because of the pragma), it compares the location of the
      first operand of the pragma with the location of the unused location,
      (by calling linemap_location_before_p) and that comparison fails
      because in this case, both locations should be virtual.
      
      This patch fixes the issue by teaching the pragma handling to use
      virtual locations.
      
      Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
      
      libcpp/
      
      	PR preprocessor/53469
      	* directives.c (do_pragma): Use the virtual location for the
      	pragma token, instead of its spelling location.
      
      gcc/testsuite/
      
      	PR preprocessor/53469
      	* gcc.dg/cpp/_Pragma7.c: New test case.
      
      From-SVN: r190714
      f3d25c65
  31. Aug 15, 2012
    • Diego Novillo's avatar
      backport: As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html... · 0823efed
      Diego Novillo authored
      Merge from cxx-conversion branch (http://gcc.gnu.org/wiki/cxx-conversion).
      
      As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, this patch
      changes the default bootstrap process so that stage 1 always builds with a C++
      compiler.
      
      Other than the bootstrap change, the patch makes no functional changes to the
      compiler.  Everything should build as it does now in trunk.  The main
      changes in this patch are:
      
      1- Configuration changes.
      2- Re-write of VEC.
      3- Re-write of gengtype to support C++ templates and
         user-provided marking functions.
      4- New hash table class.
      5- Re-write double_int.
      6- Implement tree macros as inline functions so they can be
         called from gdb.
      
      As discussed before, several of these changes do not fully change
      the call sites to use the new APIs.
      
      The bootstrap changes have already been tested on a wide range of
      targets (http://gcc.gnu.org/wiki/CppBuildStatus).  Additionally,
      I have tested the merged trunk on: x86_64-unknown-linux-gnu,
      mips64el-unknown-linux-gnu, powerpc64-unknown-linux-gnu,
      i686-pc-linux-gnu, and ia64-unknown-linux-gnu.
      
      ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.
      
      	* Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove
      	POSTSTAGE1_CONFIGURE_FLAGS.
      	* Makefile.in: Regenerate.
      	* configure.ac (ENABLE_BUILD_WITH_CXX): Remove.  Update all users.
      	Force C++ when bootstrapping.
      	* configure: Regenerate.
      
      
      libcpp/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* configure.ac: Likewise.
      	* configure: Regenerate.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge from cxx-conversion branch.  New C++ hash table.
      
      	* include/symtab.h (typedef struct ht hash_table): Change the typedef
      	name to cpp_hash_table.  Update all users of the typedef.
      
      gcc/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* configure.ac (CXX_FOR_BUILD): Define and substitute.
      	(BUILD_CXXFLAGS): Define.
      	Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	Force all build to be with C++.
      	* Makefile.in (BUILD_CXXFLAGS): Use it.
      	Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* doc/install.texi: Remove documentation for --enable-build-with-cxx
      	and --enable-build-poststage1-with-cxx.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Re-implement VEC in C++.
      
      	* vec.c (vec_heap_free): Convert into a template function.
      	(vec_gc_o_reserve_1): Make extern.
      	(vec_gc_p_reserve): Remove.
      	(vec_gc_p_reserve_exact): Remove.
      	(vec_gc_o_reserve): Remove.
      	(vec_gc_o_reserve_exact): Remove.
      	(vec_heap_o_reserve_1): Make extern.
      	(vec_heap_p_reserve): Remove.
      	(vec_heap_p_reserve_exact): Remove.
      	(vec_heap_o_reserve): Remove.
      	(vec_heap_o_reserve_exact): Remove.
      	(vec_stack_p_reserve): Remove.
      	(vec_stack_p_reserve_exact): Remove.
      	* vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS,
      	VEC_ASSERT, VEC_ASSERT_FAIL, vec_assert_fail): Move earlier
      	in the file.
      	(VEC): Define to vec_t<T>.
      	(vec_allocation_t): Define.
      	(struct vec_prefix): Move earlier in the file.
      	(vec_t<T>): New template.
      	(DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
      	DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
      	DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
      	DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
      	(DEF_VEC_A): Provide template instantiations for
      	GC/PCH markers that do not traverse the vector.
      	(vec_stack_p_reserve): Remove.
      	(vec_stack_p_reserve_exact): Remove.
      	(vec_stack_p_reserve_exact_1): Remove.
      	(vec_stack_o_reserve): Remove.
      	(vec_stack_o_reserve_exact): Remove.
      	(vec_stack_free): Re-write as a template function.
      	(vec_reserve): New template function.
      	(vec_reserve_exact): New template function.
      	(vec_heap_free): New template function if GATHER_STATISTICS is
      	defined.  Otherwise, macro that expands to free().
      	(VEC_length_1): New template function.
      	(VEC_length): Call it.
      	(VEC_empty_1): New template function.
      	(VEC_empty): Call it.
      	(VEC_address_1): New template function.
      	(VEC_address): Call it.
      	(VEC_last_1): New template function.
      	(VEC_last): Call it.  Change return type to T&.
      	Change all users that used VEC_Os.
      	(VEC_index_1): New template function.
      	(VEC_index): Call it.  Return a T& instead of a T*.
      	Update all callers that were using VEC_O before.
      	(VEC_iterate_1): New template function.
      	(VEC_iterate): Call it.
      	(VEC_embedded_size_1): New template function.
      	(VEC_embedded_size): Call it.
      	(VEC_embedded_init_1): New template function.
      	(VEC_embedded_init): Call it.
      	(VEC_alloc_1): New template function.
      	(VEC_alloc): Call it.  If A is 'stack', call XALLOCAVAR to
      	do the allocation.
      	(VEC_free_1): New template function.
      	(VEC_free): Call it.
      	(VEC_copy_1): New template function.
      	(VEC_copy): Call it.
      	(VEC_space_1): New template function
      	(VEC_space): Call it.
      	(VEC_reserve_1): New template function.
      	(VEC_reserve): Call it.
      	(VEC_reserve_exact_1): New template function.
      	(VEC_reserve_exact): Call it.
      	(VEC_splice_1): New template function.
      	(VEC_splice): Call it.
      	(VEC_safe_splice_1): New template function.
      	(VEC_safe_splice): Call it.
      	(VEC_quick_push_1): New template function.  Create two overloads, one
      	accepting T, the other accepting T *.  Update all callers
      	where T and T * are ambiguous.
      	(VEC_quick_push): Call it.
      	(VEC_safe_push_1): New template function. Create two overloads, one
      	accepting T, the other accepting T *.  Update all callers
      	where T and T * are ambiguous.
      	(VEC_safe_push): Call it.
      	(VEC_pop_1): New template function.
      	(VEC_pop): Call it.
      	(VEC_truncate_1): New template function.
      	(VEC_truncate): Call it.
      	(VEC_safe_grow_1): New template function.
      	(VEC_safe_grow): Call it.
      	(VEC_safe_grow_cleared_1): New template function.
      	(VEC_safe_grow_cleared): Call it.
      	(VEC_replace_1): New template function.
      	(VEC_replace): Call it.  Always accept T instead of T*.
      	Update all callers that used VEC_Os.
      	(VEC_quick_insert_1): New template function.
      	(VEC_quick_insert): Call it.
      	(VEC_safe_insert_1): New template function.
      	(VEC_safe_insert): Call it.
      	(VEC_ordered_remove_1): New template function.
      	(VEC_ordered_remove): Call it.
      	(VEC_unordered_remove_1): New template function.
      	(VEC_unordered_remove): Call it.
      	(VEC_block_remove_1): New template function.
      	(VEC_block_remove): Call it.
      	(VEC_lower_bound_1): New template function.
      	(VEC_lower_bound): Call it.
      	(VEC_OP): Remove.
      	(DEF_VEC_FUNC_P): Remove.
      	(DEF_VEC_ALLOC_FUNC_P): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_P): Remove.
      	(DEF_VEC_FUNC_O): Remove.
      	(DEF_VEC_ALLOC_FUNC_O): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_O): Remove.
      	(DEF_VEC_ALLOC_FUNC_I): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_I): Remove.
      	(DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
      	(DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
      	(DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
      	(vec_reserve_exact): New template function.
      
      	* gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
      	* gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
      	(typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
      	(def_vec_alloc): Remove.  Update all callers.
      	* gengtype.c (filter_type_name): New.
      	(output_mangled_typename): Call it.
      	(write_func_for_structure): Likewise.
      	(write_types): Likewise.
      	(write_root): Likewise.
      	(write_typed_alloc_def): Likewise.
      	(note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
      	(note_def_vec_alloc): Remove.
      	* gengtype.h (note_def_vec_alloc): Remove.
      	(DEFVEC_ALLOC): Remove token code.
      
      	* df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
      	inside the insn traversal loop.
      	* gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
      	* ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
      	* reg-stack.c (stack): Rename to STACK_PTR.  Update all users.
      	* tree-vrp.c (stack): Rename to EQUIV_STACK.  Update all users.
      
      	* config/bfin/bfin.c (hwloop_optimize): Update some calls to
      	VEC_* for vectors of non-pointers.
      	* config/c6x/c6x.c (try_rename_operands): Likewise.
      	(reshuffle_units): Likewise.
      	* config/mips/mips.c (mips_multi_start): Likewise.
      	(mips_multi_add): Likewise.
      	(mips_multi_copy_insn): Likewise.
      	(mips_multi_set_operand): Likewise.
      	* hw-doloop.c (discover_loop): Likewise.
      	(discover_loops): Likewise.
      	(reorg_loops): Likewise.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  C++ support in gengtype.
      
      	* coretypes.h (gt_pointer_operator): Move from ...
      	* ggc.h: ... here.
      	* doc/gty.texi: Document support for C++ templates and
      	user-provided markers.
      	* gcc/gengtype-lex.l: Update copyright year.
      	Remove support for recognizing DEF_VEC_O, DEF_VEC_P and
      	DEFVEC_I.
      	* gengtype-parse.c: Update copyright year.
      	(token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
      	(require_template_declaration): New.
      	(typedef_name): Call it.
      	(type): Replace IS_UNION with KIND. Replace all users.
      	(def_vec): Remove.  Update all users.
      	* gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
      	(write_state_user_struct_type): New.
      	(write_state_type): Call it.
      	(read_state_user_struct_type): New.
      	(read_state_type): Call it.
      	* gengtype.c: Update copyright year.
      	(dump_pair): Move declaration to the top.
      	(dump_type): Likewise.
      	(dump_type_list): Likewise.
      	(dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
      	(create_user_defined_type): New.
      	(resolve_typedef): Call it.
      	(new_structure): Replace argument ISUNION with KIND.
      	Change users to refer to KIND directly.
      	Update all callers.
      	(find_structure): Likewise.
      	(set_gc_used_type): Handle TYPE_USER_STRUCT.
      	(create_file): Update HDR to include new copyright year.
      	(struct walk_type_data): Add field IN_PTR_FIELD.
      	(output_mangled_typename): Handle TYPE_USER_STRUCT.
      	(walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
      	Clear it afterwards.
      	Handle TYPE_USER_STRUCT.
      	(write_types_process_field): Handle TYPE_USER_STRUCT.
      	(get_type_specifier): Move earlier in the file.
      	(write_type_decl): New.
      	(write_marker_function_name): New.
      	(write_user_func_for_structure_ptr): New.
      	(write_user_func_for_structure_body): New.
      	(write_user_marking_functions): New.
      	(write_func_for_structure): Call write_marker_function_name
      	and write_type_decl.
      	Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
      	function directly.
      	Call write_user_marking_functions on TYPE_USER_STRUCTs.
      	(write_types_local_user_process_field): New.
      	(write_pch_user_walking_for_structure_body): New.
      	(write_pch_user_walking_functions): New.
      	(write_types_local_process_field): Handle TYPE_USER_STRUCT.
      	(write_local_func_for_structure): Do not call walk_type for
      	TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
      	Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
      	(write_root): Handle TYPE_USER_STRUCT.
      	(vec_prefix_type): Remove.  Update all users.
      	(note_def_vec): Remove.  Update all users.
      	(dump_typekind): Handle TYPE_USER_STRUCT.
      	(dump_type): Initialize SEEN_TYPES, if needed.
      	Handle TYPE_USER_STRUCT.
      	(dump_everything): Do not initialize SEEN_TYPES.
      	* gengtype.h: Update copyright year.
      	(enum typekind): Add TYPE_USER_STRUCT.
      	(union_or_struct_p): Rename from UNION_OR_STRUCT_P.
      	Convert into function.
      	Add an overload taking const_type_p.
      	Update all callers.
      	(new_structure): Change second field to type enum typekind.
      	Update all users.
      	(find_structure): Likewise.
      	(note_def_vec): Remove.
      	(DEFVEC_OP): Remove.
      	(DEFVEC_I): Remove.
      	* ggc-page.c (gt_ggc_mx): Add entry points for marking
      	'const char *&', 'unsigned char *&' and 'unsigned char&'.
      	* ggc-zone.c (gt_ggc_mx): Add entry points for marking
      	'const char *&' and 'unsigned char *&'.
      	* stringpool.c (gt_pch_nx): Add entry points for marking
      	'const char *&', 'unsigned char *&' and 'unsigned char&'.
      	Add an entry point for the overload taking arguments 'unsigned char
      	*', 'gt_pointer_operator' and 'void *'.
      	* vec.h (struct vec_prefix): Remove GTY marker.
      	(struct vec_t): Remove GTY((length)) attribute from field 'vec'.
      	(gt_ggc_mx (vec_t<T> *)): New template function.
      	(gt_pch_nx (vec_t<T> *)): New template function.
      	(gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
      	function.
      	(gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
      	function.
      
      	* basic-block.h (struct edge_def): Mark GTY((user)).
      	Remove all GTY markers from fields.
      	(gt_ggc_mx): Declare.
      	(gt_pch_nx): Declare.
      	* tree-cfg.c (gt_ggc_mx): New.
      	(gt_pch_nx): New.
      
      	* gengtype-lex.l (USER_GTY): Add pattern for "user".
      	* gengtype-parse.c (option): Handle USER_GTY.
      	(opts_have): New.
      	(type): Call it.
      	If the keyword 'user' is used, do not walk the fields
      	of the structure.
      	* gengtype.h (USER_GTY): Add.
      	* doc/gty.texi: Update.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge cxx-conversion branch.  Implement C++ hash table.
      
      	* hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
      	* hash-table.c: Likewise.
      	* tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t same_succ_htab): Change type to hash_table;
      	move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(same_succ_print_traverse): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(same_succ_hash): Likewise.
      	(same_succ_equal): Likewise.
      	(same_succ_delete): Likewise.
      	* tree-ssa-threadupdate.c: Include hash-table.h.
      	(struct local_info): Rename to ssa_local_info_t to avoid overloading
      	the type name local_info with the variable name local_info.
      	(static htab_t redirection_data): Change type to hash_table.
      	Move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(redirection_data_hash): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(redirection_data_eq): Likewise.
      	(fix_duplicate_block_edges): Likewise.
      	(create_duplicates): Likewise.
      	(fixup_template_block): Likewise.
      	(redirect_edges): Likewise.
      	(lookup_redirection_data): Change types associated with the hash table
      	from void* to their actual type. Remove unnecessary casts.
      	* tree-ssa-ccp.c: Include hash-table.h.
      	(typedef gimple_htab): New.  Uses hash_table.  Replace specific uses
      	of htab_t with gimple_htab.  Change users to invoke member functions.
      	Move specification of helper functions from create call to declaration.
      	* tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
      	(hash_ssa_name_by_var): Make extern. Remove void* casting.
      	(eq_ssa_name_by_var): Likewise.
      	(coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
      	to hash_table. Change users to invoke member functions.
      	Move specification of helper functions from create call to declaration.
      	* coverage.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t counts_hash): Change type to hash_table;
      	move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(htab_counts_entry_hash): Make extern. Rename with coverage_... instead
      	of htab_... Remove void* casting.
      	(htab_counts_entry_eq): Likewise.
      	(htab_counts_entry_del): Likewise.
      	* tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t expression_to_id): Change type to hash_table.
      	Move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(static htab_t phi_translate_table): Likewise.
      	(pre_expr_eq): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(pre_expr_hash): Likewise.
      	(expr_pred_trans_hash): Likewise.
      	(expr_pred_trans_eq): Likewise.
      	(alloc_expression_id): Change types associated with the hash table
      	from void* to their actual type. Remove unnecessary casts.
      	(lookup_expression_id): Likewise.
      	(phi_trans_lookup): Likewise.
      	(phi_trans_add): Likewise.
      	* stringpool.c: Rename uses of libcpp typedef hash_table to
      	cpp_hash_table.
      	* Makefile.in: Add hash-table.o to OBJS-libcommon-target.
      	Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge from cxx-conversion branch.  Re-write double_int in C++.
      
      	* hash-table.h
      	(typedef double_int): Change to struct (POD).
      	(double_int::make): New overloads for int to double-int conversion.
      	(double_int::mask): New.
      	(double_int::max_value): New.
      	(double_int::min_value): New.
      	(double_int::operator ++): New.
      	(double_int::operator --): New.
      	(double_int::operator *=): New.
      	(double_int::operator +=): New.
      	(double_int::operator -=): New.
      	(double_int::to_signed): New.
      	(double_int::to_unsigned): New.
      	(double_int::fits_unsigned): New.
      	(double_int::fits_signed): New.
      	(double_int::fits): New.
      	(double_int::trailing_zeros): New.
      	(double_int::popcount): New.
      	(double_int::multiple_of): New.
      	(double_int::set_bit): New.
      	(double_int::mul_with_sign): New.
      	(double_int::operator * (binary)): New.
      	(double_int::operator + (binary)): New.
      	(double_int::operator - (binary)): New.
      	(double_int::operator - (unary)): New.
      	(double_int::operator ~ (unary)): New.
      	(double_int::operator & (binary)): New.
      	(double_int::operator | (binary)): New.
      	(double_int::operator ^ (binary)): New.
      	(double_int::and_not): New.
      	(double_int::lshift): New.
      	(double_int::rshift): New.
      	(double_int::alshift): New.
      	(double_int::arshift): New.
      	(double_int::llshift): New.
      	(double_int::lrshift): New.
      	(double_int::lrotate): New.
      	(double_int::rrotate): New.
      	(double_int::div): New.
      	(double_int::sdiv): New.
      	(double_int::udiv): New.
      	(double_int::mod): New.
      	(double_int::smod): New.
      	(double_int::umod): New.
      	(double_int::divmod): New.
      	(double_int::sdivmod): New.
      	(double_int::udivmod): New.
      	(double_int::ext): New.
      	(double_int::zext): New.
      	(double_int::sext): New.
      	(double_int::is_zero): New.
      	(double_int::is_one): New.
      	(double_int::is_minus_one): New.
      	(double_int::is_negative): New.
      	(double_int::cmp): New.
      	(double_int::ucmp): New.
      	(double_int::scmp): New.
      	(double_int::ult): New.
      	(double_int::ugt): New.
      	(double_int::slt): New.
      	(double_int::sgt): New.
      	(double_int::max): New.
      	(double_int::smax): New.
      	(double_int::umax): New.
      	(double_int::min): New.
      	(double_int::smin): New.
      	(double_int::umin): New.
      	(double_int::operator ==): New.
      	(double_int::operator !=): New.
      	(shwi_to_double_int): Change implementation to use member function.
      	(double_int_minus_one): Likewise.
      	(double_int_zero): Likewise.
      	(double_int_one): Likewise.
      	(double_int_two): Likewise.
      	(double_int_ten): Likewise.
      	(uhwi_to_double_int): Likewise.
      	(double_int_to_shwi): Likewise.
      	(double_int_to_uhwi): Likewise.
      	(double_int_fits_in_uhwi_p): Likewise.
      	(double_int_fits_in_shwi_p): Likewise.
      	(double_int_fits_in_hwi_p): Likewise.
      	(double_int_mul): Likewise.
      	(double_int_mul_with_sign): Likewise.
      	(double_int_add): Likewise.
      	(double_int_sub): Likewise.
      	(double_int_neg): Likewise.
      	(double_int_div): Likewise.
      	(double_int_sdiv): Likewise.
      	(double_int_udiv): Likewise.
      	(double_int_mod): Likewise.
      	(double_int_smod): Likewise.
      	(double_int_umod): Likewise.
      	(double_int_divmod): Likewise.
      	(double_int_sdivmod): Likewise.
      	(double_int_udivmod): Likewise.
      	(double_int_multiple_of): Likewise.
      	(double_int_setbit): Likewise.
      	(double_int_ctz): Likewise.
      	(double_int_not): Likewise.
      	(double_int_ior): Likewise.
      	(double_int_and): Likewise.
      	(double_int_and_not): Likewise.
      	(double_int_xor): Likewise.
      	(double_int_lshift): Likewise.
      	(double_int_rshift): Likewise.
      	(double_int_lrotate): Likewise.
      	(double_int_rrotate): Likewise.
      	(double_int_cmp): Likewise.
      	(double_int_scmp): Likewise.
      	(double_int_ucmp): Likewise.
      	(double_int_max): Likewise.
      	(double_int_smax): Likewise.
      	(double_int_umax): Likewise.
      	(double_int_min): Likewise.
      	(double_int_smin): Likewise.
      	(double_int_umin): Likewise.
      	(double_int_ext): Likewise.
      	(double_int_sext): Likewise.
      	(double_int_zext): Likewise.
      	(double_int_mask): Likewise.
      	(double_int_max_value): Likewise.
      	(double_int_min_value): Likewise.
      	(double_int_zero_p): Likewise.
      	(double_int_one_p): Likewise.
      	(double_int_minus_one_p): Likewise.
      	(double_int_equal_p): Likewise.
      	(double_int_popcount): Likewise.
      	* hash-table.c
      	(double_int_mask): Reuse implementation for double_int::mask.
      	(double_int_max_value): Likewise.
      	(double_int_min_value): Likewise.
      	(double_int_ext): Likewise.
      	(double_int_zext): Likewise.
      	(double_int_sext): Likewise.
      	(double_int_mul_with_sign): Likewise.
      	(double_int_divmod): Likewise.
      	(double_int_sdivmod): Likewise.
      	(double_int_udivmod): Likewise.
      	(double_int_div): Likewise.
      	(double_int_sdiv): Likewise.
      	(double_int_udiv): Likewise.
      	(double_int_mod): Likewise.
      	(double_int_smod): Likewise.
      	(double_int_umod): Likewise.
      	(double_int_multiple_of): Likewise.
      	(double_int_lshift): Likewise.
      	(double_int_rshift): Likewise.
      	(double_int_lrotate): Likewise.
      	(double_int_rrotate): Likewise.
      	(double_int_cmp): Likewise.
      	(double_int_ucmp): Likewise.
      	(double_int_scmp): Likewise.
      	(double_int_max): Likewise.
      	(double_int_smax): Likewise.
      	(double_int_umax): Likewise.
      	(double_int_min): Likewise.
      	(double_int_smin): Likewise.
      	(double_int_umin): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int::alshift): New.
      	(double_int::arshift): New.
      	(double_int::llshift): New.
      	(double_int::lrshift): New.
      	(double_int::ult): New.
      	(double_int::ugt): New.
      	(double_int::slt): New.
      	(double_int::sgt): New.
      	(double_int_setbit): Reuse implementation for double_int::set_bit,
      	which avoids a name conflict with a macro.
      	(double_int_double_int_ctz): Reuse implementation for
      	double_int::trailing_zeros.
      	(double_int_fits_in_shwi_p): Reuse implementation for
      	double_int::fits_signed.
      	(double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
      	(double_int_mul): Reuse implementation for binary
      	double_int::operator *.
      	(double_int_add): Likewise.
      	(double_int_sub): Likewise.
      	(double_int_neg): Reuse implementation for unary
      	double_int::operator -.
      	(double_int_max_value): Likewise.
      	* fixed-value.c: Change to use member functions introduced above.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge cxx-conversion branch.  Support tree macro calling
      	from gdb.
      
      	* tree.h (tree_check): New.
      	(TREE_CHECK): Use inline function above instead of __extension__.
      	(tree_not_check): New.
      	(TREE_NOT_CHECK): Use inline function above instead of __extension__.
      	(tree_check2): New.
      	(TREE_CHECK2): Use inline function above instead of __extension__.
      	(tree_not_check2): New.
      	(TREE_NOT_CHECK2): Use inline function above instead of __extension__.
      	(tree_check3): New.
      	(TREE_CHECK3): Use inline function above instead of __extension__.
      	(tree_not_check3): New.
      	(TREE_NOT_CHECK3): Use inline function above instead of __extension__.
      	(tree_check4): New.
      	(TREE_CHECK4): Use inline function above instead of __extension__.
      	(tree_not_check4): New.
      	(TREE_NOT_CHECK4): Use inline function above instead of __extension__.
      	(tree_check5): New.
      	(TREE_CHECK5): Use inline function above instead of __extension__.
      	(tree_not_check5): New.
      	(TREE_NOT_CHECK5): Use inline function above instead of __extension__.
      	(contains_struct_check): New.
      	(CONTAINS_STRUCT_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_class_check): New.
      	(TREE_CLASS_CHECK): Use inline function above instead of __extension__.
      	(tree_range_check): New.
      	(TREE_RANGE_CHECK): Use inline function above instead of __extension__.
      	(omp_clause_subcode_check): New.
      	(OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
      	__extension__.
      	(omp_clause_range_check): New.
      	(OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
      	__extension__.
      	(expr_check): New.
      	(EXPR_CHECK): Use inline function above instead of __extension__.
      	(non_type_check): New.
      	(NON_TYPE_CHECK): Use inline function above instead of __extension__.
      	(tree_vec_elt_check): New.
      	(TREE_VEC_ELT_CHECK): Use inline function above instead of
      	__extension__.
      	(omp_clause_elt_check): New.
      	(OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_operand_check): New.
      	(TREE_OPERAND_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_operand_check_code): New.
      	(TREE_OPERAND_CHECK_CODE): Use inline function above instead of
      	__extension__.
      	(TREE_CHAIN): Simplify implementation.
      	(TREE_TYPE): Simplify implementation.
      	(tree_operand_length): Move for compilation dependences.
      	* gdbinit.in: (macro define __FILE__): New.
      	(macro define __LINE__): New.
      	(skip "tree.h"): New.
      
      gcc/cp/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Re-write VEC in C++.
      
      	* call.c (add_function_candidate): Remove const qualifier
      	from call to VEC_index.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* go-gcc.cc: Likewise.
      	* go-system.h: Likewise.
      
      From-SVN: r190402
      0823efed
  32. Jul 30, 2012
    • Laurynas Biveinis's avatar
      gengtype.c (adjust_field_type): Diagnose duplicate "length" option... · c0fd3497
      Laurynas Biveinis authored
      gengtype.c (adjust_field_type): Diagnose duplicate "length" option applications and option being applied to...
      
      gcc:
      2012-07-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      	    Steven Bosscher  <steven@gcc.gnu.org>
      
      	* gengtype.c (adjust_field_type): Diagnose duplicate "length"
      	option applications and option being applied to arrays of atomic
      	types.
      	(walk_type): Allow "atomic" option on strings too.
      	* dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option
      	for the array field.
      	* vec.h: Describe the atomic object "A" type of the macros in
      	the header comment.
      	(VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define.
      	* emit-rtl.c (locations_locators_vals): use the atomic object
      	vector.
      	* doc/gty.texi: Clarify that GTY option "length" is only for
      	arrays of non-atomic objects.  Fix typo in the description of the
      	"atomic" option.
      
      gcc/java:
      2012-07-24  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* jcf.h (CPool): Use the "atomic" GTY option for the tags field.
      	(bootstrap_method): Likewise for the bootstrap_arguments field.
      
      libcpp:
      2012-07-24  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* include/line-map.h (line_map_macro): Use the "atomic" GTY option
      	for the macro_locations field.
      
      Co-Authored-By: default avatarSteven Bosscher <steven@gcc.gnu.org>
      
      From-SVN: r189951
      c0fd3497
  33. Jun 19, 2012
  34. Jun 13, 2012
Loading