1. 16 Jan, 2016 15 commits
  2. 15 Jan, 2016 25 commits
    • Use static assertion for uses-allocator construction · d7c1581c
      	PR libstdc++/69293
      	* include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
      	static assertion that type is constructible from the arguments.
      	* testsuite/20_util/scoped_allocator/69293_neg.cc: New.
      	* testsuite/20_util/uses_allocator/69293_neg.cc: New.
      	* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
      
      From-SVN: r232457
      Jonathan Wakely committed
    • re PR target/68609 (PowerPC reciprocal estimate missed opportunities) · 28621a5c
              PR target/68609
              * gcc.target/powerpc/recip-1.c: Adjust for Goldschmidt's Algorithm.
              * gcc.target/powerpc/recip-2.c: Same.
              * gcc.target/powerpc/recip-3.c: Same.
              * gcc.target/powerpc/recip-4.c: Same.
              * gcc.target/powerpc/recip-sqrtf.c: Same.
      
      From-SVN: r232456
      David Edelsohn committed
    • PR libstdc++/69294 Check for isinf and isnan on AIX · 3d076231
      	PR libstdc++/69294
      	* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
      	and isnan on AIX. Quote variables.
      	* configure: Regenerate.
      
      From-SVN: r232455
      Jonathan Wakely committed
    • libstdc++: Make certain exceptions transaction_safe. · a04d5fc9
      From-SVN: r232454
      Torvald Riegel committed
    • re PR tree-optimization/69270 (DOM should exploit range information to create more equivalences) · 40c43aca
      	PR tree-optimization/69270
      	* tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
      	tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
      	* tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
      	* tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
      	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
      	ssa_name_has_boolean_range and constant_boolean_node.
      
      	PR tree-optimization/69270
      	* gcc.dg/tree-ssa/pr69270-2.c: New test.
      	* gcc.dg/tree-ssa/pr69270-3.c: New test.
      
      From-SVN: r232453
      Jeff Law committed
    • random.tcc: Use __builtin_isfinite instead of std::isfinite. · cebeb718
      2016-01-15  Steve Ellcey  <sellcey@imgtec.com>
      
      	* include/ext/random.tcc: Use __builtin_isfinite instead of
      	std::isfinite.
      
      From-SVN: r232452
      Steve Ellcey committed
    • re PR bootstrap/68271 (Boostrap fails on x86_64-apple-darwin14 at r230084) · e0a575ff
      	PR bootstrap/68271
      	* parser.h (cp_token): Remove pragma_kind field.  Add comment
      	with number of unused bits.
      	* parser.c (eof_token): Remove pragma_kind field initializer.
      	(cp_lexer_get_preprocessor_token): Don't set pragma_kind
      	field, don't clear CPP_PRAGMA u.value.
      	(cp_parser_pragma_kind): New function.
      	(cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
      	cp_parser_omp_construct, cp_parser_initial_pragma,
      	cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
      	pragma_kind field.
      
      	* c-pragma.c (c_register_pragma_1): Adjust comment to note that
      	C++ FE no longer has limit on number of pragmas.
      
      From-SVN: r232451
      Jakub Jelinek committed
    • re PR fortran/64324 (Deferred character specific functions not permitted in… · afbc5ae8
      re PR fortran/64324 (Deferred character specific functions not permitted in generic operator interface)
      
      2016-01-15  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/64324
      	* resolve.c (check_uop_procedure): Prevent deferred length
      	characters from being trapped by assumed length error.
      
      	PR fortran/49630
      	PR fortran/54070
      	PR fortran/60593
      	PR fortran/60795
      	PR fortran/61147
      	PR fortran/64324
      	* trans-array.c (gfc_conv_scalarized_array_ref): Pass decl for
      	function as well as variable expressions.
      	(gfc_array_init_size): Add 'expr' as an argument. Use this to
      	correctly set the descriptor dtype for deferred characters.
      	(gfc_array_allocate): Add 'expr' to the call to
      	'gfc_array_init_size'.
      	* trans.c (gfc_build_array_ref): Expand logic for setting span
      	to include indirect references to character lengths.
      	* trans-decl.c (gfc_get_symbol_decl): Ensure that deferred
      	result char lengths that are PARM_DECLs are indirectly
      	referenced both for directly passed and by reference.
      	(create_function_arglist): If the length type is a pointer type
      	then store the length as the 'passed_length' and make the char
      	length an indirect reference to it.
      	(gfc_trans_deferred_vars): If a character length has escaped
      	being set as an indirect reference, return it via the 'passed
      	length'.
      	* trans-expr.c (gfc_conv_procedure_call): The length of
      	deferred character length results is set TREE_STATIC and set to
      	zero.
      	(gfc_trans_assignment_1): Do not fix the rse string_length if
      	it is a variable, a parameter or an indirect reference. Add the
      	code to trap assignment of scalars to unallocated arrays.
      	* trans-stmt.c (gfc_trans_allocate): Remove 'def_str_len' and
      	all references to it. Instead, replicate the code to obtain a
      	explicitly defined string length and provide a value before
      	array allocation so that the dtype is correctly set.
      	trans-types.c (gfc_get_character_type): If the character length
      	is a pointer, use the indirect reference.
      
      2016-01-15  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/49630
      	* gfortran.dg/deferred_character_13.f90: New test for the fix
      	of comment 3 of the PR.
      
      	PR fortran/54070
      	* gfortran.dg/deferred_character_8.f90: New test
      	* gfortran.dg/allocate_error_5.f90: New test
      
      	PR fortran/60593
      	* gfortran.dg/deferred_character_10.f90: New test
      
      	PR fortran/60795
      	* gfortran.dg/deferred_character_14.f90: New test
      
      	PR fortran/61147
      	* gfortran.dg/deferred_character_11.f90: New test
      
      	PR fortran/64324
      	* gfortran.dg/deferred_character_9.f90: New test
      
      From-SVN: r232450
      Paul Thomas committed
    • execute_command_line.c (set_cmdstat): Use "%s", msg instead of msg to avoid… · f4742991
      execute_command_line.c (set_cmdstat): Use "%s", msg instead of msg to avoid -Wformat-security warning.
      
      	* intrinsics/execute_command_line.c (set_cmdstat): Use "%s", msg
      	instead of msg to avoid -Wformat-security warning.
      
      From-SVN: r232449
      Jakub Jelinek committed
    • adaint.c (__gnat_locate_exec_on_path): Use const char * instead of char * for… · 4c0f272c
      adaint.c (__gnat_locate_exec_on_path): Use const char * instead of char * for path_val to avoid warnings.
      
      	* adaint.c (__gnat_locate_exec_on_path): Use const char * instead
      	of char * for path_val to avoid warnings.
      
      From-SVN: r232448
      Jakub Jelinek committed
    • re PR rtl-optimization/69030 (ICE on x86_64-linux-gnu at -O2 and above in 32-bit… · 49abe076
      re PR rtl-optimization/69030 (ICE on x86_64-linux-gnu at -O2 and above in 32-bit mode (ICE in copy_rtx, at rtl.c:358))
      
      2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/69030
      	* lra-spills.c (remove_pseudos): Check nrefs and make the function
      	returning bool.
      	(spill_pseudos): Delete debug insn for dead pseudo.
      	(lra_spill): Initiate spill_hard_reg and slots memory separately.
      
      From-SVN: r232445
      Vladimir Makarov committed
    • [AArch64] Remove TODO (redundant type conversions) in arm_neon.h · a579f4c7
      gcc/
      	* config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
      	New.
      	(TYPES_UNOPUS): Likewise.
      	* config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
      	builtin type, from UNOP to UNOPUS.
      	(lbtruncuv4sf): Likewise.
      	(lbtruncuv2df): Likewise.
      	(lrounduv2sf): Likewise.
      	(lrounduv4sf): Likewise.
      	(lrounduv2df): Likewise.
      	(lroundusf): Likewise.
      	(lroundusf): Likewise.
      	(lceiluv2sf): Likewise.
      	(lceiluv4sf): Likewise.
      	(lceiluv2df): Likewise.
      	(lceilusf): Likewise.
      	(lceiludf): Likewise.
      	(lflooruv2sf): Likewise.
      	(lflooruv4sf): Likewise.
      	(lflooruv2df): Likewise.
      	(lfloorusf): Likewise.
      	(lfloorudf): Likewise.
      	(lfrintnuv2sf): Likewise.
      	(lfrintnuv4sf): Likewise.
      	(lfrintnuv2df): Likewise.
      	(lfrintnusf): Likewise.
      	(lfrintnudf): Likewise.
      	* config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
      	conversion.
      	(vcvtq_u32_f32): Likewise.
      	(vcvtq_u64_f64): Likewise.
      	(vcvta_u32_f32): Likewise.
      	(vcvtaq_u32_f32): Likewise.
      	(vcvtaq_u64_f64): Likewise.
      	(vcvtm_u32_f32): Likewise.
      	(vcvtmq_u32_f32): Likewise.
      	(vcvtmq_u64_f64): Likewise.
      	(vcvtn_u32_f32): Likwise.
      	(vcvtnq_u32_f32): Likewise.
      	(vcvtnq_u64_f64): Likewise.
      	(vcvtp_u32_f32): Likewise.
      	(vcvtpq_u32_f32): Likewise.
      	(vcvtpq_u64_f64): Likewise.
      	(vcvtmd_u64_f64): Likewise.
      	(vcvtms_u32_f32): Likewise.
      	(vcvtad_u64_f64): Likewise.
      	(vcvtas_u32_f32): Likewise.
      	(vcvtnd_u64_f64): Likewise.
      	(vcvtns_u32_f32): Likewise.
      	(vcvtpd_u64_f64): Likewise.
      	(vcvtps_u32_f32): Likewise.
      
      From-SVN: r232444
      Jiong Wang committed
    • [AArch64] Handle CSEL of zero_extended operands in rtx costs · bad00732
      	* config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
      	CSEL of zero_extended registers.
      
      From-SVN: r232442
      Kyrylo Tkachov committed
    • [AArch64] Handle compare of zero_extract form of TST-immediate in rtx costs · 345854d8
      	* config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
      	Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
      
      From-SVN: r232441
      Kyrylo Tkachov committed
    • [AArch64] Properly reject invalid attribute strings · 16d12992
      	* config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
      	false when argument string is not found in the attributes table
      	at all.
      
      	* gcc.target/aarch64/target_attr_17.c: New test.
      
      From-SVN: r232440
      Kyrylo Tkachov committed
    • re PR target/68609 (PowerPC reciprocal estimate missed opportunities) · ad45ac43
              PR target/68609
              * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
              (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
              * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
              precision estimate.
      
      From-SVN: r232439
      David Edelsohn committed
    • re PR c++/68847 (ICE in cxx_eval_constant_expression on… · c5e3b6fc
      re PR c++/68847 (ICE in cxx_eval_constant_expression on __atomic_compare_exchange (constexpr.c:3719) in c++)
      
      	PR c++/68847
      	* call.c (build_cxx_call): Use fold_non_dependent_expr.
      
      From-SVN: r232438
      Jason Merrill committed
    • typeck2.c (cxx_incomplete_type_diagnostic): Use the location of value. · f3255019
      	* typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
      	value.
      
      From-SVN: r232437
      Jason Merrill committed
    • re PR c++/69257 (g++ ICE in "create_tmp_var" on invalid inline-asm) · 56233bd6
      	PR c++/69257
      	* typeck.c (decay_conversion): Don't call mark_rvalue_use for
      	array/function-to-pointer conversion.  Call
      	complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
      	* call.c (convert_like_real): Print call context if
      	decay_conversion errors.
      
      From-SVN: r232436
      Jason Merrill committed
    • re PR tree-optimization/66856 (ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234) · 78810bd3
      2016-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/66856
      	* tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
      	* tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
      	(vect_create_new_slp_node): Increment stmt reference count.
      	(vect_get_and_check_slp_defs): Make sure stmts are nor already in
      	an SLP tree before swapping operands.
      	(vect_build_slp_tree): Likewise.
      	(destroy_bb_vec_info): Free stmt info after SLP instances.
      	* tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
      	* tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
      	(STMT_VINFO_NUM_SLP_USES): New macro.
      
      	* gcc.dg/torture/pr66856-1.c: New testcase.
      	* gcc.dg/torture/pr66856-2.c: Likewise.
      
      From-SVN: r232435
      Richard Biener committed
    • re PR debug/69137 (ICE in odr_type_p, at ipa-utils.h:257) · 2bd847fe
      2016-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR debug/69137
      	* dwarf2out.c (add_linkage_name_raw): New function split out from ...
      	(add_linkage_name): ... here.
      	(gen_typedef_die): Use add_linkage_name_raw instead of
      	add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
      	if necessary.
      
      	* g++.dg/lto/pr69137_0.C: New testcase.
      
      From-SVN: r232434
      Richard Biener committed
    • gimplify.c (oacc_default_clause): Decode reference and pointer types for both… · 33a126a6
      gimplify.c (oacc_default_clause): Decode reference and pointer types for both kernels and parallel regions.
      
      	gcc/
      	* gimplify.c (oacc_default_clause): Decode reference and pointer
      	types for both kernels and parallel regions.
      
      	libgomp/
      	* testsuite/libgomp.oacc-fortran/kernels-data.f90: New test.
      
      From-SVN: r232431
      Cesar Philippidis committed
    • PR 69246: Invalid REG_ARGS_SIZE for sibcalls · a00fe3b7
      The problem in this PR was that we were treating a sibcall as popping
      arguments, leading to a negative REG_ARGS_SIZE.
      
      It doesn't really make sense to treat sibcalls as popping since
      (a) they're deallocating the caller's stack, not ours, and
      (b) there are no optabs for popping sibcalls (any more).
      
      Tested on x86_64-linux-gnu.
      
      gcc/
      	PR middle-end/69246
      	* calls.c (emit_call_1): Force n_popped to zero for sibcalls.
      
      gcc/testsuite/
      	PR middle-end/69246
      	* gcc.target/i386/pr69246.c: New test.
      
      From-SVN: r232428
      Richard Sandiford committed
    • Fix usage of an uninitialized variable · aea40b08
      	* lto-plugin.c (all_symbols_read_handler): Assign default
      	value to a string variable.
      
      From-SVN: r232426
      Martin Liska committed