gcc/jit/ChangeLog:
PR jit/66539
* jit-recording.c: Within namespace gcc::jit::recording::
(rvalue::get_debug_string_parens): New function.
(binary_op::make_debug_string): Update to mimic C precedence
rules.
(binary_op_precedence): New array.
(binary_op::get_precedence): New function.
(comparison::make_debug_string): Update to mimic C precedence
rules.
(comparison_precedence): New array.
(comparison::get_precedence): New function.
(cast::make_debug_string): Update to mimic C precedence rules.
(call::make_debug_string): Likewise.
(call_through_ptr::make_debug_string): Likewise.
(array_access::make_debug_string): Likewise.
(access_field_of_lvalue::make_debug_string): Likewise.
(access_field_rvalue::make_debug_string): Likewise.
(dereference_field_rvalue::make_debug_string): Likewise.
(dereference_rvalue::make_debug_string): Likewise.
(get_address_of_lvalue::make_debug_string): Likewise.
* jit-recording.h: Within namespace gcc::jit::recording::
(precedence): New enum.
(rvalue::rvalue): Initialize field "m_parenthesized_string".
(rvalue::get_debug_string_parens): New method.
(rvalue::get_precedence): New pure virtual function.
(rvalue::m_parenthesized_string): New field.
(param::get_precedence): New function.
(global::get_precedence): New function.
(memento_of_new_rvalue_from_const::get_precedence): New function.
(memento_of_new_string_literal::get_precedence): New function.
(unary_op::get_precedence): New function.
(binary_op::get_precedence): New function.
(comparison::get_precedence): New function.
(cast::get_precedence): New function.
(call::get_precedence): New function.
(call_through_ptr::get_precedence): New function.
(array_access::get_precedence): New function.
(access_field_of_lvalue::get_precedence): New function.
(access_field_rvalue::get_precedence): New function.
(dereference_field_rvalue::get_precedence): New function.
(dereference_rvalue::get_precedence): New function.
(get_address_of_lvalue::get_precedence): New function.
(local::get_precedence): New function.
gcc/testsuite/ChangeLog:
PR jit/66539
* jit.dg/all-non-failing-tests.h: Add test-debug-strings.c.
* jit.dg/test-debug-strings.c: New test case.
* jit.dg/test-quadratic.c (make_calc_discriminant): Verify that
the discriminant has a sane debug string.
From-SVN: r224531
unconditionally add -mfloat-abi=soft
gcc/testsuite/
* gcc.target/arm/pr65647.c: Do not override -mfloat-abi directives
passed by the testsuite driver.
From-SVN: r224512
2015-06-16 Richard Biener <rguenther@suse.de>
* tree-vect-stmts.c (vectorizable_load): Properly start loads
with the first element if this is grouped loads.
* gcc.dg/vect/slp-perm-11.c: New testcase.
From-SVN: r224511
in advsimd-intrinsics.exp
gcc/testsuite/
* gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
Reinstate calls to torture-init and torture-finalize.
From-SVN: r224507
cp/
PR c++/58583
* cp-tree.h (DECL_INSTANTIATING_NSDMI_P): New.
* init.c (get_nsdmi): Check for DEFAULT_ARG in template case and
protect it from recursive instantiation.
testsuite/
PR c++/58583
* g++.dg/cpp0x/nsdmi-template14.C: New test.
From-SVN: r224502
Binary expressions might contain function calls that cause an object
to escape. Previously, there were not analyzed.
Reviewed-on: https://go-review.googlesource.com/10660
From-SVN: r224496
* altivec.md: Delete UNSPEC_VMLADDUHM.
(mulv4si3_p8): New pattern.
(mulv4si3): Use it for POWER8.
(mulv8hi3): Use vmladduhm with zero addend.
(altivec_vmladduhm): Descriptive RTL.
From-SVN: r224494
gcc/
* config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
to use neon_move instead of mov_imm.
(movdi_aarch64): Change alternative 14 to use neon_move not fmov.
(movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
* config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
aarch64_float_const_zero_rtx_p check before TFmode check.
* config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
an fp zero.
(movtf_aarch64): Separate ?rY alternative into two. Adjust assembly
code and attributes to match. Change condition from register_operand
to aarch64_reg_or_fp_zero for op1. Change type for ldp from
neon_load1_2reg to load2. Change type for stp from neon_store1_2reg
to store2.
From-SVN: r224493
/cp
2015-06-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51048
* decl2.c (no_linkage_error): Do not issue a permerror if the DECL
using a local type is pure virtual.
/testsuite
2015-06-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51048
* g++.dg/cpp0x/local-type1.C: New.
From-SVN: r224492
gcc/testsuite/ChangeLog:
2015-06-15 Andre Vehreschild <vehre@gmx.de>
PR fortran/44672
PR fortran/45440
PR fortran/57307
* gfortran.dg/allocate_with_source_3.f90: Removed check for
unimplemented error.
* gfortran.dg/allocate_with_source_7.f08: New test.
* gfortran.dg/allocate_with_source_8.f08: New test.
gcc/fortran/ChangeLog:
2015-06-15 Andre Vehreschild <vehre@gmx.de>
PR fortran/44672
PR fortran/45440
PR fortran/57307
* gfortran.h: Extend gfc_code.ext.alloc to carry a
flag indicating that the array specification has to be
taken from expr3.
* resolve.c (resolve_allocate_expr): Add F2008 notify
and flag indicating source driven array spec.
(resolve_allocate_deallocate): Check for source driven
array spec, when array to allocate has no explicit
array spec.
* trans-array.c (gfc_array_init_size): Get lower and
upper bound from a tree array descriptor, except when
the source expression is an array-constructor which is
fixed to be one-based.
(retrieve_last_ref): Extracted from gfc_array_allocate().
(gfc_array_allocate): Enable allocate(array, source=
array_expression) as specified by F2008:C633.
(gfc_conv_expr_descriptor): Add class tree expression
into the saved descriptor for class arrays.
* trans-array.h: Add temporary array descriptor to
gfc_array_allocate ().
* trans-expr.c (gfc_conv_procedure_call): Special handling
for _copy() routine translation, that comes without an
interface. Third and fourth argument are now passed by value.
* trans-stmt.c (gfc_trans_allocate): Get expr3 array
descriptor for temporary arrays to allow allocate(array,
source = array_expression) for array without array
specification.
From-SVN: r224477
PR ipa/66181
* lto.c (compare_tree_sccs_1): Do not compare TYPE_NO_FORCE_BLK.
* lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
* tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
TYPE_NO_FORCE_BLK.
* tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
From-SVN: r224471
2015-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
* intrinsic.texi: Change \leq to < in descrition of imaginary
part in argument to log.
From-SVN: r224462
gcc/c-family/ChangeLog:
PR c++/65168
* c-common.c (c_common_truthvalue_conversion): Warn when
converting an address of a reference to a truth value.
gcc/cp/ChangeLog:
PR c++/65168
* typeck.c (cp_build_binary_op): Warn when comparing an address
of a reference against NULL.
gcc/testsuite/ChangeLog:
PR c++/65168
g++.dg/warn/Walways-true-3.C: New test.
From-SVN: r224455
2015-06-13 Tom de Vries <tom@codesourcery.com>
* gcc.dg/parloops-exit-first-loop-alt-4.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
From-SVN: r224453
gcc:
PR bootstrap/66448
* passes.c (rest_of_decl_compilation): Do not register globals for
early debug if they are declared in built-ins.
From-SVN: r224451