Commit Graph

135673 Commits

Author SHA1 Message Date
GCC Administrator
03267abb35 Daily bump.
From-SVN: r219053
2014-12-24 00:16:33 +00:00
Jonathan Wakely
28630cd6bc Compile locale-inst.cc and wlocale-inst.cc as C++11.
PR libstdc++/64389
	* src/c++11/Makefile.am: Add locale-inst.cc and wlocale-inst.cc.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++11/locale-inst.cc: Move from src/c++98/.
	* src/c++11/wlocale-inst.cc: Likewise.
	* src/c++11/cxx11-locale-inst.cc: Adjust path to locale-inst.cc.
	* src/c++11/string-inst.cc: Remove time_get instantiations.
	* src/c++98/Makefile.am: Remove locale-inst.cc and wlocale-inst.cc.
	* src/c++98/Makefile.in: Regenerate.
	* src/c++98/locale-inst.cc: Move to src/c++11/.
	* src/c++98/wlocale-inst.cc: Likewise.

From-SVN: r219050
2014-12-23 23:30:33 +00:00
Ian Lance Taylor
bca4b95c4a runtime: Remove undefined references to runtime_race*.
From-SVN: r219049
2014-12-23 20:33:53 +00:00
Zhouyi Zhou
3feb029833 ira-build.c (ira_flattening): Add the current object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
* ira-build.c (ira_flattening): Add the current
        object to OBJECTS_LIVE after traversing OBJECTS_LIVE.

From-SVN: r219046
2014-12-23 12:02:46 -07:00
Ian Lance Taylor
6a2cd809f7 compiler: Evaluate array range expression once before iteration.
Fixes issue 34.

From-SVN: r219045
2014-12-23 18:39:19 +00:00
Martin Liska
34b42fb0ea Fix for PR ipa/63851 and ipa/63852.
PR ipa/63851
	PR ipa/63852
	* ipa-icf.c (sem_function::merge): Ignore merge operation
	for a thunk created from static chain.
	* ipa-icf-gimple.c (func_checker::compatible_types_p): Verify that
	types have same restrict flag.

From-SVN: r219042
2014-12-23 09:30:20 +00:00
GCC Administrator
960389139b Daily bump.
From-SVN: r219041
2014-12-23 00:16:48 +00:00
John David Anglin
03ce701abb re PR target/55023 (hppa: wrong code generated with tail call optimisation)
PR target/55023
	* dse.c (scan_insn): Treat sibling call as though it does a wild read.
	* testsuite/gcc.dg/pr55023.c: New file.

From-SVN: r219037
2014-12-22 23:10:18 +00:00
Francois-Xavier Coudert
5341599ab6 * lib/ubsan-dg.exp: Add library path for libstdc++.
From-SVN: r219035
2014-12-22 21:57:45 +00:00
Tobias Burnus
69859058c7 trans-intrinsic.c (gfc_conv_intrinsic_caf_get, [...]): Fix vector handling.
2014-12-22  Tobias Burnus  <burnus@net-b.de>

        * trans-intrinsic.c (gfc_conv_intrinsic_caf_get, conv_caf_send):
        Fix vector handling.

From-SVN: r219034
2014-12-22 22:53:53 +01:00
Paolo Carlini
59aa28e80f basic_string.h: Fix _S_local_capacity for large sizeof(_CharT).
2014-12-22  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/basic_string.h: Fix _S_local_capacity for
	large sizeof(_CharT).

From-SVN: r219031
2014-12-22 18:58:44 +00:00
Oleg Endo
17839acd9d re PR target/58314 (SH4 error: 'asm' operand requires impossible reload)
gcc/testsuite/
	PR target/58314
	* gcc.target/sh/torture/pr58314-2.c: New.
	* gcc.target/sh/torture/pr58314.c: Don't set -Os option.

From-SVN: r219030
2014-12-22 18:53:44 +00:00
Janus Weil
0a6f14996a re PR fortran/63363 (No diagnostic for passing function as actual argument to KIND)
2014-12-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/63363
	* check.c (gfc_check_kind): Reject polymorphic and non-data arguments.

2014-12-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/63363
	* gfortran.dg/kind_1.f90: New.

From-SVN: r219027
2014-12-22 19:15:08 +01:00
Jonathan Wakely
f37f5fb81c re PR libstdc++/37522 (Incorrect vswprintf prototype breaks __to_xstring)
PR libstdc++/37522
	* include/bits/basic_string.h (stod, stof, stoi, stol, stold, stoll,
	stoul, stoull, to_string): Only use _GLIBCXX_HAVE_BROKEN_VSWPRINTF
	to guard definition of to_wstring.
	* testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
	Do not use dg-require-string-conversions.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/
	stoull.cc: Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/
	to_string.cc: Likewise.

From-SVN: r219019
2014-12-22 16:41:39 +00:00
Oleg Endo
08d54510cc re PR target/52933 (SH Target: Use div0s for integer sign comparisons)
gcc/testsuite/
	PR target/52933
	* gcc.target/sh/sh/pr52933-3.c: New.

From-SVN: r219017
2014-12-22 16:19:11 +00:00
Ville Voutilainen
8dff34fe8e re PR libstdc++/60271 ([DR2369] [C++1y] std::max(initializer_list<T>) cannot use std::max_element)
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
2014-12-22 16:00:16 +00:00
Jonathan Wakely
3f5f101874 status_cxx2011.xml: Update.
* doc/xml/manual/status_cxx2011.xml: Update.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r219014
2014-12-22 14:49:09 +00:00
Rüdiger Sonderfeld
0de0b10caa 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
2014-12-22 13:45:52 +00:00
Rüdiger Sonderfeld
e869c0900c re PR libstdc++/60396 (Missing time_get<>::get() functions)
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
2014-12-22 13:45:44 +00:00
Eric Botcazou
1d3a0146ae * gnat.dg/nan_max.adb: New test.
From-SVN: r219011
2014-12-22 11:05:18 +00:00
Eric Botcazou
881cdd61ee trans.c (Attribute_to_gnu): If the type is a floating-point type...
* 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
2014-12-22 11:04:42 +00:00
Eric Botcazou
35786aad0c 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
2014-12-22 10:35:11 +00:00
Bin Cheng
ae9f434509 re PR rtl-optimization/62151 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
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
2014-12-22 10:25:10 +00:00
Eric Botcazou
86a8ba5b75 decl.c (check_ok_for_atomic): Rename into...
* 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
2014-12-22 10:12:05 +00:00
Martin Liska
9a1e784ae8 symbol_summary is used for inline_summary.
* 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
2014-12-22 09:33:05 +00:00
Martin Liska
dd912cb89c ipa-prop uses symbol_summary class.
* 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
2014-12-22 09:19:09 +00:00
Martin Liska
4008290f65 New symbol_summary class introduced.
* 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
2014-12-22 08:54:19 +00:00
Sebastian Huber
fe55e976f1 Add myself to RTEMS Ports maintainers.
ChangeLog
	* MAINTAINERS (RTEMS Ports): Add myself.

From-SVN: r219003
2014-12-22 06:09:21 +00:00
GCC Administrator
b46a4f4d9d Daily bump.
From-SVN: r219002
2014-12-22 00:16:53 +00:00
Oleg Endo
463d52c237 re PR target/55212 ([SH] Switch to LRA)
gcc/
	PR target/55212
	* config/sh/sh.md (*addsi3_compact): Add parentheses around &&
	condition.  Add comments.

From-SVN: r218999
2014-12-21 23:37:42 +00:00
Oleg Endo
9b09bfac86 re PR target/17280 (-mrelax and -O cause .uses directives in assembler to refer to non-existent local labels)
gcc/testsuite/
	PR target/17280
	* gcc.target/sh/torture/pr17280.c: New.

From-SVN: r218998
2014-12-21 22:36:33 +00:00
Jonathan Wakely
8b6425215f re PR libstdc++/64367 (g++-v5/stdexcept:52:28: error: invalid use of non-static data member '_M_p')
PR libstdc++/64367
	* include/std/stdexcept: Don't use non-static member in sizeof.

From-SVN: r218997
2014-12-21 15:16:08 +00:00
Jason Merrill
b9fa057537 re PR c++/64359 (alias_template_specialization_p & template_args_equal show up high in profile)
PR c++/64359
	* pt.c (iterative_hash_template_arg): Hash alias specializations
	differently from their TYPE_CANONICAL.
	(alias_template_specialization_p): Optimize.
	(template_args_equal): Optimize alias handling.
	(dependent_alias_template_spec_p): Only check innermost args.

From-SVN: r218995
2014-12-21 00:00:43 -05:00
GCC Administrator
d01cc136c1 Daily bump.
From-SVN: r218994
2014-12-21 00:16:36 +00:00
François Dumont
a5ebfd3e2a vector (std::__debug::vector<>::clear()): Do not reset guaranteed capacity.
2014-12-20  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/vector (std::__debug::vector<>::clear()): Do not reset
	guaranteed capacity.
	* testsuite/23_containers/vector/bool/allocator/swap.cc: Move
	propagating_allocator equality and inequality operators to __gnu_test
	namespace.

From-SVN: r218991
2014-12-20 19:16:03 +00:00
François Dumont
aa1986fac1 mutex_extensions_neg.cc: Adjust dg-error.
2014-12-20  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error.

From-SVN: r218990
2014-12-20 16:09:45 +00:00
Segher Boessenkool
2f40404fb3 re PR target/64358 (Wrong code for __int128 operations in powerpc64le)
PR target/64358
	* config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
	input operands if only the second is inverted.
	* config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
	Swap BOOL_REGS_OP1 and BOOL_REGS_OP2.  Correct arguments to
	rs6000_split_logical.
	(*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].

From-SVN: r218989
2014-12-20 16:37:06 +01:00
François Dumont
9836f82e7a c++config: inline __cxx11 namespace within namespace __cxx1998.
2014-12-20  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/c++config: inline __cxx11 namespace within namespace
	__cxx1998.

From-SVN: r218988
2014-12-20 08:37:02 +00:00
Jason Merrill
42e99e70e6 * g++.dg/cpp1y/lambda-generic-variadic2.C: Fix.
From-SVN: r218987
2014-12-19 20:42:51 -05:00
Edward Smith-Rowland
a7fa8d1819 c-cppbuiltin.c (__cpp_sized_deallocation): Uncomment and move macro.
c-family/

2014-12-20  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* c-cppbuiltin.c (__cpp_sized_deallocation): Uncomment and move macro.
	Control macro with flag_sized_deallocation.


testsuite/

2014-12-20  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* g++.dg/cpp1y/feat-cxx98-neg.C: Enable __cpp_sized_deallocation test.
	* g++.dg/cpp1y/feat-cxx14.C: Ditto.
	* g++.dg/cpp1y/feat-cxx11-neg.C: Ditto and move tests for consistent
	order.
	* g++.dg/cpp1y/feat-sized-dealloc-neg.C: New.
	* g++.dg/cpp1y/feat-sized-dealloc.C: New.

From-SVN: r218986
2014-12-20 01:21:15 +00:00
Martin Uecker
768952be25 invoke.texi: Document -Wdiscarded-array-qualifiers.
2014-12-20  Martin Uecker <uecker@eecs.berkeley.edu>

	* doc/invoke.texi: Document -Wdiscarded-array-qualifiers.
	* doc/extend.texi: Document new behavior for pointers to arrays
	with qualifiers.

c/
	* c-typeck.c: New behavious for pointers to arrays with qualifiers
        (common-pointer-type): For pointers to arrays take qualifiers from
	element type.
        (build_conditional_expr): Add warnings for lost qualifiers.
	(comp-target-types): Allow pointers to arrays with different qualifiers.
        (convert-for-assignment): Adapt warnings for discarded qualifiers. Add
	WARNING_FOR_QUALIFIERS macro and rename WARN_FOR_QUALIFIERS
        to PEDWARN_FOR_QUALIFIERS.

c-family/
	* c.opt (Wdiscarded-array-qualifiers): New option.

testsuite/
	* gcc.dg/Wwrite-strings-1.c: Change dg-warning.
	* gcc.dg/array-quals-1.c: Use -Wno-discarded-array-qualifiers.
	* gcc.dg/array-quals-2.c: Change dg-options, dg-warning.
	* gcc.dg/pointer-array-atomic.c: New test.
	* gcc.dg/pointer-array-quals-1.c: New test.
	* gcc.dg/pointer-array-quals-2.c: New test (-pedantic-errors).
	* gcc.dg/qual-component-1.c: Change dg-options, dg-warnings.

From-SVN: r218985
2014-12-20 00:29:16 +00:00
Jonathan Wakely
189486b858 Fix duplicate symbol errors in Darwin bootstrap.
* src/c++98/locale-inst.cc (__add_grouping, __pad, __int_to_char):
	Only compile for old ABI.

From-SVN: r218984
2014-12-20 00:19:40 +00:00
GCC Administrator
47356ebc5a Daily bump.
From-SVN: r218983
2014-12-20 00:16:48 +00:00
Ian Lance Taylor
72db90a9fc compiler: Add temporaries required in cases of interface conversion.
From-SVN: r218979
2014-12-19 22:21:01 +00:00
David Malcolm
e8af59bc73 Fix casting non-"int" to bool.
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
2014-12-19 20:34:39 +00:00
Jan Hubicka
6db4bc6e25 hash-table.h (struct pointer_hash): Fix formating.
* 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
2014-12-19 20:27:53 +00:00
Matthew Fortune
58c9330bc1 MIPSR6: mips-img-elf mips-img-linux-gnu triplets and vendor updates
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
2014-12-19 20:18:08 +00:00
Chris Manghane
943cf9cf62 go-gcc.cc (array_constructor_expression): Don't construct arrays of zero-sized values.
* go-gcc.cc (array_constructor_expression): Don't construct arrays
	of zero-sized values.

From-SVN: r218974
2014-12-19 20:17:42 +00:00
Matthew Fortune
82f84ecbb4 MIPS32R6 and MIPS64R6 support
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
2014-12-19 20:17:36 +00:00
David Malcolm
5afd44e33b Fix issue with string options and nested gcc_jit_contexts
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
2014-12-19 20:11:16 +00:00