1. 16 May, 2016 21 commits
    • Fix multi-line brackets in mips-cpus.def · e6e89f0d
      gcc/
      	* config/mips/mips-cpus.def (p5600): Add multi-line brackets.
      
      From-SVN: r236284
      Matthew Fortune committed
    • decl.c (gnat_to_gnu_entity): Do not build a specific type for the object if it… · d972bae0
      decl.c (gnat_to_gnu_entity): Do not build a specific type for the object if it is deemed a constant.
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build
      	a specific type for the object if it is deemed a constant.
      
      From-SVN: r236283
      Eric Botcazou committed
    • freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to components of… · f91caacb
      freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to components of any elementary types and of...
      
      	* freeze.adb (Freeze_Record_Type): Extend pragma Implicit_Packing to
      	components of any elementary types and of composite types.
      
      From-SVN: r236282
      Eric Botcazou committed
    • freeze.adb (Freeze_Array_Type): Call Addressable predicate instead of testing for individual sizes. · 3d626f94
      	* freeze.adb (Freeze_Array_Type): Call Addressable predicate instead
      	of testing for individual sizes.
      	(Freeze_Entity): Rework implementation of pragma Implicit_Packing for
      	array types, in particular test for suitable sizes upfront and do not
      	mimic the processing that will be redone later in Freeze_Array_Type.
      
      From-SVN: r236281
      Eric Botcazou committed
    • trans.c (elaborate_all_entities_for_package): Also skip formal objects. · cce309d7
      	* gcc-interface/trans.c (elaborate_all_entities_for_package): Also skip
      	formal objects.
      
      From-SVN: r236280
      Eric Botcazou committed
    • * doc/gnat_rm/implementation_defined_attributes.rst · b3f75672
      	(Scalar_Storage_Order): Adjust restriction for packed array types.
      	* einfo.ads (Is_Bit_Packed_Array): Adjust description.
      	(Is_Packed): Likewise.
      	(Is_Packed_Array_Impl_Type): Likewise.
      	(Packed_Array_Impl_Type): Likewise.
      	* exp_ch4.adb (Expand_N_Indexed_Component): Do not do anything special
      	if the prefix is not a packed array implemented specially.
      	* exp_ch6.adb (Expand_Actuals): Expand indexed components only for
      	bit-packed array types.
      	* exp_pakd.adb (Install_PAT): Set Is_Packed_Array_Impl_Type flag on
      	the PAT before analyzing its declaration.
      	(Create_Packed_Array_Impl_Type): Remove redundant statements.
      	* freeze.adb (Check_Component_Storage_Order): Reject packed array
      	components only if they are bit packed.
      	(Freeze_Array_Type): Fix logic detecting bit packing and do not bit
      	pack for composite types whose size is multiple of a byte.
      	Create the implementation type for packed array types only when it is
      	needed, i.e. bit packing or packing because of holes in index types.
      	Make sure the Has_Non_Standard_Rep and Is_Packed flags agree.
      	* gcc-interface/gigi.h (make_packable_type): Add MAX_ALIGN parameter.
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
      	Call maybe_pad_type instead of building the padding type manually.
      	(gnat_to_gnu_entity) <E_Array_Subtype>: Do not assert that
      	Packed_Array_Impl_Type is present for packed arrays.
      	(gnat_to_gnu_component_type): Also handle known alignment for packed
      	types by passing it to make_packable_type.
      	* gcc-interface/utils.c (make_packable_type): Add MAX_ALIGN parameter
      	and deal with it in the array case.  Adjust recursive call.  Simplify
      	computation of new size and cap the alignment to BIGGEST_ALIGNMENT.
      
      From-SVN: r236279
      Eric Botcazou committed
    • This patch fixes the attributes of integer immediate shifts which were... · 3362d764
      This patch fixes the attributes of integer immediate shifts which were
      incorrectly modelled as register controlled shifts.  Also change EXTR
      attribute to being a rotate.
      
      	* gcc/config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
      	Split integer shifts into shift_reg and bfm.
      	(aarch64_lshr_sisd_or_int_<mode>3): Likewise.
      	(aarch64_ashr_sisd_or_int_<mode>3): Likewise.
      	(ror<mode>3_insn): Likewise.
      	(<optab>si3_insn_uxtw): Likewise.
      	(<optab><mode>3_insn): Change to rotate_imm.
      	(extr<mode>5_insn_alt): Likewise.
      	(extrsi5_insn_uxtw): Likewise.
      	(extrsi5_insn_uxtw_alt): Likewise.
      
      From-SVN: r236278
      Wilco Dijkstra committed
    • freeze.adb (Check_Component_Storage_Order): Also get full view of enclosing type. · 6232acb7
      	* freeze.adb (Check_Component_Storage_Order): Also get full view of
      	enclosing type.
      
      From-SVN: r236277
      Thomas Quinot committed
    • Remove TARGET_INVALID_PARAMETER_TYPE and TARGET_INVALID_RETURN_TYPE hooks. · 8fad45f5
      c/
      2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* c-decl.c (grokdeclarator): Remove errmsg and use of
      	targetm.invalid_return_type.
      	(grokparms): Remove errmsg and use of
      	targetm.invalid_parameter_type.
      
      cp/
      2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* decl.c (grokdeclarator): Remove errmsg and use of
      	targetm.invalid_return_type.
      	(grokparms): Remove errmsg and use of
      	targetm.invalid_parameter_type.
      
      gcc/
      2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* doc/tm.texi: Regenerate.
      	* doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
      	(TARGET_INVALID_RETURN_TYPE): Remove.
      	* system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
      	TARGET_INVALID_RETURN_TYPE.
      	* target.def (invalid_parameter_type): Remove.
      	(invalid_return_type): Remove.
      
      From-SVN: r236276
      Matthew Wahab committed
    • exp_util.adb (Remove_Side_Effects): Also make a constant if we need to capture… · 34da9c98
      exp_util.adb (Remove_Side_Effects): Also make a constant if we need to capture the value for a small not...
      
      	* exp_util.adb (Remove_Side_Effects): Also make a constant if we need
      	to capture the value for a small not by-reference record type.
      	* freeze.ads (Check_Compile_Time_Size): Adjust comment.
      	* freeze.adb (Set_Small_Size): Likewise.  Accept a size in the range
      	of 33 .. 64 bits.
      	(Check_Compile_Time_Size): Merge scalar and access type cases. Change
      	variable name in array type case.  For the computation of the packed
      	size, deal with record components and remove redundant test.
      	(Freeze_Array_Type): Also adjust packing status when the size of the
      	component type is in the range 33 .. 64 bits.
      	* doc/gnat_rm/representation_clauses_and_pragmas.rst: Turn primitive
      	into elementary type throughout.  Minor tweaks.
      	(Alignment Clauses): Document actual alignment of packed array types.
      	(Pragma Pack for Arrays): List only the 3 main cases and adjust.  Add
      	"simple" to the record case.  Document effect on non packable types.
      	(Pragma Pack for Records): Likewise.  Add record case and adjust.
      
      From-SVN: r236275
      Eric Botcazou committed
    • ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic on estimating thunk bodies... · 0b9004ed
      
      	* ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
      	on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
      	calls from thunk.
      	* ipa-inline-transform.c (inline_call): When inlining into thunk produce
      	gimple body.
      	(preserve_function_body_p): No need to preserve function body
      	* cif-codes.def (CIF_THUNK): Remove.
      	* cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
      
      	* g++.dg/ipa/ivinline-7.C: Do not xfail.
      	* g++.dg/ipa/ivinline-9.C: Do not xfail.
      
      From-SVN: r236274
      Jan Hubicka committed
    • tree.c (free_lang_data_in_decl): Also set target/optimization flags for thunks. · aa53a905
      	* tree.c (free_lang_data_in_decl): Also set target/optimization flags
      	for thunks.
      
      From-SVN: r236272
      Jan Hubicka committed
    • ipa-inline.c (report_inline_failed_reason): Look into thunks, too · 1f6f9079
      
      	* ipa-inline.c (report_inline_failed_reason): Look into thunks, too
      	(inline_small_functions): Do not look for function symbol when resetting
      	caches.
      
      From-SVN: r236271
      Jan Hubicka committed
    • lto-cgraph.c (compute_ltrans_boundary, [...]): Fix handling of inline thunks · 479f99c9
      	* lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
      	of inline thunks
      	* lto-partition.c (add_symbol_to_partition_1): Likewise.
      
      From-SVN: r236270
      Jan Hubicka committed
    • [ARM] Enable __fp16 as a function parameter and return type. · 1b81a1c1
      gcc/
      2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
      	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      	    Jiong Wang  <jiong.wang@arm.com>
      
      	* config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
      	for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
      	Define __ARM_FP16_ARGS when appropriate.
      	* config/arm/arm.c (arm_invalid_parameter_type): Remove
      	declaration.
      	(arm_invalid_return_type): Likewise.
      	(TARGET_INVALID_PARAMETER_TYPE): Remove.
      	(TARGET_INVALID_RETURN_TYPE): Remove.
      	(aapcs_vfp_sub_candidate): Allow HFmode.
      	(aapcs_vfp_allocate): Add comment.  Support HFmode.
      	(aapcs_vfp_allocate_return_reg): Likewise.
      	(struct aapcs_cp_arg_layout): Slightly reword comments for
      	is_return_candidate and allocate_return_reg.
      	(output_mov_vfp): Update assert.
      	(arm_hard_regno_mode_ok): Remove comment, update HF-mode
      	condition.
      	(arm_invalid_parameter_type): Remove.
      	(amr_invalid_return_type): Remove.
      	* config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
      	* config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
      	* config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
      
      gcc/testsuite/
      2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* g++.dg/ext/arm-fp16/fp16-param-1.c: Update expected output.  Add
      	test for __ARM_FP16_ARGS.
      	* g++.dg/ext/arm-fp16/fp16-return-1.c: Update expected output.
      	* gcc.target/arm/aapcs/neon-vect10.c: New.
      	* gcc.target/arm/aapcs/neon-vect9.c: New.
      	* gcc.target/arm/aapcs/vfp18.c: New.
      	* gcc.target/arm/aapcs/vfp19.c: New.
      	* gcc.target/arm/aapcs/vfp20.c: New.
      	* gcc.target/arm/aapcs/vfp21.c: New.
      	* gcc.target/arm/fp16-aapcs-1.c: New.
      	* g++.target/arm/fp16-param-1.c: Update expected output.  Add
      	test for __ARM_FP16_ARGS.
      	* g++.target/arm/fp16-return-1.c: Update expected output.
      
      
      Co-Authored-By: Jiong Wang <jiong.wang@arm.com>
      Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
      
      From-SVN: r236269
      Matthew Wahab committed
    • Move wrong ChangeLog entry from toplevel to gcc ChangeLog. · 0501ae62
      From-SVN: r236268
      Matthew Wahab committed
    • configure.ac: Add ACX_NONCANONICAL_HOST. · 47e62307
      gnattools/
      	* configure.ac: Add ACX_NONCANONICAL_HOST.
      	* configure: Regenerate.
      	* Makefile.in: Replace host_alias with host_noncanonical.
      	(gnattools-cross): Do not rename the tools.
      gcc/
      	* configure.ac: Add ACX_NONCANONICAL_HOST.
      	* configure: Regenerate.
      	* Makefile.in: Set host_noncanonical.
      gcc/ada
      	* gcc-interface/Make-lang.in (GNATMAKE_FOR_HOST): In the canadian
      	cross case, use host_noncanonical instead of host as prefix.
      	(GNATBIND_FOR_HOST): Likewise.
      	(GNATLINK_FOR_HOST): Likewise.
      	(GNATLS_FOR_HOST): Likewise.
      
      From-SVN: r236267
      Eric Botcazou committed
    • [AArch64] Remove an unused reload hook. · e9024729
          * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
          * config/aarch64/arch64-protos.h
          (aarch64_legitimize_reload_address): Remove.
          * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
          Remove.
      
      From-SVN: r236266
      Matthew Wahab committed
    • [testsuite] PR70227, skip g++.dg/lto/pr69589_0.C on targets without -rdynamic support · 921d1e73
        PR testsuite/70227
        * g++.dg/lto/pr69589_0.C: Skip arm and aarch64 bare-metal targets.
      
      From-SVN: r236265
      Jiong Wang committed
    • Daily bump. · aab2c659
      From-SVN: r236263
      GCC Administrator committed
  2. 15 May, 2016 2 commits
  3. 14 May, 2016 5 commits
  4. 13 May, 2016 12 commits
    • combine: Don't call extract_left_shift with count < 0 (PR67483) · 85ca20c9
      If the compiled program does a shift by a negative amount, combine will
      happily work with that, but it shouldn't then do an undefined operation
      in GCC itself.  This patch fixes the first case mentioned in the bug
      report (I haven't been able to reproduce the second case, on trunk at
      least).
      
      
      	PR rtl-optimization/67483
      	* combine.c (make_compound_operation): Don't call extract_left_shift
      	with negative shift amounts.
      
      From-SVN: r236232
      Segher Boessenkool committed
    • Implement C11 DR#423 resolution (ignore function return type qualifiers). · aa4b467b
      The resolution of C11 DR#423, apart from doing things with the types
      of expressions cast to qualified types which are only in standard
      terms observable with _Generic and which agree with how GCC has
      implemented _Generic all along, also specifies that qualifiers are
      discarded from function return types: "derived-declarator-type-list
      function returning T" becomes "derived-declarator-type-list function
      returning the unqualified version of T" in the rules giving types for
      function declarators.  This means that declarations of a function with
      both qualified and unqualified return types are now compatible,
      similar to how different declarations can vary in whether a function
      argument is declared with a qualifier or unqualified type.
      
      This patch implements this resolution.  Since the motivation for the
      change was _Generic, the resolution is restricted to C11 mode; there's
      no reason to consider there to be a defect in this regard in older
      standard versions.  Some less-obvious issues are handled as follows:
      
      * As usual, and as with function arguments, _Atomic is not considered
        a qualifier for this purpose; that is, function declarations must
        agree regarding whether the return type is atomic.
      
      * By 6.9.1#2, a function definition cannot return qualified void.  But
        with this change, specifying "const void" in the declaration
        produces the type "function returning void", which is perfectly
        valid, so "const void f (void) {}" is no longer an error.
      
      * The application to restrict is less clear.  The way I am
        interpreting it in this patch is that "unqualified version of T" is
        not valid if T is not valid, as in the case where T is a
        restrict-qualified version of a type that cannot be restrict
        qualified (non-pointer, or pointer-to-function).  But it's possible
        to argue the other way from the wording.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc/c:
      	* c-decl.c (grokdeclarator): For C11, discard qualifiers on
      	function return type.
      
      gcc/testsuite:
      	* gcc.dg/qual-return-5.c, gcc.dg/qual-return-6.c: New tests.
      	* gcc.dg/call-diag-2.c, gcc.dg/qual-return-2.c ,
      	gcc.dg/qual-return-3.c, gcc.dg/qual-return-4.c: Use -std=gnu99.
      
      From-SVN: r236231
      Joseph Myers committed
    • c++/60049 - Right and left shift undefined behavior not an error in a constexpr · 653fb4a2
      Add new test.
      
      From-SVN: r236225
      Martin Sebor committed
    • escape: Implement the discovery phase. · 6eaba1b0
          
          Implements the discovery phase according the SCC algorithm used in
          gc/esc.go.  Traverse all functions to find components that are either
          trivial or recursive.  The discovered function groups will be analyzed
          from the bottom-up to allow for an inter-procedural analysis.
          
          Reviewed-on: https://go-review.googlesource.com/18221
      
      From-SVN: r236224
      Ian Lance Taylor committed
    • jit: use FINAL and OVERRIDE throughout · 54ece5e2
      Mark most virtual functions in gcc/jit as being FINAL OVERRIDE.
      gcc::jit::recording::lvalue::access_as_rvalue is the sole OVERRIDE
      that isn't a FINAL.
      
      gcc/jit/ChangeLog:
      	* jit-playback.h: Within namespace gcc:jit::playback...
      	(compile_to_memory::postprocess): Mark with FINAL OVERRIDE.
      	(compile_to_file::postprocess): Likewise.
      	(function::finalizer): Likewise.
      	(block::finalizer): Likewise.
      	(source_file::finalizer): Likewise.
      	(source_line::finalizer): Likewise.
      	* jit-recording.c (gcc::jit::rvalue_usage_validator):: Likewise.
      	* jit-recording.h: Within namespace gcc::jit::recording...
      	(string::replay_into): Mark with FINAL OVERRIDE.
      	(string::make_debug_string): Likewise.
      	(string::write_reproducer): Likewise.
      	(location::replay_into): Likewise.
      	(location::dyn_cast_location): Likewise.
      	(location::make_debug_string): Likewise.
      	(location::write_reproducer): Likewise.
      	(memento_of_get_type::dereference): Likewise.
      	(memento_of_get_type::accepts_writes_from): Likewise.
      	(memento_of_get_type::is_int): Likewise.
      	(memento_of_get_type::is_float): Likewise.
      	(memento_of_get_type::is_bool): Likewise.
      	(memento_of_get_type::is_pointer): Likewise.
      	(memento_of_get_type::is_array): Likewise.
      	(memento_of_get_type::is_void): Likewise.
      	(memento_of_get_type::replay_into): Likewise.
      	(memento_of_get_type::make_debug_string): Likewise.
      	(memento_of_get_type::write_reproducer): Likewise.
      	(memento_of_get_pointer::dereference): Likewise.
      	(memento_of_get_pointer::accepts_writes_from): Likewise.
      	(memento_of_get_pointer::replay_into): Likewise.
      	(memento_of_get_pointer::is_int): Likewise.
      	(memento_of_get_pointer::is_float): Likewise.
      	(memento_of_get_pointer::is_bool): Likewise.
      	(memento_of_get_pointer::is_pointer): Likewise.
      	(memento_of_get_pointer::is_array): Likewise.
      	(memento_of_get_pointer::make_debug_string): Likewise.
      	(memento_of_get_pointer::write_reproducer): Likewise.
      	(memento_of_get_const::dereference): Likewise.
      	(memento_of_get_const::accepts_writes_from): Likewise.
      	(memento_of_get_const::unqualified): Likewise.
      	(memento_of_get_const::is_int): Likewise.
      	(memento_of_get_const::is_float): Likewise.
      	(memento_of_get_const::is_bool): Likewise.
      	(memento_of_get_const::is_pointer): Likewise.
      	(memento_of_get_const::is_array): Likewise.
      	(memento_of_get_const::void replay_into): Likewise;
      	(memento_of_get_const::make_debug_string): Likewise.
      	(memento_of_get_const::write_reproducer): Likewise.
      	(memento_of_get_volatile::dereference): Likewise.
      	(memento_of_get_volatile::unqualified): Likewise.
      	(memento_of_get_volatile::is_int): Likewise.
      	(memento_of_get_volatile::is_float): Likewise.
      	(memento_of_get_volatile::is_bool): Likewise.
      	(memento_of_get_volatile::is_pointer): Likewise.
      	(memento_of_get_volatile::is_array): Likewise.
      	(memento_of_get_volatile::replay_into): Likewise;
      	(memento_of_get_volatile::make_debug_string): Likewise.
      	(memento_of_get_volatile::write_reproducer): Likewise.
      	(array_type::dereference): Likewise.
      	(array_type::is_int): Likewise.
      	(array_type::is_float): Likewise.
      	(array_type::is_bool): Likewise.
      	(array_type::is_pointer): Likewise.
      	(array_type::is_array): Likewise.
      	(array_type::replay_into): Likewise;
      	(array_type::make_debug_string): Likewise.
      	(array_type::write_reproducer): Likewise.
      	(function_type::dereference): Likewise.
      	(function_type::function_dyn_cast_function_type): Likewise.
      	(function_type::function_as_a_function_type): Likewise.
      	(function_type::is_int): Likewise.
      	(function_type::is_float): Likewise.
      	(function_type::is_bool): Likewise.
      	(function_type::is_pointer): Likewise.
      	(function_type::is_array): Likewise.
      	(function_type::replay_into): Likewise;
      	(function_type::make_debug_string): Likewise.
      	(function_type::write_reproducer): Likewise.
      	(field::replay_into): Likewise;
      	(field::write_to_dump): Likewise.
      	(field::make_debug_string): Likewise.
      	(field::write_reproducer): Likewise.
      	(compound_type::dereference): Likewise.
      	(compound_type::is_int): Likewise.
      	(compound_type::is_float): Likewise.
      	(compound_type::is_bool): Likewise.
      	(compound_type::is_pointer): Likewise.
      	(compound_type::is_array): Likewise.
      	(compound_type::has_known_size): Likewise.
      	(struct_::dyn_cast_struct): Likewise.
      	(struct_::replay_into): Likewise.
      	(struct_::access_as_type): Likewise.
      	(struct_::make_debug_string): Likewise.
      	(struct_::write_reproducer): Likewise.
      	(fields::replay_into): Likewise.
      	(fields::write_to_dump): Likewise.
      	(fields::make_debug_string): Likewise.
      	(fields::write_reproducer): Likewise.
      	(union_::replay_into): Likewise.
      	(union_::make_debug_string): Likewise.
      	(union_::write_reproducer): Likewise.
      	(lvalue::access_as_rvalue): Mark with OVERRIDE.
      	(param::replay_into): Mark with FINAL OVERRIDE.
      	(param::visit_children): Likewise.
      	(param::dyn_cast_param): Likewise.
      	(param::access_as_rvalue): Likewise.
      	(param::access_as_lvalue): Likewise.
      	(param::make_debug_string): Likewise.
      	(param::write_reproducer): Likewise.
      	(param::get_precedence): Likewise.
      	(function::replay_into): Likewise.
      	(function::write_to_dump): Likewise.
      	(function::make_debug_string): Likewise.
      	(function::write_reproducer): Likewise.
      	(block::write_to_dump): Likewise.
      	(block::make_debug_string): Likewise.
      	(block::write_reproducer): Likewise.
      	(block::replay_into): Likewise.
      	(global::replay_into): Likewise;
      	(global::visit_children): Likewise.
      	(global::write_to_dump): Likewise.
      	(global::make_debug_string): Likewise.
      	(global::write_reproducer): Likewise.
      	(global::get_precedence): Likewise.
      	(memento_of_new_rvalue_from_const::replay_into): Likewise.
      	(memento_of_new_rvalue_from_const::visit_children): Likewise.
      	(memento_of_new_rvalue_from_const::is_constant): Likewise.
      	(memento_of_new_rvalue_from_const::get_wide_int): Likewise.
      	(memento_of_new_rvalue_from_const::make_debug_string): Likewise.
      	(memento_of_new_rvalue_from_const::write_reproducer): Likewise.
      	(memento_of_new_rvalue_from_const::get_precedence): Likewise.
      	(memento_of_new_string_literal::replay_into): Likewise.
      	(memento_of_new_string_literal::visit_children): Likewise.
      	(memento_of_new_string_literal::make_debug_string): Likewise.
      	(memento_of_new_string_literal::write_reproducer): Likewise.
      	(memento_of_new_string_literal::get_precedence): Likewise.
      	(unary_op::replay_into): Likewise.
      	(unary_op::visit_children): Likewise.
      	(unary_op::make_debug_string): Likewise.
      	(unary_op::write_reproducer): Likewise.
      	(unary_op::get_precedence): Likewise.
      	(binary_op::replay_into): Likewise.
      	(binary_op::visit_children): Likewise.
      	(binary_op::make_debug_string): Likewise.
      	(binary_op::write_reproducer): Likewise.
      	(binary_op::get_precedence): Likewise.
      	(comparison::replay_into): Likewise.
      	(comparison::visit_children): Likewise.
      	(comparison::make_debug_string): Likewise.
      	(comparison::write_reproducer): Likewise.
      	(comparison::get_precedence): Likewise.
      	(cast::replay_into): Likewise.
      	(cast::visit_children): Likewise.
      	(cast::make_debug_string): Likewise.
      	(cast::write_reproducer): Likewise.
      	(cast::get_precedence): Likewise.
      	(call::replay_into): Likewise.
      	(call::visit_children): Likewise.
      	(call::make_debug_string): Likewise.
      	(call::write_reproducer): Likewise.
      	(call::get_precedence): Likewise.
      	(call_through_ptr::replay_into): Likewise.
      	(call_through_ptr::visit_children): Likewise.
      	(call_through_ptr::make_debug_string): Likewise.
      	(call_through_ptr::write_reproducer): Likewise.
      	(call_through_ptr::get_precedence): Likewise.
      	(array_access::replay_into): Likewise.
      	(array_access::visit_children): Likewise.
      	(array_access::make_debug_string): Likewise.
      	(array_access::write_reproducer): Likewise.
      	(array_access::get_precedence): Likewise.
      	(access_field_of_lvalue::replay_into): Likewise.
      	(access_field_of_lvalue::visit_children): Likewise.
      	(access_field_of_lvalue::make_debug_string): Likewise.
      	(access_field_of_lvalue::write_reproducer): Likewise.
      	(access_field_of_lvalue::get_precedence): Likewise.
      	(access_field_rvalue::replay_into): Likewise.
      	(access_field_rvalue::visit_children): Likewise.
      	(access_field_rvalue::make_debug_string): Likewise.
      	(access_field_rvalue::write_reproducer): Likewise.
      	(access_field_rvalue::get_precedence): Likewise.
      	(dereference_field_rvalue::replay_into): Likewise.
      	(dereference_field_rvalue::visit_children): Likewise.
      	(dereference_field_rvalue::make_debug_string): Likewise.
      	(dereference_field_rvalue::write_reproducer): Likewise.
      	(dereference_field_rvalue::get_precedence): Likewise.
      	(dereference_rvalue::replay_into): Likewise.
      	(dereference_rvalue::visit_children): Likewise.
      	(dereference_rvalue::make_debug_string): Likewise.
      	(dereference_rvalue::write_reproducer): Likewise.
      	(dereference_rvalue::get_precedence): Likewise.
      	(get_address_of_lvalue::replay_into): Likewise.
      	(get_address_of_lvalue::visit_children): Likewise.
      	(get_address_of_lvalue::make_debug_string): Likewise.
      	(get_address_of_lvalue::write_reproducer): Likewise.
      	(get_address_of_lvalue::get_precedence): Likewise.
      	(local::replay_into): Likewise.
      	(local::visit_children): Likewise.
      	(local::write_to_dump): Likewise.
      	(local::make_debug_string): Likewise.
      	(local::write_reproducer): Likewise.
      	(local::get_precedence): Likewise.
      	(statement::write_to_dump): Likewise.
      	(eval::replay_into): Likewise.
      	(eval::make_debug_string): Likewise.
      	(eval::write_reproducer): Likewise.
      	(assignment::replay_into): Likewise.
      	(assignment::make_debug_string): Likewise.
      	(assignment::write_reproducer): Likewise.
      	(assignment_op::replay_into): Likewise.
      	(assignment_op::make_debug_string): Likewise.
      	(assignment_op::write_reproducer): Likewise.
      	(comment::replay_into): Likewise.
      	(comment::make_debug_string): Likewise.
      	(comment::write_reproducer): Likewise.
      	(conditional::replay_into): Likewise.
      	(conditional::get_successor_blocks): Likewise.
      	(conditional::make_debug_string): Likewise.
      	(conditional::write_reproducer): Likewise.
      	(jump::replay_into): Likewise.
      	(jump::get_successor_blocks): Likewise.
      	(jump::make_debug_string): Likewise.
      	(jump::write_reproducer): Likewise.
      	(return_::replay_into): Likewise.
      	(return_::get_successor_blocks): Likewise.
      	(return_::make_debug_string): Likewise.
      	(return_::write_reproducer): Likewise.
      	(case_::replay_into): Likewise.
      	(case_::write_reproducer): Likewise.
      	(case_::make_debug_string): Likewise.
      	(switch_::replay_into): Likewise.
      	(switch_::get_successor_blocks): Likewise.
      	(switch_::make_debug_string): Likewise.
      	(switch_::write_reproducer): Likewise.
      
      From-SVN: r236223
      David Malcolm committed
    • re PR bootstrap/71071 (ICE --enable-checking=fold : fold check: original tree changed by fold) · 9e37582d
      	PR bootstrap/71071
      	* fold-const.c (fold_checksum_tree): Allow modification
      	of TYPE_ALIAS_SET during folding.
      
      	* gcc.dg/pr71071.c: New test.
      
      From-SVN: r236222
      Jakub Jelinek committed
    • Fix type-dependence and the current instantiation. · 23cb7266
      	PR c++/10200
      	PR c++/69753
      	* pt.c (tsubst_decl): Use uses_template_parms.
      	(instantiate_template_1): Handle non-dependent calls in templates.
      	(value_dependent_expression_p): Handle BASELINK, FUNCTION_DECL.
      	(type_dependent_expression_p): Only consider innermost template	args.
      	(dependent_template_arg_p): Check enclosing class of a template here.
      	(dependent_template_p): Not here.
      	(type_dependent_object_expression_p): New.
      	* typeck.c (finish_class_member_access_expr): Use it.
      	* parser.c (cp_parser_postfix_expression): Use it.
      	(cp_parser_postfix_dot_deref_expression): Use it.  Use comptypes
      	to detect the current instantiation.
      	(cp_parser_lookup_name): Really implement DR 141.
      	* search.c (lookup_field_r): Prefer a dependent using-declaration.
      	(any_dependent_bases_p): Split out from...
      	* name-lookup.c (do_class_using_decl): ...here.
      	* call.c (build_new_method_call_1): Use it.
      	* semantics.c (finish_call_expr): 'this' doesn't make a call dependent.
      	* tree.c (non_static_member_function_p): Remove.
      	* typeck2.c (build_x_arrow): Use dependent_scope_p.
      
      From-SVN: r236221
      Jason Merrill committed
    • Improve diagnostic for forgotten (). · 827e5d3f
      	* parser.c (cp_parser_postfix_dot_deref_expression): Use
      	complete_type_or_else for unknown_type_node, too.
      
      From-SVN: r236220
      Jason Merrill committed
    • tree-vect.h (check_vect): Handle AVX2, remove XOP handling. · a278aa17
      	* gcc.dg/vect/tree-vect.h (check_vect): Handle AVX2,
      	remove XOP handling.
      
      From-SVN: r236216
      Uros Bizjak committed
    • i386.c (ix86_compute_frame_layout, [...]): Use HOST_WIDE_INT_C macro. · 6b6435ca
      	* config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
      	ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
      	(ix86_split_to_parts): Likewise.  Fix up formatting.
      
      From-SVN: r236215
      Jakub Jelinek committed
    • Cast to unsigned HOST_WIDE_INT in printf format · d8d68c5b
      	* tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
      	unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
      	printf format.
      
      From-SVN: r236214
      H.J. Lu committed
    • nvptx.c (nvptx_mangle_decl_assembler_name): New. · 72b1108c
      	* config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
      	(nvptx_name_replacement): Delete.
      	(write_fn_proto, write_fn_proto_from_insn,
      	nvptx_output_call_insn): Remove nvptx_name_replacement call.
      	(TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
      	* langhooks.c (add_builtin_funcction_common): Call
      	targetm.mangle_decl_assembler_name.
      
      From-SVN: r236212
      Nathan Sidwell committed