Commit Graph

149065 Commits

Author SHA1 Message Date
Andreas Krebbel
2d6744f475 S/390: Wrap more macro args into ()
Turned out that there where a few () around macro args uses missing.
One real problem with it was detected with the int-in-bool-context in
the definition of DBX_REGISTER_NUMBER. But while being at it I've
also tried to fix other places where brackets might be missing.

gcc/ChangeLog:

2016-10-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.h: Wrap more macros args in brackets and fix
        some formatting.

From-SVN: r240930
2016-10-10 15:36:42 +00:00
Jonathan Wakely
9e023e3321 Implement constexpr std::addressof for C++17
* doc/xml/manual/intro.xml: Document DR 2296 status.
	* doc/xml/manual/status_cxx2017.xml: Update status.
	* include/bits/move.h (__addressof): Add _GLIBCXX_CONSTEXPR and
	call __builtin_addressof.
	(addressof): Add _GLIBCXX17_CONSTEXPR.
	* testsuite/20_util/addressof/requirements/constexpr.cc: New test.
	* testsuite/20_util/forward/c_neg.cc: Adjust dg-error lineno.
	* testsuite/20_util/forward/f_neg.cc: Likewise.

From-SVN: r240929
2016-10-10 16:34:28 +01:00
Thomas Koenig
5f86926613 re PR fortran/77915 (Internal error for matmul() in forall with optimization)
2016-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/77915
	* frontend-passes.c (inline_matmul_assign):  Return early if
	inside a FORALL statement.

2016-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/77915
	* gfortran.dg/matmul_11.f90:  New test.

From-SVN: r240928
2016-10-10 14:54:26 +00:00
Georg-Johann Lay
df48be86ac gen-avr-mmcu-texi.c (string.h): Include.
* config/avr/gen-avr-mmcu-texi.c (string.h): Include.

From-SVN: r240925
2016-10-10 14:18:04 +00:00
Jiong Wang
174e0b00c1 [4/4] ARMv8.2-A testsuite for new scalar intrinsics
gcc/testsuite/

	* gcc.target/aarch64/advsimd-intrinsics/unary_scalar_op.inc: Support FMT64.
	* gcc.target/aarch64/advsimd-intrinsics/vabdh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcageh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcagth_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcaleh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcalth_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vceqh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vceqzh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcgeh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcgezh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcgth_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcgtzh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcleh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vclezh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vclth_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcltzh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtah_s16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtah_s64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtah_u16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtah_u64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s64_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u64_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s64_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u64_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_s16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_s64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_u16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvth_u64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtph_s16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtph_s64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtph_u16_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vcvtph_u64_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vfmash_lane_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmaxh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vminh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulh_lane_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulxh_lane_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vrecpeh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vrecpsh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vrecpxh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vrsqrteh_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vrsqrtsh_f16_1.c: New.

From-SVN: r240924
2016-10-10 13:50:10 +00:00
Jiong Wang
4bc63138bc [3/4] ARMv8.2-A testsuite for new vector intrinsics
gcc/testsuite/

	* gcc.target/aarch64/advsimd-intrinsics/vdiv_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vfmas_lane_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vfmas_n_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmaxnmv_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmaxv_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vminnmv_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vminv_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmul_lane_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulx_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vmulx_n_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vpminmaxnm_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vrndi_f16_1.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vsqrt_f16_1.c: New.

From-SVN: r240923
2016-10-10 13:47:14 +00:00
Jiong Wang
8f3edb0732 [2/4] ARMv8.2-A testsuite for new data movement intrinsics
gcc/testsuite/

	* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (FP16_SUPPORTED):
	Enable AArch64.
	* gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c: Add support for
	vdup*_laneq.
	* gcc.target/aarch64/advsimd-intrinsics/vduph_lane.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vtrn_half.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vuzp_half.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vzip_half.c: New.

From-SVN: r240922
2016-10-10 13:45:17 +00:00
Jiong Wang
6e49f922a6 [1/4] ARMv8.2-A FP16 testsuite selector
gcc/testsuite/

	* target-supports.exp (add_options_for_arm_v8_2a_fp16_scalar): Mention
	AArch64 support.
	(add_options_for_arm_v8_2a_fp16_neon): Likewise.
	(check_effective_target_arm_v8_2a_fp16_scalar_ok_nocache): Support
	AArch64 targets.
	(check_effective_target_arm_v8_2a_fp16_neon_ok_nocache): Support
	AArch64 targets.
	(check_effective_target_arm_v8_2a_fp16_scalar_hw): Support AArch64
	targets.
	(check_effective_target_arm_v8_2a_fp16_neon_hw): Likewise.

From-SVN: r240921
2016-10-10 13:43:01 +00:00
Jonathan Wakely
46942c8101 Define std::allocator<T>::is_always_equal
* include/bits/allocator.h (allocator<T>::is_always_equal): Define.
	* testsuite/20_util/allocator/requirements/typedefs.cc: Test for
	is_always_equal.
	* testsuite/util/testsuite_allocator.h
	(uneq_allocator::is_always_equal): Define as false_type.

From-SVN: r240920
2016-10-10 13:17:45 +01:00
Jonathan Wakely
f2e79496bf LWG 2733, LWG 2759 reject bool in gcd and lcm
* include/experimental/numeric (gcd, lcm): Make bool arguments
	ill-formed.
	* include/std/numeric (gcd, lcm): Likewise.
	* testsuite/26_numerics/gcd/gcd_neg.cc: New test.
	* testsuite/26_numerics/lcm/lcm_neg.cc: New test.

From-SVN: r240919
2016-10-10 13:17:34 +01:00
Andreas Schwab
fee13acdd8 re PR target/77738 (Invalid initialisation of ar.lc register)
PR target/77738
* config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
pseudo is not DImode.

From-SVN: r240918
2016-10-10 12:16:00 +00:00
Jonathan Wakely
208b8b69b6 Add noexcept to enable_shared_from_this::weak_from_this
* include/bits/shared_ptr.h (enable_shared_from_this::weak_from_this):
	Add noexcept.
	* include/bits/shared_ptr_base.h
	(__enable_shared_from_this::weak_from_this): Likewise.
	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
	Test exception-specification of weak_from_this.

From-SVN: r240917
2016-10-10 12:44:05 +01:00
Claudiu Zissulescu
30102051a5 [ARC] Disable compact casesi patterns for arcv2
gcc/
2016-05-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* common/config/arc/arc-common.c (arc_option_optimization_table):
	Remove compact casesi option.
	* config/arc/arc.c (arc_override_options): Use compact casesi
	option only for pre-ARCv2 cores.
	* doc/invoke.texi (mcompact-casesi): Update text.

From-SVN: r240916
2016-10-10 13:39:22 +02:00
Eric Botcazou
41683e1a62 decl.c (gnat_to_gnu_entity): Put volatile qualifier on types at the very end of the processing.
* gcc-interface/decl.c (gnat_to_gnu_entity): Put volatile qualifier
	on types at the very end of the processing.
	(gnat_to_gnu_param): Remove redundant test.
	(change_qualified_type): Do nothing for unconstrained array types.

From-SVN: r240915
2016-10-10 10:09:13 +00:00
Eric Botcazou
036a2fa23e utils2.c (find_common_type): Do not return the LHS type if it's an array with non-constant lower bound and...
* gcc-interface/utils2.c (find_common_type): Do not return the LHS type
	if it's an array with non-constant lower bound and the RHS type is an
	array with a constant one.

From-SVN: r240913
2016-10-10 09:46:10 +00:00
Eric Botcazou
55cfd746c7 utils.c (convert): For a biased input type, convert the bias itself to the base type before adding it.
* gcc-interface/utils.c (convert): For a biased input type, convert
	the bias itself to the base type before adding it.

From-SVN: r240910
2016-10-10 08:47:52 +00:00
Eric Botcazou
f47ef399b6 * config-lang.in (lang_requires_boot_languages): Delete.
From-SVN: r240909
2016-10-10 07:18:07 +00:00
Aaron Sawdey
87b44b83c0 rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED): Add macro to say we can efficiently handle overlapping unaligned loads.
2016-10-09  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

	* config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED): 
	Add macro to say we can efficiently handle overlapping unaligned
	loads.
	* config/rs6000/rs6000.c (expand_block_compare): Avoid generating
	poor code for processors older than p8.

From-SVN: r240908
2016-10-09 23:42:08 -05:00
GCC Administrator
4815e7d405 Daily bump.
From-SVN: r240907
2016-10-10 00:16:16 +00:00
Eric Botcazou
772ebeb541 * gen-pass-instances.awk: Remove GNUism.
From-SVN: r240904
2016-10-09 20:50:52 +00:00
Prathamesh Kulkarni
676b4899d6 ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to NULL of (*ipcp_transformations)][node->uid].
2016-10-09  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to NULL of
	(*ipcp_transformations)][node->uid].

From-SVN: r240903
2016-10-09 18:40:09 +00:00
Janne Blomqvist
b923394429 PR 67585 Handle EINTR
Many POSIX systems have the bad habit of not restarting interrupted
syscalls. On these systems it's up to the user to check for an error
with errno == EINTR and restart manually. This patch does this for
libgfortran, so that GFortran users don't have to do it.

2016-10-09  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/67585
        * io/io.h: TEMP_FAILURE_RETRY: Define macro if not found.
        * io/unix.c (raw_read): Handle EINTR.
        (raw_write): Check for return value -1.
        (raw_seek): Handle EINTR.
        (raw_tell): Likewise.
        (raw_size): Likewise.
        (raw_truncate): Likewise.
        (raw_close): Likewise.
        (buf_flush): Call raw_seek instead of lseek.
        (buf_read): Likewise.
        (buf_write): Likewise.
        (fd_to_stream): Handle EINTR.
        (tempfile_open): Likewise.
        (regular_file2): Likewise.
        (compare_file_filename): Likewise.
        (find_file): Likewise.
        (inquire_sequential): Likewise.
        (inquire_direct): Likewise.
        (inquire_formatted): Likewise.

From-SVN: r240902
2016-10-09 21:05:56 +03:00
John David Anglin
df74f099d3 pa.h (BIGGEST_ALIGNMENT): Adjust comment.
* config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
	(MALLOC_ABI_ALIGNMENT): Define.

From-SVN: r240901
2016-10-09 17:02:21 +00:00
Jakub Jelinek
8813a647b5 tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros.
* tree-ssa.c (target_for_debug_bind, verify_phi_args,
	ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
	VAR_OR_FUNCTION_DECL_P macros.
	* tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
	chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
	chkp_find_bounds_1): Likewise.
	* ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
	* hsa-gen.c (get_symbol_for_decl): Likewise.
	* cgraphunit.c (check_global_declaration, analyze_functions,
	handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
	Likewise.
	* gimple-fold.c (can_refer_decl_in_current_unit_p,
	canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
	Likewise.
	* tree.c (set_decl_section_name, copy_node_stat,
	need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
	merge_dllimport_decl_attributes, handle_dll_attribute,
	decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
	verify_type): Likewise.
	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
	find_explicit_erroneous_behavior): Likewise.
	* sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
	* ipa.c (process_references): Likewise.
	* tree-chkp-opt.c (chkp_get_check_result): Likewise.
	* varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
	notice_global_symbol, assemble_variable, mark_decl_referenced,
	build_constant_desc, output_constant_def_contents, do_assemble_alias,
	make_decl_one_only, default_section_type_flags,
	categorize_decl_for_section, default_encode_section_info): Likewise.
	* trans-mem.c (requires_barrier): Likewise.
	* gimple-expr.c (mark_addressable): Likewise.
	* cfgexpand.c (add_scope_conflicts_1, expand_one_var,
	expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
	expand_debug_expr): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* ubsan.c (instrument_bool_enum_load): Likewise.
	* tree-pretty-print.c (print_declaration): Likewise.
	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
	* tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
	* asan.c (asan_protect_global, instrument_derefs): Likewise.
	* tree-into-ssa.c (rewrite_stmt, maybe_register_def,
	pass_build_ssa::execute): Likewise.
	* var-tracking.c (var_debug_decl, track_expr_p): Likewise.
	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
	Likewise.
	* ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
	Likewise.
	* tree-inline.c (insert_debug_decl_map, remap_ssa_name,
	can_be_nonlocal, remap_decls, copy_debug_stmt,
	initialize_inlined_parameters, add_local_variables,
	reset_debug_binding, replace_locals_op): Likewise.
	* dse.c (can_escape): Likewise.
	* ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
	Likewise.
	* tree-diagnostic.c (default_tree_printer): Likewise.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields,
	unpack_ts_decl_with_vis_value_fields,
	lto_input_ts_decl_common_tree_pointers): Likewise.
	* builtins.c (builtin_save_expr, fold_builtin_expect,
	readonly_data_expr): Likewise.
	* tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
	create_variable_info_for, set_uids_in_ptset, visit_loadstore):
	Likewise.
	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
	* gimplify.c (force_constant_size, gimplify_bind_expr,
	gimplify_decl_expr, gimplify_var_or_parm_decl,
	gimplify_compound_lval, gimplify_init_constructor,
	gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
	gimplify_type_sizes): Likewise.
	* cgraphbuild.c (record_reference, record_type_list, mark_address,
	mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
	* tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
	remove_unused_locals): Likewise.
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
	ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
	* function.c (instantiate_expr, instantiate_decls_1,
	setjmp_vars_warning, add_local_decl): Likewise.
	* alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
	Likewise.
	* tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
	va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
	optimize_va_list_gpr_fpr_size): Likewise.
	* tree-nrv.c (pass_nrv::execute): Likewise.
	* tsan.c (instrument_expr): Likewise.
	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
	* vtable-verify.c (verify_bb_vtables): Likewise.
	* tree-dfa.c (ssa_default_def, set_ssa_default_def,
	get_ref_base_and_extent): Likewise.
	* toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
	Likewise.
	* tree-sra.c (static bool constant_decl_p, find_var_candidates,
	analyze_all_variable_accesses): Likewise.
	* tree-nested.c (get_nonlocal_debug_decl,
	convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
	note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
	get_local_debug_decl, convert_local_omp_clauses,
	convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
	Likewise.
	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
	* stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
	* dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
	dbxout_symbol, dbxout_common_check): Likewise.
	* expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
	string_constant): Likewise.
	* hsa.c (hsa_get_declaration_name): Likewise.
	* passes.c (rest_of_decl_compilation): Likewise.
	* tree-ssanames.c (make_ssa_name_fn): Likewise.
	* tree-streamer-out.c (pack_ts_decl_common_value_fields,
	pack_ts_decl_with_vis_value_fields,
	write_ts_decl_common_tree_pointers): Likewise.
	* stor-layout.c (place_field): Likewise.
	* symtab.c (symtab_node::maybe_create_reference,
	symtab_node::verify_base, symtab_node::make_decl_local,
	symtab_node::copy_visibility_from,
	symtab_node::can_increase_alignment_p): Likewise.
	* dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
	decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
	fortran_common, add_location_or_const_value_attribute,
	add_scalar_info, add_linkage_name, set_block_abstract_flags,
	local_function_static, gen_variable_die, dwarf2out_late_global_decl,
	optimize_one_addr_into_implicit_ptr,
	optimize_location_into_implicit_ptr): Likewise.
	* gimple-low.c (record_vars_into): Likewise.
	* ipa-visibility.c (update_vtable_references): Likewise.
	* tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
	Likewise.
	* lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
	DFS::DFS_write_tree_body, write_symbol): Likewise.
	* langhooks.c (lhd_warn_unused_global_decl,
	lhd_set_decl_assembler_name): Likewise.
	* attribs.c (decl_attributes): Likewise.
	* except.c (output_ttype): Likewise.
	* varpool.c (varpool_node::get_create, ctor_for_folding,
	varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
	* fold-const.c (fold_unary_loc): Likewise.
	* ipa-prop.c (ipa_compute_jump_functions_for_edge,
	ipa_find_agg_cst_from_init): Likewise.
	* omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
	expand_omp_target, lower_omp_regimplify_p,
	grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
	find_link_var_op): Likewise.
	* tree-chrec.c (chrec_contains_symbols): Likewise.
	* tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
	gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
	execute_fixup_cfg): Likewise.

From-SVN: r240900
2016-10-09 13:19:48 +02:00
Jakub Jelinek
4dfb8a2a60 re PR tree-optimization/77901 (ICE in tree-sse-reassoc,c:2881)
PR tree-optimization/77901
	* tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
	if ranges[i].exp is SSA_NAME when looking for >= and only when
	ranges[i].exp is NULL or SSA_NAME when looking for the other
	comparison.

	* gcc.c-torture/compile/pr77901.c: New test.

From-SVN: r240899
2016-10-09 13:18:53 +02:00
Prathamesh Kulkarni
67b974787c ipa-cp.c (ipcp_alignment_lattice): Remove.
2016-10-09  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* ipa-cp.c (ipcp_alignment_lattice): Remove.
	(ipcp_param_lattices): Remove field alignment.
	(print_all_lattices): Remove call to ipcp_alignment_lattice::print.
	(set_all_contains_variable): Remove call to
	ipcp_alignment_lattice::set_to_bottom.
	(initialize_node_lattices): Likewise.
	(propagate_alignment_accross_jump_function): Remove.
	(propagate_constants_accross_call): Remove call to
	propagate_alignment_accross_jump_function.
	(ipcp_store_alignment_results): Remove.
	(ipcp_driver): Remove call to ipcp_store_alignment_results.
	(propagate_bits_accross_jump_function): Handle ancestor jump function.
	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
	pretty-printing of alignment jump function.
	(ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
	(ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
	alignments and remove computing ipa_alignment jump function.
	(ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
	(ipa_write_jump_functions): Remove streaming for ipa_alignment.
	(ipa_read_jump_function): Remove reading of ipa_alignment.
	(write_ipcp_transformation_info): Remove streaming for alignment
	propagation summary.
	(read_ipcp_transformation_info): Remove reading of alignment
	propagation summary. 
	(ipcp_update_alignments): Remove.
	(ipcp_update_bits): Adjust to set alignment for parameters of pointer
	type.
	(ipcp_transform_function): Remove call to ipcp_update_alignments()
	and remove assignment to (*ipcp_transformations)[node->uid].alignments.
	* ipa-prop.h (ipa_alignment): Remove.
	(ipa_jump_func): Remove field alignment.
	(ipcp_transformation_summary): Remove field alignments. 
	* doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
	* opts.c (default_options_table): Remove entry for fipa-cp-alignment.
	(enable_fdo_optimizations): Remove checking for fipa-cp-alignment.

testsuite/
	* gcc.dg/ipa/propalign-1.c: Adjust scan-ipa-dump.
	* gcc.dg/ipa/propalign-2.c: Likewise
	* gcc.dg/ipa/propalign-3.c: Likewise.
	* gcc.dg/ipa/propalign-4.c: Likewise.
	* gcc.dg/ipa/propalign-5.c: Likewise.

From-SVN: r240898
2016-10-09 04:48:50 +00:00
Jason Merrill
e525cfa7e3 * cp-gimplify.c (cp_fold): Add variable name.
From-SVN: r240897
2016-10-08 22:41:47 -04:00
GCC Administrator
51e95f4ea9 Daily bump.
From-SVN: r240896
2016-10-09 00:16:17 +00:00
Jason Merrill
627be19fe1 Delay folding of bool conversion into COND_EXPR.
gcc/c-family/
	* c-common.c (c_common_truthvalue_conversion): Don't distribute
	into COND_EXPR in C++.
gcc/cp/
	* cp-gimplify.c (cp_fold): Distribute cp_truthvalue_conversion
	into COND_EXPR.

From-SVN: r240893
2016-10-08 13:40:22 -04:00
Eric Botcazou
490a67336b sparc.h (FIXED_REGISTERS): Add %icc.
* config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.

	* config/visium/visium.c (visium_expand_int_cstore): Revert latest
	change.
	(visium_expand_fp_cstore): Likewise.

From-SVN: r240892
2016-10-08 17:32:46 +00:00
Prathamesh Kulkarni
a5fb7ad2d1 diagnostic-core.h (warning_at_rich_loc_n): Declare.
2016-10-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* diagnostic-core.h (warning_at_rich_loc_n): Declare.
	* diagnostic.c (warning_at_rich_loc_n): New function.
	(diagnostic_n_impl_richloc): Likewise.
	(diagnostic_n_impl): Move most of the function to
	diagnostic_n_impl_richloc and call it.

From-SVN: r240891
2016-10-08 17:04:35 +00:00
Eric Botcazou
9c453de707 utils.c (convert): Add missing break.
* gcc-interface/utils.c (convert) <VECTOR_CST>: Add missing break.

	Revert
	2016-09-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gcc-interface/decl.c: Fix fall through comment formatting.
	* gcc-interface/misc.c: Likewise.
	* gcc-interface/trans.c: Likewise.
	* gcc-interface/utils.c: Likewise.
	* gcc-interface/utils2.c: Likewise.

From-SVN: r240890
2016-10-08 17:04:28 +00:00
Jason Merrill
36cbfdb066 Further P0135 refinement.
* call.c (build_user_type_conversion_1): Consider conversions from
	a single element in an initializer-list.
	(build_temp): Undo early_elide_copy change.
	(build_over_call): Check that we don't try to copy a TARGET_EXPR
	in C++17 mode.  Set user_conv_p here.
	(convert_like_real): Not here.
	(check_self_delegation): Split out from...
	(build_special_member_call): ...here.  Handle C++17 copy elision.
	* cvt.c (early_elide_copy): Remove.
	(ocp_convert): Undo early_elide_copy change.
	* except.c (build_throw): Likewise.
	* init.c (expand_default_init): Likewise.
	* typeck.c (cp_build_modify_expr): Likewise.

From-SVN: r240889
2016-10-08 12:23:26 -04:00
Jakub Jelinek
80994c4654 gen-pass-instances.awk: Rewritten.
* gen-pass-instances.awk: Rewritten.
	* Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
	$(PASSES_EXTRA) after passes.def to the script.
	* config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
	* config/i386/i386-passes.def: New file.
	* config/i386/i386-protos.h (make_pass_insert_vzeroupper,
	make_pass_stv): Declare.
	* config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
	false.
	(pass_stv::gate): Depending on timode_p member require TARGET_64BIT
	or !TARGET_64BIT.
	(pass_stv::clone, pass_stv::set_pass_param): New methods.
	(pass_stv::timode_p): New non-static data member.
	(ix86_option_override): Don't register passes here.

From-SVN: r240888
2016-10-08 15:50:50 +02:00
Jakub Jelinek
478167be62 gen-pass-instances.awk: Rewritten.
* gen-pass-instances.awk: Rewritten.
	* Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
	$(PASSES_EXTRA) after passes.def to the script.
	* config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
	* config/i386/i386-passes.def: New file.
	* config/i386/i386-protos.h (make_pass_insert_vzeroupper,
	make_pass_stv): Declare.
	* config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
	false.
	(pass_stv::gate): Depending on timode_p member require TARGET_64BIT
	or !TARGET_64BIT.
	(pass_stv::clone, pass_stv::set_pass_param): New methods.
	(pass_stv::timode_p): New non-static data member.
	(ix86_option_override): Don't register passes here.

From-SVN: r240887
2016-10-08 14:04:37 +02:00
Jakub Jelinek
ee19ef45ba invoke.texi: Document accepting Else, fallthrough.
* doc/invoke.texi: Document accepting Else, fallthrough.

	* lex.c (fallthrough_comment_p): Accept Else, fallthrough.

	* c-c++-common/Wimplicit-fallthrough-23.c (foo): Add further tests.

From-SVN: r240886
2016-10-08 12:54:27 +02:00
Jakub Jelinek
81b02905b0 invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment style changes.
* doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
	style changes.

	* lex.c (fallthrough_comment_p): Extend to handle more common FALLTHRU
	comment styles.

	* c-c++-common/Wimplicit-fallthrough-23.c (foo): Add further tests.

From-SVN: r240885
2016-10-08 12:53:05 +02:00
Jakub Jelinek
7bad794aa0 c-lex.c (c_lex_with_flags): For CPP_COMMENT token with PREV_FALLTHROUGH...
* c-lex.c (c_lex_with_flags) <case CPP_COMMENT>: For CPP_COMMENT
	token with PREV_FALLTHROUGH, skip all following CPP_PADDING and
	CPP_COMMENT tokens and set add_flags to PREV_FALLTHROUGH afterwards.

	* doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
	FALLTHRU comment styles.

	* lex.c (fallthrough_comment_p): Fix off-by-one size comparison
	errors, cleanup.
	(_cpp_lex_direct): Allow arbitrary comments in between
	fallthrough_comment_p comment and following token.

	* c-c++-common/Wimplicit-fallthrough-23.c: New test.
	* c-c++-common/Wimplicit-fallthrough-24.c: New test.

From-SVN: r240884
2016-10-08 12:48:54 +02:00
GCC Administrator
6dc29c6db1 Daily bump.
From-SVN: r240882
2016-10-08 00:16:13 +00:00
Andrew Pinski
cd8b19afc0 aarch64-arches.def (AARCH64_ARCH): #undef at the end.
2016-10-07  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
        * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
        * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR): Likewise.
        * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION): Likewise.
        * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION): Likewise.
        * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
        (AARCH64_ARCH): Likewise.
        * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION): Likewise.
        (AARCH64_CORE): Likewise.
        (AARCH64_ARCH): Likewise.
        * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
        (AARCH64_EXTRA_TUNING_OPTION): Likewise.
        * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
        (AARCH64_EXTRA_TUNING_OPTION): Likewise.
        (AARCH64_ARCH): Likewise.
        (AARCH64_CORE): Likewise.
        * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
        * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
        (AARCH64_CORE): Likewise.
        (AARCH64_ARCH): Likewise.

From-SVN: r240876
2016-10-07 14:36:41 -07:00
Fritz Reese
56d3a930ae Fix ICE due to map typespecs with different sized charlens being copied.
2016-10-07  Fritz Reese  <fritzoreese@gmail.com>

Fix ICE due to map typespecs with different sized charlens being copied.

	gcc/fortran/
	* interface.c (compare_components): Check charlen for BT_CHAR.

	gcc/testsuite/gfortran.dg/
	* dec_union_11.f90: New testcase.

From-SVN: r240875
2016-10-07 21:25:16 +00:00
Nathan Sidwell
45e2bf2e5e re PR c++/64433 (Segmentation fault while compiling)
cp/
	PR c++/64433
	DR1658, DR1611
	* init.c (emit_mem_initializers): Don't construct vbases of
	abstract classes.
	(push_base_cleanups): Don't push vbase cleanups for abstract class
	when in C++14 mode.
	* method.c (synthethesized_method_walk): Don't walk vbases of
	abstract classes when in C++14 mode.

	testsuite/
	PR c++/66443
	* g++.dg/cpp0x/pr66443-cxx11.C: New.
	* g++.dg/cpp0x/pr66443-cxx11-2.C: New.
	* g++.dg/cpp1y/pr66443-cxx14.C: New
	* g++.dg/cpp1y/pr66443-cxx14-2.C: New.
	* g++.dg/cpp1y/pr66443-cxx14-3.C: New.

From-SVN: r240874
2016-10-07 20:01:17 +00:00
Jakub Jelinek
be845b04a8 Implement LWG2296 helper intrinsic c-family/
Implement LWG2296 helper intrinsic
c-family/
	* c-common.h (enum rid): Add RID_ADDRESSOF.
	* c-common.c (c_common_reswords): Add __builtin_addressof.
cp/
	* parser.c (cp_parser_postfix_expression): Handle RID_ADDRESSOF.
	* cp-objcp-common.c (cp_common_init_ts): Handle ADDRESSOF_EXPR.
	* constexpr.c (potential_constant_expression_1): Likewise.
	* error.c (dump_expr): Likewise.
	* typeck.c (cp_build_addressof): New function.
	* cp-tree.h (cp_build_addressof): Declare.
	* cxx-pretty-print.h (pp_cxx_addressof_expression): Declare.
	* cp-tree.def (ADDRESSOF_EXPR): New tree code.
	* cxx-pretty-print.c (cxx_pretty_printer::primary_expression): Handle
	ADDRESSOF_EXPR.  Add __builtin_addressof and
	__has_unique_object_representations into syntax in function comment.
	(pp_cxx_addressof_expression): New function.
	* pt.c (tsubst_copy_and_build): Handle ADDRESSOF_EXPR.
testsuite/
	* g++.dg/cpp0x/addressof1.C: New test.
	* g++.dg/cpp0x/addressof2.C: New test.

From-SVN: r240873
2016-10-07 21:37:46 +02:00
Michael Meissner
082139830a rs6000-c.c (rs6000_cpu_cpp_builtins): Split -mfloat128 into -mfloat128-type that enables the IEEE 128-bit floating...
[gcc]
2016-10-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
	-mfloat128 into -mfloat128-type that enables the IEEE 128-bit
	floating point type infrastructre, and -mfloat128 that enables the
	keyword.  Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
	if -mfloat128-type.  Define __ibm128 to be long double by default.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
	the IEEE 128-bit floating point type infrastructure should
	automatically be enabled.
	(rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
	instead of -mfloat128 to enable KFmode.
	(rs6000_option_override_internal): Split the option -mfloat128
	into -mfloat128-type and -mfloat128.  On Linux PowerPC 64-bit
	systems, automatically set -mfloat128-type, but don't enable it on
	other operating systems.  Move setting the long double size and
	IEEE quad support before the IEEE 128-bit floating point changes.
	(rs6000_init_builtins): Do not create a unique type for __ibm128
	if long double is IBM extended double, instead rely on __ibm128
	being defined as 'long double'.  If -mfloat128-type and not
	-mfloat128, create the KFmode type with an undocumented __ieee128
	keyword.
	(rs6000_init_libfuncs): Use -mfloat128-type instead of
	-mfloat128 for tests about the types, but keep tests for
	-mfloat128 to enable the keyword support.
	(rs6000_complex_function_value): Likewise.
	(rs6000_scalar_mode_supported_p): Likewise.
	(rs6000_floatn_mode): Likewise.
	(rs6000_c_mode_for_suffix): Likewise.
	(rs6000_opt_masks): Add -mfloat128-type.
	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
	-mfloat128-type being split from -mfloat128.  Add
	-mfloat128-hardware, which was missing.
	* config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
	-mfloat128 and -mfloat128-type:
	(-mfloat128-type): Likewise.
	* config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
	that 64-bit Linux systems with enable -mfloat128-type by default
	on VSX systems.
	* config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
	(FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
	-mfloat128-type instead of -mfloat128.
	(FLOAT128_2REG_P): Likewise.
	(MASK_FLOAT128_TYPE): Likewise.
	(ALTIVEC_ARG_MAX_RETURN): Likewise.
	(RS6000_BTM_FLOAT128): Likewise.
	(TARGET_FLOAT128): Poison old identifiers.
	(OPTION_MASK_FLOAT128): Likewise.
	(MASK_FLOAT128): Likewise.
	* config/rs6000/rs6000.md (FP): Likewise.
	(FLOAT128): Likewise.
	(fix_trunc<mode>di2): Likewise.
	(fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
	(floatdi<mode>2): Likewise.
	(floatuns<SDI:mode><IEEE128:mode>2): Likewise.
	(neg<mode>2, FLOAT128 iterator): Likewise.
	(abs<mode>2, FLOAT128 iterator): Likewise.
	(ieee_128bit_negative_zero): Likewise.
	(ieee_128bit_vsx_neg<mode>2): Likewise.
	(ieee_128bit_vsx_neg<mode>2_internal): Likewise.
	(ieee_128bit_vsx_abs<mode>2): Likewise.
	(ieee_128bit_vsx_abs<mode>2_internal): Likewise.
	(ieee_128bit_vsx_nabs<mode>2): Likewise.
	(ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
	(extendiftf2): Likewise.
	(extendifkf2): Likewise.
	(extendtfkf2): Likewise.
	(trunciftf2): Likewise.
	(truncifkf2): Likewise.
	(trunckftf2): Likewise.
	(trunctfif2): Likewise.
	(extendkftf2): Likewise.
	(trunctfkf2): Likewise.

[gcc/testsuite]
2016-10-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/float128-type-1.c: New test to check that
	PowerPC 64-bit Linux enables -mfloat128-type by default.
	* gcc.target/powerpc/float128-type-2.c: Likewise.
	* gcc.target/powerpc/float128-mix.c: Change error message to
	reflect that __ibm128 is now #define'ed to be long double.

From-SVN: r240872
2016-10-07 18:58:10 +00:00
Steven G. Kargl
bd845c14b7 re PR fortran/77406 (ICE in generic_correspondence, at fortran/interface.c:1123)
2016-10-07  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77406
	* interface.c (gfc_compare_interfaces): Fix detection of ambiguous
	interface involving alternate return.
	(check_interface1): Improve error message and loci.

2016-10-07  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77406
	* gfortran.dg/pr77406.f90: New test.
	* gfortran.dg/assumed_type_3.f90: Update error messages.
	* gfortran.dg/defined_operators_1.f90: Ditto.
	* gfortran.dg/generic_26.f90: Ditto.
	* gfortran.dg/generic_7.f90: Ditto.
	* gfortran.dg/gomp/udr5.f90: Ditto.
	* gfortran.dg/gomp/udr7.f90: Ditto.
	* gfortran.dg/interface_1.f90: Ditto.
	* gfortran.dg/interface_37.f90: Ditto.
	* gfortran.dg/interface_5.f90: Ditto.
	* gfortran.dg/interface_6.f90: Ditto.
	* gfortran.dg/interface_7.f90
	* gfortran.dg/no_arg_check_3.f90
	* gfortran.dg/operator_5.f90
	* gfortran.dg/proc_ptr_comp_20.f90: Ditto.

From-SVN: r240870
2016-10-07 18:18:03 +00:00
Jonathan Wakely
296002c6a1 Improve implementation-defined docs for libstdc++
* doc/xml/manual/status_cxx1998.xml: Improve documentation of
	implementation-defined properties.
	* doc/xml/manual/status_cxx2011.xml: Likewise.
	* doc/xml/manual/status_cxx2017.xml: Likewise.

From-SVN: r240869
2016-10-07 19:02:53 +01:00
Jonathan Wakely
873c7d5ade Implement std::has_unique_object_representations
* doc/xml/manual/status_cxx2017.xml: Update status.
	* include/std/type_traits (has_unique_object_representations): Define.
	* testsuite/20_util/has_unique_object_representations/value.cc: New.
	* testsuite/20_util/has_unique_object_representations/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/has_unique_object_representations/requirements/
	typedefs.cc: New.

From-SVN: r240868
2016-10-07 19:02:43 +01:00
Bernd Edlinger
c09c4992ac re PR c++/77700 (suspicios code in cp/parser.c)
2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/77700
        * c-common.c (c_common_truthvalue_conversion): Warn also for
        suspicious enum values in boolean context.

cp:
2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/77700
        * parser.c (cp_parser_base_specifier): Fix a warning.

testsuite:
2016-10-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/77700
        * c-c++-common/Wint-in-bool-context.c: Update test.

From-SVN: r240867
2016-10-07 17:10:38 +00:00
Kyrylo Tkachov
125f0e39bf [simplify-rtx] Zero-initialise local array in simplify_immed_subreg
* simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
	before merging in bytes to pass down to real_from_target.

From-SVN: r240866
2016-10-07 14:47:55 +00:00
Richard Biener
d7f336f846 tree-ssa-propagate.c (replace_phi_args_in): Remove no longer required hack.
2016-10-07  Richard Biener  <rguenther@suse.de>

	* tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
	required hack.
	(substitute_and_fold_dom_walker::before_dom_children):
	Substitute and fold before pass specific folding to avoid
	feeding that with SSA names that will be later released.
	* tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
	introduced by folding and visited by evaluate_stmt called during
	ccp_fold_stmt.
	(likely_value): Likewise.
	(evaluate_stmt): Likewise.
	* tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
	(simplify_div_or_mod_using_ranges): Likewise.
	(simplify_min_or_max_using_ranges): Likewise.
	(simplify_abs_using_ranges): Likewise.
	(simplify_conversion_using_ranges): Likewise.
	(simplify_float_conversion_using_ranges): Likewise.
	(simplify_stmt_using_ranges): Likewise.

	* gcc.dg/tree-ssa/vrp01.c: Adjust.
	* gcc.dg/tree-ssa/vrp34.c: Likewise.

From-SVN: r240865
2016-10-07 13:47:40 +00:00