1. 22 Dec, 2014 14 commits
    • re PR libstdc++/60271 ([DR2369] [C++1y] std::max(initializer_list<T>) cannot use std::max_element) · 8dff34fe
      2014-12-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
      
      	PR libstdc++/60271
      	C++14 constexpr min, max, minmax, min_element, max_element
      	and minmax_element. Also constexpr for 20.9.5-20.9.9,
      	aka various library functors.
      	* include/bits/c++config: Add _GLIBCXX14_CONSTEXPR.
      	* include/bits/algorithmfwd.h (min, max, minmax, min_element,
      	max_element): Use it.
      	* include/bits/predefined_ops.h (_Iter_less_iter, __iter_less_iter,
      	_Iter_comp_iter, __iter_comp_iter): Likewise.
      	* include/bits/stl_algo.h (minmax, __minmax_element, minmax_element,
      	min, max, __min_element, min_element, __max_element, max_element)
      	Likewise.
      	* include/bits/stl_algobase.h (min, max): Likewise.
      	* include/bits/stl_function.h (plus, minus, multiplies, divides,
      	modulus, negate, equal_to, not_equal_to, greater, less, greater_equal,
      	less_equal, logical_and, logical_or, logical_not, bit_and, bit_or,
      	bit_xor, bit_not, unary_negate, not1, binary_negate, not2): Likewise.
      	* testsuite/20_util/function_objects/constexpr.cc: New.
      	* testsuite/25_algorithms/max/constexpr.cc: Likewise.
      	* testsuite/25_algorithms/max_element/constexpr.cc: Likewise.
      	* testsuite/25_algorithms/min/constexpr.cc: Likewise.
      	* testsuite/25_algorithms/min_element/constexpr.cc: Likewise.
      	* testsuite/25_algorithms/minmax/constexpr.cc: Likewise.
      	* testsuite/25_algorithms/minmax_element/constexpr.cc: Likewise.
      	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.
      
      From-SVN: r219015
      Ville Voutilainen committed
    • status_cxx2011.xml: Update. · 3f5f1018
      	* doc/xml/manual/status_cxx2011.xml: Update.
      	* doc/html/manual/status.html: Regenerate.
      
      From-SVN: r219014
      Jonathan Wakely committed
    • re PR libstdc++/54354 (TODO extended iomanip manipulators std::get_time and… · 0de0b10c
      re PR libstdc++/54354 (TODO extended iomanip manipulators std::get_time and std::put_time (C++11, section 27.7.5))
      
      2014-12-22  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
      
      	PR libstdc++/54354
      	* include/std/iomanip (_Get_time): New struct.
      	(get_time): New manipulator.
      	(operator<<): New overloaded function.
      	* testsuite/27_io/manipulators/extended/get_time/char/1.cc: New.
      	* testsuite/27_io/manipulators/extended/get_time/char/2.cc: New.
      	* testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc: New.
      	* testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: New.
      
      From-SVN: r219013
      Rüdiger Sonderfeld committed
    • re PR libstdc++/60396 (Missing time_get<>::get() functions) · e869c090
      2014-12-22  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
      	    Jonathan Wakely  <jwakely@redhat.com>
      
      	PR libstdc++/60396
      	* config/abi/pre/gnu.ver: Add new exports.
      	* include/bits/locale_facets_nonio.h (time_get::get): New overloads.
      	(time_get::do_get):  New virtual function.
      	* include/bits/locale_facets_nonio.tcc (time_get::get): Define.
      	(time_get::do_get): Define.
      	* src/c++11/string-inst.cc (time_get::get, time_get::do_get): Add
      	C++11-only instantiations.
      	* testsuite/22_locale/time_get/get/char/1.cc: New.
      	* testsuite/22_locale/time_get/get/char/2.cc: New.
      	* testsuite/22_locale/time_get/get/wchar_t/1.cc: New.
      	* testsuite/22_locale/time_get/get/wchar_t/2.cc: New.
      
      Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
      
      From-SVN: r219012
      Rüdiger Sonderfeld committed
    • * gnat.dg/nan_max.adb: New test. · 1d3a0146
      From-SVN: r219011
      Eric Botcazou committed
    • trans.c (Attribute_to_gnu): If the type is a floating-point type... · 881cdd61
      	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_{Min,Max}>: If the
      	type is a floating-point type, implement the semantics of the C99
      	f{min,max} routines with regard to NaNs.
      	(gnat_to_gnu): Call builtin_decl_implicit.
      	* gcc-interface/utils2.c (compare_arrays): Adjust comments.
      
      From-SVN: r219010
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_field): Post the error message for parent overlapping on the… · 35786aad
      decl.c (gnat_to_gnu_field): Post the error message for parent overlapping on the position instead of on the...
      
      	* gcc-interface/decl.c (gnat_to_gnu_field): Post the error message
      	for parent overlapping on the position instead of on the first bit.
      	For a field that needs strict alignment, issue the error for the
      	position first and, for the size, issue an error if it is too large
      	only for the atomic and aliased cases.  Issue a specific error if
      	the size is not a multiple of a byte in the volatile and the stric
      	alignment cases.
      
      From-SVN: r219009
      Eric Botcazou committed
    • re PR rtl-optimization/62151 (wrong code at -O2 and -O3 on x86_64-linux-gnu) · ae9f4345
      
      	PR rtl-optimization/62151
      	* combine.c (try_combine): New local variables local_elim_i1
      	and local_elim_i0.  Set elim_i1 and elim_i0 using the local
      	version variables.  Distribute notes from i0notes or i1notes
      	using the local variables.
      
      	gcc/testsuite/ChangeLog
      	PR rtl-optimization/62151
      	* gcc.c-torture/execute/pr62151.c: New test.
      
      From-SVN: r219008
      Bin Cheng committed
    • decl.c (check_ok_for_atomic): Rename into... · 86a8ba5b
      	* gcc-interface/decl.c (check_ok_for_atomic): Rename into...
      	(check_ok_for_atomic_type): ...this.  When checking the mode, also
      	check that the type is sufficient aligned.  Remove useless code and
      	tidy up implementation.
      	(gnat_to_gnu_entity): Adjust to above renaming.
      	(gnat_to_gnu_component_type): Likewise.
      	(gnat_to_gnu_field): Likewise.
      
      From-SVN: r219007
      Eric Botcazou committed
    • symbol_summary is used for inline_summary. · 9a1e784a
      	* lto-partition.c (add_symbol_to_partition_1): New inline_summaries
      	is used.
      	(undo_partition): Likewise.
      	(lto_balanced_map): Likewise.
      	* cgraphunit.c (symbol_table::process_new_functions): New inline_summaries
      	is used.
      	* ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
      	(devirtualization_time_bonus): Likewise.
      	(estimate_local_effects): Likewise.
      	(ipcp_propagate_stage): Likewise.
      	* ipa-inline-analysis.c (evaluate_conditions_for_known_args): Likewise.
      	(evaluate_properties_for_edge): Likewise.
      	(inline_summary_alloc): Likewise.
      	(reset_inline_summary): New inline_summary argument is introduced.
      	(inline_summary_t::remove): New function.
      	(inline_summary_t::duplicate): Likewise.
      	(dump_inline_edge_summary): New inline_summaries is used.
      	(dump_inline_summary): Likewise.
      	(estimate_function_body_sizes): Likewise.
      	(compute_inline_parameters): Likewise.
      	(estimate_edge_devirt_benefit): Likewise.
      	(estimate_node_size_and_time): Likewise.
      	(inline_update_callee_summaries): Likewise.
      	(inline_merge_summary): Likewise.
      	(inline_update_overall_summary): Likewise.
      	(simple_edge_hints): Likewise.
      	(do_estimate_edge_time): Likewise.
      	(estimate_time_after_inlining): Likewise.
      	(estimate_size_after_inlining): Likewise.
      	(do_estimate_growth): Likewise.
      	(growth_likely_positive): Likewise.
      	(inline_generate_summary): Likewise.
      	(inline_read_section): Likewise.
      	(inline_read_summary): Likewise.
      	(inline_write_summary): Likewise.
      	(inline_free_summary): Likewise.
      	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
      	(inline_call): Likewise.
      	* ipa-inline.c (caller_growth_limits): Likewise.
      	(can_inline_edge_p): Likewise.
      	(want_early_inline_function_p): Likewise.
      	(compute_uninlined_call_time): Likewise.
      	(compute_inlined_call_time): Likewise.
      	(big_speedup_p): Likewise.
      	(want_inline_small_function_p): Likewise.
      	(edge_badness): Likewise.
      	(update_caller_keys): Likewise.
      	(update_callee_keys): Likewise.
      	(recursive_inlining): Likewise.
      	(inline_small_functions): Likewise.
      	(inline_to_all_callers): Likewise.
      	(dump_overall_stats): Likewise.
      	(early_inline_small_functions): Likewise.
      	* ipa-inline.h: New class inline_summary_t replaces
      	vec<inline_summary_t>.
      	* ipa-split.c (execute_split_functions): New inline_summaries is used.
      	* ipa.c (walk_polymorphic_call_targets): Likewise.
      	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
      
      From-SVN: r219006
      Martin Liska committed
    • ipa-prop uses symbol_summary class. · dd912cb8
      	* lto-partition.c: Include of symbol-summary.h is added.
      	* lto-symtab.c: Likewise.
      	* lto.c: Likewise.
      	* auto-profile.c: Include of symbol-summary.h is added.
      	* cgraph.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-analysis.c (evaluate_properties_for_edge): New
      	ipa_node_params_sum data structure is used.
      	(inline_node_duplication_hook): Likewise.
      	(estimate_function_body_sizes): Likewise.
      	(remap_edge_change_prob): Likewise.
      	(inline_merge_summary): Likewise.
      	* ipa-inline-transform.c: Include of symbol-summary.h is added.
      	* ipa-inline.c (early_inliner): New ipa_node_params_sum data structure
      	is used.
      	* ipa-polymorphic-call.c: Include of symbol-summary.h is added.
      	* ipa-profile.c: Include of symbol-summary.h is added.
      	* ipa-prop.c (ipa_propagate_indirect_call_infos): New ipa_node_params_sum
      	data structure is used.
      	(ipa_node_params::~ipa_node_params): New function.
      	(ipa_free_all_node_params): Destruction is simplified.
      	(ipa_node_removal_hook): Removed.
      	(ipa_add_new_function): Renamed from ipa_node_duplication_hook.
      	(ipa_node_params_t::duplicate): New function.
      	(ipa_register_cgraph_hooks): Few hooks are removed.
      	(ipa_unregister_cgraph_hooks): Likewise.
      	(ipa_prop_write_jump_functions): New ipa_node_params_sum is used.
      	* ipa-prop.h (struct ipa_node_params): Destructor introduced for
      	the structure.
      	(ipa_check_create_node_params): Vector for ipa_node_params is replaced
      	with function_summary.
      	* ipa-split.c: Include of symbol-summary.h is added.
      	* ipa-utils.c: Include of symbol-summary.h is added.
      	* ipa.c: Include of symbol-summary.h is added.
      	* omp-low.c: Include of symbol-summary.h is added.
      	* tree-inline.c: Include of symbol-summary.h is added.
      	* tree-sra.c: Include of symbol-summary.h is added.
      	* tree-ssa-pre.c: Include of symbol-summary.h is added.
      
      From-SVN: r219005
      Martin Liska committed
    • New symbol_summary class introduced. · 4008290f
      	* cgraph.h (symbol_table::allocate_cgraph_symbol): Summary UID
      	is filled up.
      	* symbol-summary.h: New file.
      	* gengtype.c (open_base_files): Add symbol-summary.h.
      	* toplev.c (general_init): Call constructor of symbol_table.
      
      From-SVN: r219004
      Martin Liska committed
    • Add myself to RTEMS Ports maintainers. · fe55e976
      ChangeLog
      	* MAINTAINERS (RTEMS Ports): Add myself.
      
      From-SVN: r219003
      Sebastian Huber committed
    • Daily bump. · b46a4f4d
      From-SVN: r219002
      GCC Administrator committed
  2. 21 Dec, 2014 5 commits
  3. 20 Dec, 2014 9 commits
  4. 19 Dec, 2014 12 commits
    • Fix casting non-"int" to bool. · e8af59bc
      gcc/jit/ChangeLog:
      	* jit-playback.c (gcc::jit::playback::context::build_cast): In
      	case BOOLEAN_TYPE, don't assume that the source expression is
      	of type "int".
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/test-expressions.c (make_tests_of_casts): Add tests of
      	casting between "long" and "bool".
      	(verify_casts): Verify these new test cases.
      
      From-SVN: r218977
      David Malcolm committed
    • hash-table.h (struct pointer_hash): Fix formating. · 6db4bc6e
      
      	* hash-table.h (struct pointer_hash): Fix formating.
      	(hash_table_higher_prime_index): Declare pure.
      	(hash_table_mod2, hash_table_mod1, mul_mod): Move inline;
      	assume that uint64_t always exists.
      	(hash_table<Descriptor, Allocator, false>): Use gcc_checking_assert.
      	(hash_table<Descriptor, Allocator, false>::expand ()): Fix formating.
      	(hash_table<Descriptor, Allocator, false>::clear_slot (value_type **slot)):
      	Use checking assert.
      	* hash-table.c: Remove #if 0 code.
      	(hash_table_higher_prime_index): Use gcc_assert.
      	(mul_mod, hash-table_mod1, hash_table_mod2): move to hash-table.h
      
      From-SVN: r218976
      Jan Hubicka committed
    • MIPSR6: mips-img-elf mips-img-linux-gnu triplets and vendor updates · 58c9330b
      gcc/
      
      	* config.gcc: Support mips*-img-linux* and mips*-img-elf*.
      	* config/mips/mti-linux.h: Support mips32r6 as being the default arch.
      	* config/mips/t-img-elf: New.
      	* config/mips/t-img-linux: New.
      
      gcc/testsuite/
      
      	* gcc.target/mips/pr37362.c: Skip for mips-img-elf.
      
      From-SVN: r218975
      Matthew Fortune committed
    • go-gcc.cc (array_constructor_expression): Don't construct arrays of zero-sized values. · 943cf9cf
      	* go-gcc.cc (array_constructor_expression): Don't construct arrays
      	of zero-sized values.
      
      From-SVN: r218974
      Chris Manghane committed
    • MIPS32R6 and MIPS64R6 support · 82f84ecb
      gcc/
      
      	* config.gcc: Add mipsisa64r6 and mipsisa32r6 cpu support.
      	* config/mips/constraints.md (ZD): Add r6 restrictions.
      	* config/mips/gnu-user.h (DRIVER_SELF_SPECS): Add MIPS_ISA_LEVEL_SPEC.
      	* config/mips/loongson.md
      	(<u>div<mode>3, <u>mod<mode>3): Move to mips.md.
      	* config/mips/mips-cpus.def (mips32r6, mips64r6): Define.
      	* config/mips/mips-modes.def (CCF): New mode.
      	* config/mips/mips-protos.h
      	(mips_9bit_offset_address_p): New prototype.
      	* config/mips/mips-tables.opt: Regenerate.
      	* config/mips/mips.c (MIPS_JR): Use JALR $, <reg> for R6.
      	(mips_rtx_cost_data): Add pseudo-processors W32 and W64.
      	(mips_9bit_offset_address_p): New function.
      	(mips_rtx_costs): Account for R6 multiply and FMA instructions.
      	(mips_emit_compare): Implement R6 FPU comparisons.
      	(mips_expand_conditional_move): Implement R6 selects.
      	(mips_expand_conditional_trap): Account for removed trap immediate.
      	(mips_expand_block_move): Disable inline move when LWL/LWR are removed.
      	(mips_print_float_branch_condition): Update for R6 FPU branches.
      	(mips_print_operand): Handle CCF mode compares.
      	(mips_interrupt_extra_call_saved_reg_p): Do not attempt to callee-save
      	MD_REGS for R6.
      	(mips_hard_regno_mode_ok_p): Support CCF mode.
      	(mips_mode_ok_for_mov_fmt_p): Likewise.
      	(mips_secondary_reload_class): CCFmode can be loaded directly.
      	(mips_set_fast_mult_zero_zero_p): Account for R6 multiply instructions.
      	(mips_option_override): Ensure R6 is used with fp64.  Set default
      	mips_nan modes.  Check for mips_nan support.  Prevent DSP with R6.
      	(mips_conditional_register_usage): Disable MD_REGS for R6. Disable
      	FPSW for R6.
      	(mips_mulsidi3_gen_fn): Support R6 multiply instructions.
      	* config/mips/mips.h (ISA_MIPS32R6, ISA_MIPS64R6): Define.
      	(TARGET_CPU_CPP_BUILTINS): Rework for mips32/mips64.
      	(ISA_HAS_JR): New macro.
      	(ISA_HAS_HILO): New macro.
      	(ISA_HAS_R6MUL): Likewise.
      	(ISA_HAS_R6DMUL): Likewise.
      	(ISA_HAS_R6DIV): Likewise.
      	(ISA_HAS_R6DDIV): Likewise.
      	(ISA_HAS_CCF): Likewise.
      	(ISA_HAS_SEL): Likewise.
      	(ISA_HAS_COND_TRAPI): Likewise.
      	(ISA_HAS_FP_MADDF_MSUBF): Likewise.
      	(ISA_HAS_LWL_LWR): Likewise.
      	(ISA_HAS_IEEE_754_LEGACY): Likewise.
      	(ISA_HAS_IEEE_754_2008): Likewise.
      	(ISA_HAS_PREFETCH_9BIT): Likewise.
      	(MIPSR6_9BIT_OFFSET_P): New macro.
      	(BASE_DRIVER_SELF_SPECS): Use MIPS_ISA_DRIVER_SELF_SPECS.
      	(DRIVER_SELF_SPECS): Use MIPS_ISA_LEVEL_SPEC.
      	(MULTILIB_ISA_DEFAULT): Handle mips32r6 and mips64r6.
      	(MIPS_ISA_LEVEL_SPEC): Likewise.
      	(MIPS_ISA_SYNCI_SPEC): Likewise.
      	(ISA_HAS_64BIT_REGS): Likewise.
      	(ISA_HAS_BRANCHLIKELY): Likewise.
      	(ISA_HAS_MUL3): Likewise.
      	(ISA_HAS_DMULT): Likewise.
      	(ISA_HAS_DDIV): Likewise.
      	(ISA_HAS_DIV): Likewise.
      	(ISA_HAS_MULT): Likewise.
      	(ISA_HAS_FP_CONDMOVE): Likewise.
      	(ISA_HAS_8CC): Likewise.
      	(ISA_HAS_FP4): Likewise.
      	(ISA_HAS_PAIRED_SINGLE): Likewise.
      	(ISA_HAS_MADD_MSUB): Likewise.
      	(ISA_HAS_FP_RECIP_RSQRT): Likewise.
      	* config/mips/mips.md (processor): Add w32 and w64.
      	(FPCC): New mode iterator.
      	(reg): Add CCF mode.
      	(fpcmp): New mode attribute.
      	(fcond): Add ordered, ltgt and ne codes.
      	(fcond): Update code attribute.
      	(sel): New code attribute.
      	(selinv): Likewise.
      	(ctrap<mode>4): Update condition.
      	(*conditional_trap_reg<mode>): New define_insn.
      	(*conditional_trap<mode>): Update condition.
      	(mul<mode>3): Expand R6 multiply instructions.
      	(<su>mulsi3_highpart): Likewise.
      	(<su>muldi3_highpart): Likewise.
      	(mul<mode>3_mul3_loongson): Rename...
      	(mul<mode>3_mul3_hilo): To this.  Add R6 mul instruction.
      	(<u>mulsidi3_32bit_r6): New expander.
      	(<u>mulsidi3_32bit): Restrict to pre-r6 multiplies.
      	(<u>mulsidi3_32bit_r4000): Likewise.
      	(<u>mulsidi3_64bit): Likewise.
      	(<su>mulsi3_highpart_internal): Likewise.
      	(mulsidi3_64bit_r6dmul): New instruction.
      	(<su>mulsi3_highpart_r6): Likewise.
      	(<su>muldi3_highpart_r6): Likewise.
      	(fma<mode>4): Likewise.
      	(movccf): Likewise.
      	(*sel<code><GPR:mode>_using_<GPR2:mode>): Likewise.
      	(*sel<mode>): Likewise.
      	(<u>div<mode>3): Moved from loongson.md.  Add R6 instructions.
      	(<u>mod<mode>3): Likewise.
      	(extvmisalign<mode>): Require ISA_HAS_LWL_LWR.
      	(extzvmisalign<mode>): Likewise.
      	(insvmisalign<mode>): Likewise.
      	(mips_cache): Account for R6 displacement field sizes.
      	(*branch_fp): Rename...
      	(*branch_fp_<mode>): To this.  Add CCFmode support.
      	(*branch_fp_inverted): Rename...
      	(*branch_fp_inverted_<mode>): To this.  Add CCFmode support.
      	(s<code>_<mode>): Rename...
      	(s<code>_<SCALARF:mode>_using_<FPCC:mode>): To this.  Add FCCmode
      	condition support.
      	(s<code>_<mode> swapped): Rename...
      	(s<code>_<SCALARF:mode>_using_<FPCC:mode> swapped): To this. Add
      	CCFmode condition support.
      	(mov<mode>cc GPR): Expand R6 selects.
      	(mov<mode>cc FPR): Expand R6 selects.
      	(*tls_get_tp_<mode>_split): Do not .set push for >= mips32r2.
      	* config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Update similarly to
      	mips.h.
      	(ASM_SPEC): Add mips32r6, mips64r6.
      	* config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Update
      	for mips32r6/mips64r6.
      	* doc/invoke.texi: Document -mips32r6,-mips64r6.
      	* doc/md.texi: Update comment for ZD constraint.
      
      libgcc/
      
      	* config.host: Support mipsisa32r6 and mipsisa64r6.
      	* config/mips/mips16.S: Do not build for R6.
      
      gcc/testsuite/
      
      	* gcc.dg/torture/mips-hilo-2.c: Unconditionally pass for R6 onwards.
      	* gcc.dg/torture/pr19683-1.c: Likewise.
      	* gcc.target/mips/branch-cost-2.c: Require MOVN.
      	* gcc.target/mips/movcc-1.c: Likewise.
      	* gcc.target/mips/movcc-2.c: Likewise.
      	* gcc.target/mips/movcc-3.c: Likewise.
      	* gcc.target/mips/call-saved-4.c: Require LDC.
      	* gcc.target/mips/dmult-1.c: Require R5 or earlier.
      	* gcc.target/mips/fpcmp-1.c: Likewise.
      	* gcc.target/mips/fpcmp-2.c: Likewise.
      	* gcc.target/mips/neg-abs-2.c: Likewise.
      	* gcc.target/mips/timode-1.c: Likewise.
      	* gcc.target/mips/unaligned-1.c: Likewise.
      	* gcc.target/mips/madd-3.c: Require MADD.
      	* gcc.target/mips/madd-9.c: Likewise.
      	* gcc.target/mips/maddu-3.c: Likewise.
      	* gcc.target/mips/msub-3.c: Likewise.
      	* gcc.target/mips/msubu-3.c: Likewise.
      	* gcc.target/mips/mult-1.c: Require INS and not DMUL.
      	* gcc.target/mips/mips-ps-type-2.c: Require MADD.PS.
      	* gcc.target/mips/mips.exp (mips_option_groups): Add ins, dmul, ldc,
      	movn, madd, maddps.
      	(mips-dg-options): INS available from R2.  LDC available from MIPS II,
      	DMUL is present in octeon.  Describe all features removed from R6.
      
      Co-Authored-By: Steve Ellcey <sellcey@imgtec.com>
      
      From-SVN: r218973
      Matthew Fortune committed
    • Fix issue with string options and nested gcc_jit_contexts · 5afd44e3
      gcc/jit/ChangeLog:
      	* jit-recording.c (gcc::jit::recording::context::context): When
      	copying string options from a parent context, take a copy of the
      	underlying buffers, rather than simply copying the pointer.
      
      From-SVN: r218972
      David Malcolm committed
    • re PR target/64268 (bootstrap failure (ICE in wide_int_to_tree, at tree.c:1438)… · 3eb239f4
      re PR target/64268 (bootstrap failure (ICE in wide_int_to_tree, at tree.c:1438) on powerpc in libgcc, stage2)
      
      	PR target/64268
      	* combine.c (try_combine): Immediately return if any of I0,I1,I2
      	are the same insn.
      
      From-SVN: r218971
      Segher Boessenkool committed
    • Handle NULL in gcc_jit_context_set_str_option · 1f0858d7
      gcc/jit/ChangeLog:
      	* jit-recording.c (gcc::jit::recording::context::set_str_option):
      	Handle NULL.
      
      From-SVN: r218969
      David Malcolm committed
    • re PR fortran/64209 ([OOP] runtime segfault with CLASS(*), INTENT(OUT) dummy argument) · 375550c6
      2014-12-19  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/64209
      	* trans-expr.c (gfc_trans_class_array_init_assign): Check if _def_init
      	component is non-NULL.
      	(gfc_trans_class_init_assign): Ditto.
      
      2014-12-19  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/64209
      	* gfortran.dg/unlimited_polymorphic_19.f90: New.
      
      From-SVN: r218968
      Janus Weil committed
    • New std::string implementation. · 34a2b755
      	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_CXX11_ABI): Remove.
      	(GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI, GLIBCXX_DEFAULT_ABI): Add.
      	* configure.ac: Use new macros.
      	* configure: Regenerate.
      	* Makefile.in: Regenerate.
      	* doc/Makefile.in: Regenerate.
      	* libsupc++/Makefile.in: Regenerate.
      	* po/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      	* include/Makefile.am: Set _GLIBCXX_USE_DUAL_ABI.
      	* include/Makefile.in: Regenerate.
      	* config/abi/pre/gnu.ver: Export symbols related to new std::string.
      	Tighten old patterns to not match new symbols.
      	* config/locale/generic/monetary_members.cc: Guard some definitions
      	to not compile with new ABI.
      	* config/locale/gnu/monetary_members.cc: Likewise.
      	* config/locale/gnu/numeric_members.cc: Prevent double-free.
      	* config/os/gnu-linux/ldbl-extra.ver: Add new __gnu_cxx_ldbl128
      	exports. Tighten old patterns.
      	* doc/xml/manual/configure.xml: Document new configure options.
      	* doc/html/*: Regenerate.
      	* include/bits/basic_string.h (__cxx11::basic_string): Define new
      	non-reference-counted implementation in inline namespace __cxx11.
      	(stoi, stol, stoll, stof, stod, stold, to_string): Conditionally use
      	inline namespace.
      	(literals::string_literals::operator"): Conditionally use abi-tag.
      	* include/bits/basic_string.tcc (__cxx11::basic_string): Define.
      	* include/bits/c++config: Define _GLIBCXX_USE_DUAL_ABI and
      	LDBL_CXX11_ABI namespace macros.
      	* include/bits/locale_classes.h (locale::name()): Use abi_tag when
      	new ABI is in use.
      	(locale::_S_twinned_facets): New static member.
      	(locale::facet::__shim): Declare new type.
      	(locale::_facet::_M_sso_shim, locale::_facet::_M_cow_shim): New
      	functions for creating shims.
      	(locale::_Impl::_M_facet_unchecked): New member function for use
      	during construction.
      	(locale::_Impl::_M_init_extra): New member functions to create second
      	version of some facets.
      	(collate, collate_byname): Use abi_tag when new ABI is in use.
      	* include/bits/locale_facets.h: Add _GLIBCXX_NUM_CXX11_FACETS macro.
      	(numpunct, numpunct_byname): Use __cxx11 namespace.
      	(num_get::_M_extract_float, num_get::_M_extract_int): Use abi_tag
      	when new ABI is in use.
      	(num_get::__do_get, num_put::__do_put): Do not declare long double
      	compat functions for new ABI.
      	* include/bits/locale_facets.tcc (num_get, num_put): Use abi_tag on
      	definitions.
      	(numpunct, numpunct_byname): Qualify explicit instantiations.
      	* include/bits/locale_facets_nonio.h (time_get, time_get_byname,
      	moneypunct, moneypunct_byname, money_get, money_put, messages,
      	messages_byname): Use new inline namespace macros.
      	(money_get::__do_get, money_put::__do_put): Do not declare long
      	double compat functions for new ABI.
      	* include/bits/locale_facets_nonio.tcc (money_get, money_put): Use
      	new namespace macros.
      	(money_get::__do_get, money_put::__do_put): Do not define for new ABI.
      	* include/bits/localefwd.h (numpunct, numpunct_byname, collate,
      	collate_byname, time_get, time_get_byname, moneypunct,
      	moneypunct_byname, money_get, money_put, messages, messages_byname):
      	Use new namespace macros.
      	* include/bits/regex.h: Use inline namespace macros.
      	* include/bits/stl_list.h (_List_base, list): Use inline namespace
      	instead of abi-tag.
      	* include/bits/stringfwd.h (basic_string): Use namespace macros.
      	* include/std/iosfwd (basic_stringbuf, basic_istringstream,
      	basic_ostringstream, basic_stringstream): Likewise.
      	* include/std/sstream: Likewise.
      	(basic_stringbuf::__xfer_bufptrs): Update streambuf pointers on move.
      	* include/std/stdexcept (__cow_string, __sso_string): New types for
      	indirectly using std::string with either ABI.
      	(logic_error, runtime_error): Replace std::string member with
      	__cow_string when new ABI is in use. Declare non-inline copy
      	constructor and assignment operator. Declare const char* constructors.
      	(domain_error, invalid_argument, length_error, out_of_range,
      	range_error, overflow_error, underflow_error): Declare const char*
      	constructors.
      	* include/std/system_error (error_category): Replace with new
      	definition in inline namespace _V2.
      	(error_code::message, error_condition::message): Use abi_tag on
      	functions returning std::string.
      	* python/libstdcxx/v6/printers.py (StdStringPrinter): Handle new ABI.
      	* src/c++11/Makefile.am: Add new files.
      	* src/c++11/Makefile.in: Regenerate.
      	* src/c++11/compatibility-c++0x.cc: Compile with old std::string ABI.
      	Define old error_category symbols.
      	* src/c++11/cow-fstream-inst.cc: New. Instantiate fstream members
      	using old std::string ABI.
      	* src/c++11/cow-locale_init.cc (locale::_Impl::_M_init_extra): Define.
      	* src/c++11/cow-shim_facets.cc: Define shim facets using old ABI.
      	* src/c++11/cow-sstream-inst.cc: Instantiate stringstreams using old
      	std::string ABI.
      	* src/c++11/cow-stdexcept.cc: Define new constructors and assignment
      	operators.
      	(__cow_string, error_category::_M_message): Define.
      	* src/c++11/cow-string-inst.cc: Explicit instantiations using old
      	std::string. Include src/c++98/istream-string.cc.
      	* src/c++11/cow-wstring-inst.cc: Explicit instantiations using old
      	std::wstring.
      	* src/c++11/cxx11-hash_tr1.cc: Explicit instantiations using new
      	string.
      	* src/c++11/cxx11-ios_failure.cc: Add sanity check.
      	* src/c++11/cxx11-locale-inst.cc: Instantiate facets using new
      	std::string.
      	* src/c++11/cxx11-shim_facets.cc: Define shim facets using new ABI.
      	* src/c++11/cxx11-stdexcept.cc: Define constructors taking new
      	std::string.
      	* src/c++11/cxx11-wlocale-inst.cc: Instantiate facets using
      	new std::wstring.
      	* src/c++11/fstream-inst.cc: Compile with new ABI.
      	* src/c++11/functexcept.cc: Compile with old ABI.
      	* src/c++11/random.cc: Compile with new ABI.
      	* src/c++11/sstream-inst.cc: Compile with new ABI.
      	* src/c++11/string-inst.cc: Explicit instantiations for new string.
      	* src/c++11/system_error.cc (__sso_string, error_category::_M_message):
      	Define.
      	* src/c++11/wstring-inst.cc: Compile with new ABI.
      	* src/c++98/Makefile.am: Compile some host files twice for old and
      	new std::string. Add new files.
      	* src/c++98/Makefile.in: Regenerate.
      	* src/c++98/compatibility-ldbl.cc: Compile with old ABI.
      	* src/c++98/compatibility.cc: Likewise.
      	* src/c++98/concept-inst.cc: Likewise.
      	* src/c++98/hash_tr1.cc: Likewise.
      	* src/c++98/istream-string.cc: New file defining functions that
      	work with istream and std::string moved from ...
      	* src/c++98/istream.cc: ... here.
      	* src/c++98/cow-istream-string.cc: Recompile istream-string.cc with
      	old ABI.
      	* src/c++98/locale-inst.cc: Adjust facet instantiations to work for
      	either ABI.
      	* src/c++98/locale.cc (locale::_M_install_facet,
      	locale::_M_install_cache): Handle twinned facets.
      	* src/c++98/locale-facets.cc: Compile with old std::string ABI.
      	(__verify_grouping): Define new overload and old std::string version.
      	* src/c++98/locale_init.cc: Initialize twinned facets.
      	* src/c++98/localename.cc: Likewise.
      	* src/c++98/misc-inst.cc: Instantiate C++98-only std::string members.
      	(__verify_grouping): Define new std::string version.
      	* src/c++98/stdexcept.cc: Compile with old std::string ABI.
      	* src/c++98/wlocale-inst.cc: Likewise.
      	* testsuite/18_support/50594.cc: Adjust to work with SSO strings.
      	* testsuite/21_strings/basic_string/capacity/1.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/char/1.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/char/18654.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/char/2.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: Likewise.
      	* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
      	Likewise.
      	* testsuite/21_strings/headers/string/synopsis.cc: Use inline
      	namespace macros.
      	* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
      	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Set dg-options so
      	correct exception type can be caught.
      	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
      	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
      	exceptions_failbit.cc: Likewise.
      	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
      	exceptions_failbit.cc: Likewise.
      	* testsuite/27_io/basic_istream/extractors_other/char/
      	exceptions_null.cc: Likewise.
      	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
      	exceptions_null.cc: Likewise.
      	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
      	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
      	* testsuite/27_io/basic_ostream/inserters_other/char/
      	exceptions_null.cc: Likewise.
      	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
      	exceptions_null.cc: Likewise.
      	* testsuite/27_io/ios_base/storage/2.cc: Likewise.
      	* testsuite/27_io/ios_base/failure/cxx11.cc: Disable for old ABI.
      	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.
      	* testsuite/libstdc++-prettyprinters/libfundts.cc: Use old ABI.
      	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
      	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
      	* testsuite/util/exception/safety.h: Adjust member function types
      	for new std::string.
      	* testsuite/util/testsuite_abi.cc: Add new version and ignore
      	__float128 symbols in __cxx11 namespace.
      
      From-SVN: r218964
      Jonathan Wakely committed
    • 2014-12-19 Paolo Carlini <paolo.carlini@oracle.com> · 5dcfa0b6
      	* Tweak ChangeLog.
      
      From-SVN: r218963
      Paolo Carlini committed