156780 Commits

Author SHA1 Message Date
Richard Biener
18b4306c0a re PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1 in vect_analyze_data_ref_accesses)
2017-10-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82397
	* tree-data-ref.c (data_ref_compare_tree): Make sure to return
	equality only for semantically equal trees.

From-SVN: r253547
2017-10-09 14:13:43 +00:00
Richard Biener
7668b0a656 re PR tree-optimization/82449 (code-gen error in get_rename_from_scev)
2017-10-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82449
	* sese.c (scev_analyzable_p): Check whether the SCEV is linear.
	* tree-chrec.h (evolution_function_is_constant_p): Adjust to
	allow constant addresses.
	* tree-chrec.c (scev_is_linear_expression): Constant evolutions
	are linear.

	* gfortran.dg/graphite/pr82449.f: New testcase.

From-SVN: r253546
2017-10-09 13:50:10 +00:00
Pekka Jääskeläinen
14108eda7e [BRIGFE] Support BRIG_KIND_NONE directives.
These directives are legal everywhere.  They can be used to
patch away BRIG entries at the binary level.

Also add extra error detection for zeroed regions: make sure
the byteCount field is never zero.

The call code still failed a few PRM test cases. Now all PRM
branch cases pass again.

From-SVN: r253545
2017-10-09 13:06:01 +00:00
Andreas Krebbel
63eea5dcb5 S/390: Fix vec_nabs and vec_vfi builtin flags
gcc/ChangeLog:

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

	* config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
	flags.

From-SVN: r253544
2017-10-09 12:08:46 +00:00
Andreas Krebbel
ad2c91b251 S/390: PR82463: Fix vec_madd header file definition
The builtin was not correctly defined in the vecintrin.h header file.

gcc/testsuite/ChangeLog:

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

	PR target/82463
	* gcc.target/s390/zvector/pr82463.c: New test.

gcc/ChangeLog:

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

	PR target/82463
	* config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
	definitions.

From-SVN: r253543
2017-10-09 12:07:54 +00:00
Andreas Krebbel
3141e768ee S/390: PR82465: Fix vec_sqrt builtin flags
The vector double variant is available with z13.  A wrong flag in the
s390-builtins.def file triggered an error when compiling for z13.

gcc/testsuite/ChangeLog:

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

	PR target/82465
	* gcc.target/s390/zvector/pr82465.c: New test.

gcc/ChangeLog:

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

	PR target/82465
	* config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.

From-SVN: r253542
2017-10-09 12:06:11 +00:00
Jakub Jelinek
85f59ae75c re PR target/82464 (s390x z14: vector float: invalid parameter combination for intrinsic '__builtin_s390_vec_xor')
PR target/82464
	* config/s390/s390-builtins.def (s390_vec_xor_flt_a,
	s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.

From-SVN: r253541
2017-10-09 13:40:23 +02:00
Wilco Dijkstra
8d9c7f8a86 Fix ssa-dse-26.c
Add missing -fno-short-enums to ensure this test passes on arm-none-eabi
which uses short enums.

    gcc/testsuite/
	* gcc.dg/tree-ssa/ssa-dse-26.c (dg-options): Add -fno-short-enums.

From-SVN: r253540
2017-10-09 11:00:17 +00:00
Richard Sandiford
7b27cb4b51 Allow non-wi <op> wi
This patch uses global rather than member operators for wide-int.h,
so that the first operand can be a non-wide-int type.

The patch also removes the and_not and or_not member functions.
It was already inconsistent to have member functions for these
two operations (one of which was never used) and not other wi::
ones like udiv.  After the operator change, we'd have the additional
inconsistency that "non-wi & wi" would work but "non-wi.and_not (wi)"
wouldn't.

2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
	(WI_BINARY_PREDICATE_RESULT): Likewise.
	(wi::binary_traits::operator_result): New type.
	(wi::binary_traits::predicate_result): Likewise.
	(generic_wide_int::operator~, unary generic_wide_int::operator-)
	(generic_wide_int::operator==, generic_wide_int::operator!=)
	(generic_wide_int::operator&, generic_wide_int::and_not)
	(generic_wide_int::operator|, generic_wide_int::or_not)
	(generic_wide_int::operator^, generic_wide_int::operator+
	(binary generic_wide_int::operator-, generic_wide_int::operator*):
	Delete.
	(operator~, unary operator-, operator==, operator!=, operator&)
	(operator|, operator^, operator+, binary operator-, operator*): New
	functions.
	* expr.c (get_inner_reference): Use wi::bit_and_not.
	* fold-const.c (fold_binary_loc): Likewise.
	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
	* tree-ssa-ccp.c (get_value_from_alignment): Likewise.
	(bit_value_binop): Likewise.
	* tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
	* tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
	(extract_range_from_binary_expr_1): Likewise.
	(masked_increment): Likewise.
	(simplify_bit_ops_using_ranges): Likewise.

From-SVN: r253539
2017-10-09 10:51:45 +00:00
Martin Jambor
191411e43a [PR 82416] Do not extend operands to at least 32 bits
2017-10-09  Martin Jambor  <mjambor@suse.cz>

	PR hsa/82416
gcc/
	* hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
	* hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
	(hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
	COMPLEX types.
	(hsa_fixup_mov_insn_type): New function.
	(hsa_op_with_type::get_in_type): Use it.
	(hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
	immediates in an assert.
	(hsa_op_with_type::extend_int_to_32bit): New method.
	(gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
	types.  Convert to dest type if necessary.
	(gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
	(reg_for_gimple_ssa): Pass false as min32int to
	hsa_type_for_scalar_tree_type.
	(gen_hsa_addr): Fixup type when creating addresable temporary.
	(gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
	(gen_hsa_unary_operation): Extend operands and convert to dest type if
	necessary.  Call hsa_fixup_mov_insn_type.
	(gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
	extend operands and convert to dest type if necessary.
	(gen_hsa_insns_for_operation_assignment): Extend operands and convert
	to dest type if necessary.
	(set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
	if conversion nt necessary and size matches.
	(gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
	to dest type if necessary.
	(gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
	(gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
	necessary.
	(gen_hsa_clrsb): Likewise.
	(gen_hsa_ffs): Likewise.
	(gen_hsa_divmod): Extend operands and convert to dest type if
	necessary.
	(gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.

libgomp/
	* testsuite/libgomp.hsa.c/pr82416.c: New test.

From-SVN: r253538
2017-10-09 11:41:44 +02:00
Tom de Vries
b7807e11c4 Fix gcc.dg/cold-1.c
2017-10-09  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/cold-1.c (foo1): Fix warning line number.  Make warning line
	number relative.
	(abort): Declare.

From-SVN: r253537
2017-10-09 09:20:38 +00:00
GCC Administrator
86a6f91eec Daily bump.
From-SVN: r253536
2017-10-09 00:16:23 +00:00
Segher Boessenkool
0a22eb91b3 rs6000: Cleanup of various jump patterns
This cleans up formatting of many jump patterns.  Mostly it is writing
output statements as brace blocks, and deleting default arguments.  It
also makes indentation a little bit more consistent, and uses b%T0
(instead of bctr/blr alternatives) in two more places.


	* config/rs6000/rs6000.md (conditional branch): Clean up formatting.
	Remove empty default arguments.  Use a brace block as output
	statement.
	(conditional return): Ditto.
	(jump): Ditto.
	(indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
	(tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
	Ditto.
	(group_ending_nop): Ditto.
	(doloop_end): Ditto.
	(ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
	(splitters for those): Ditto.

From-SVN: r253532
2017-10-09 00:38:25 +02:00
Segher Boessenkool
0c791c5938 rs6000: Update conditional jump patterns, no more (pc) (label_ref)
Currently we have two patterns for every conditional jump: one jumping
if some condition is met, and the other jumping if it is not met.  We
don't need that second form because all our conditions have an opposite
already, and the generic code can deal with that just fine.

This patch deletes that second form.  We generated it directly in one
case; adjusted here.


	* config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
	a conditional jump (and the compare for it) so that pc_rtx is the
	last operand.
	* config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
	for the deleted and renamed ctr<mode>_internal[234] patterns.
	* config/rs6000/rs6000.md: Delete second conditional branch pattern.
	Delete second conditional return pattern.
	(ctr<mode>_internal2): Delete this second bdnz pattern.
	(ctr<mode>_internal3): Rename to ctr<mode>_internal2.
	(ctr<mode>_internal4): Delete this second bdz pattern.

From-SVN: r253531
2017-10-09 00:36:36 +02:00
Eric Botcazou
561593c104 tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
* tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
	(always_initialized_rtx_for_ssa_name_p): New predicate.
	* tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
	(finish_out_of_ssa): Free new field of SA.
	* tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
	* tree-ssa-coalesce.c: Include tree-ssa.h.
	(get_parm_default_def_partitions): Remove extern keyword.
	(get_undefined_value_partitions): New function.
	* expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
	not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
	uninitialized bits.
	* loop-iv.c (iv_get_reaching_def): Disqualify all subregs.

From-SVN: r253530
2017-10-08 21:13:52 +00:00
Eric Botcazou
caeaa0b3c6 * builtins.def (BUILT_IN_SETJMP): Revert latest change.
From-SVN: r253529
2017-10-08 20:44:14 +00:00
Steven G. Kargl
1b314f1474 check.c (gfc_check_x): Remove function.
2017-10-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	* check.c (gfc_check_x): Remove function.
	* intrinsic.c (add_functions): Use gfc_check_fn_r.

From-SVN: r253528
2017-10-08 18:02:31 +00:00
Jeff Law
5759add460 stack-check-5.c: Skip with -fstack-protector.
* gcc.dg/stack-check-5.c: Skip with -fstack-protector.
	* gcc.dg/stack-check-6.c: Likewise.
	* gcc.dg/stack-check-6a.c: Likewise.

From-SVN: r253527
2017-10-08 09:44:39 -06:00
Paul Thomas
1741160c2f re PR fortran/82375 (PDT components in PDT declarations fail to compile)
2017-10-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82375
	* module.c : Bump up MOD_VERSION to 15.
	(mio_component): Edit comment about PDT specification list.
	(mio_expr, mio_symbol): Include the expression and symbol PDT
	specification lists in the same way as in mio_component.

From-SVN: r253526
2017-10-08 15:23:24 +00:00
Thomas Koenig
cebb191903 dump_prase_tree (show_symbol): Output list of variables in NAMELIST.
2017-10-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* dump_prase_tree (show_symbol): Output list of variables in
	NAMELIST.
	(show_code_node): Add new line for ELSE and END DO for DO
	CONCURRENT.
	* invoke.texi: Document that the output of
	-fdump-fortran-original, -fdump-fortran-optimized and
	-fdump-parse-tree is unsable and may lead to ICEs.

From-SVN: r253525
2017-10-08 12:54:40 +00:00
Jan Hubicka
08a9e4e734 i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets that preffer 128bit.
* i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets
	that preffer 128bit.

From-SVN: r253524
2017-10-08 10:42:54 +00:00
Jan Hubicka
eb79a6b1cb * i386.c (has_dispatch): Disable for Ryzen.
From-SVN: r253523
2017-10-08 10:41:44 +00:00
Olivier Hainque
a9f3126aad arm.c (arm_set_return_address): Use MEM_VOLATILE_P on the target mem instead of RTX_FRAME_RELATED_P on the insn...
2017-10-08  Olivier Hainque  <hainque@adacore.com>

        * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
        on the target mem instead of RTX_FRAME_RELATED_P on the insn to
        prevent DSE.
        (thumb_set_return_address): Likewise.

From-SVN: r253522
2017-10-08 08:20:25 +00:00
Olivier Hainque
221ebb39af arm-common.c (arm_except_unwind_info): Handle DWARF2_UNWIND_INFO.
2017-10-08  Olivier Hainque  <hainque@adacore.com>

        * common/config/arm/arm-common.c (arm_except_unwind_info):
        Handle DWARF2_UNWIND_INFO.

From-SVN: r253521
2017-10-08 08:10:41 +00:00
Michael Collison
59abe90398 aarch64.md (*aarch64_reg_<optab>_minus<mode>3): New pattern.
2017-10-07  Michael Collison <michael.collison@arm.com>

	* config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
	New pattern.

2017-10-07  Michael Collison <michael.collison@arm.com>

	* gcc.target/aarch64/var_shift_mask_2.c: New test.

From-SVN: r253520
2017-10-08 03:57:36 +00:00
GCC Administrator
ecd8dec2ca Daily bump.
From-SVN: r253519
2017-10-08 00:16:17 +00:00
Eric Botcazou
06fc54dd64 builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead of GCC builtin if...
* builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
	of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
	* except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
	defined, force the creation of a new block for a dispatch label.

From-SVN: r253515
2017-10-07 22:17:16 +00:00
Paul Thomas
2fcd588417 re PR fortran/82375 (PDT components in PDT declarations fail to compile)
2017-10-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82375
	* class.c (gfc_find_derived_vtab): Return NULL for a passed
	pdt template to prevent bad procedures from being written.
	* decl.c (gfc_get_pdt_instance): Do not use the default
	initializer for pointer and allocatable pdt type components. If
	the component is allocatbale, set the 'alloc_comp' attribute of
	'instance'.
	* module.c : Add a prototype for 'mio_actual_arglist'. Add a
	boolean argument 'pdt'.
	(mio_component): Call it for the parameter list of pdt type
	components with 'pdt' set to true.
	(mio_actual_arg): Add the boolean 'pdt' and, if it is set, call
	mio_integer for the 'spec_type'.
	(mio_actual_arglist): Add the boolean 'pdt' and use it in the
	call to mio_actual_arg.
	(mio_expr, mio_omp_udr_expr): Call mio_actual_arglist with
	'pdt' set false.
	* resolve.c (get_pdt_spec_expr): Add the parameter name to the
	KIND parameter error.
	(get_pdt_constructor): Check that cons->expr is non-null.
	* trans-array.c (structure_alloc_comps): For deallocation of
	allocatable components, ensure that parameterized components
	are deallocated first. Likewise, when parameterized components
	are allocated, nullify allocatable components first. Do not
	recurse into pointer or allocatable pdt components while
	allocating or deallocating parameterized components. Test that
	parameterized arrays or strings are allocated before freeing
	them.
	(gfc_trans_pointer_assignment): Call the new function. Tidy up
	a minor whitespace issue.
	trans-decl.c (gfc_trans_deferred_vars): Set 'tmp' to NULL_TREE
	to prevent the expression from being used a second time.

2017-10-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82375
	* gfortran.dg/pdt_13.f03 : New test.
	* gfortran.dg/pdt_14.f03 : New test.
	* gfortran.dg/pdt_15.f03 : New test.

From-SVN: r253514
2017-10-07 21:14:06 +00:00
Jan Hubicka
12b9f3ac92 invoke.texi (Wsuggest-attribute=cold): Document.
* invoke.texi (Wsuggest-attribute=cold): Document.
	* common.opt (Wsuggest-attribute=cold): New
	* ipa-pure-const.c (warn_function_cold): New function.
	* predict.c (compute_function_frequency): Use it.
	* predict.h (warn_function_cold): Declare.

	* gcc.dg/cold-1.c: New testcase.

From-SVN: r253513
2017-10-07 16:48:34 +00:00
Jan Hubicka
59e2f25ee7 tree-switch-conversion.c (do_jump_if_equal, [...]): Update profile.
* tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
	Update profile.

From-SVN: r253512
2017-10-07 16:33:26 +00:00
Paolo Carlini
b8f49e4a98 re PR c++/80805 (ICE in sufficiently complex code with -g (dump_aggr_type))
2017-10-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80805
	* g++.dg/cpp0x/pr80805.C: New.

From-SVN: r253511
2017-10-07 16:10:21 +00:00
Paolo Carlini
53214bd157 re PR c++/80805 (ICE in sufficiently complex code with -g (dump_aggr_type))
2017-10-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80805
	* g++.dg/cpp0x/pr80805.C: New.

From-SVN: r253510
2017-10-07 16:10:02 +00:00
Thomas Koenig
5abde510b7 re PR fortran/49232 (Pointer assignment of stride to CONTIGUOUS pointer not diagnosed as invalid)
2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/49232
	* expr.c (gfc_check_pointer_assign): Error
	for non-contiguous rhs.

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

	PR fortran/49232
	* gfortran.dg/contiguous_4.f90: New test.

From-SVN: r253509
2017-10-07 11:48:28 +00:00
Thomas Koenig
a4792d4431 gfortran.h (async_io_dt): Add external reference.
2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.h (async_io_dt): Add external reference.
	* io.c (async_io_dt): Add variable.
	(compare_to_allowed_values): Add prototyte. Add optional argument
	num. If present, set it to the number of the entry that was
	matched.
	(check_io_constraints): If this is for an asynchronous I/O
	statement, set async_io_dt and set the asynchronous flag for
	a SIZE tag.
	* resolve.c (resolve_transfer): If async_io_dt is set, set
	the asynchronous flag on the variable.
	(resolve_fl_namelist): If async_io_dt is set, set the asynchronous
	flag on all elements of the namelist.

From-SVN: r253508
2017-10-07 11:43:58 +00:00
Tom de Vries
e923330e1b Fix libgomp.oacc-fortran/{firstprivate-1,parallel-reduction}.f90 for non-nvidia devices
2017-10-07  Tom de Vries  <tom@codesourcery.com>

	* testsuite/libgomp.oacc-fortran/firstprivate-1.f90 (firstprivate):
	Remove acc_device_nvidia references.
	* testsuite/libgomp.oacc-fortran/parallel-reduction.f90 (reduction):
	Same.

From-SVN: r253507
2017-10-07 08:46:00 +00:00
GCC Administrator
068333113e Daily bump.
From-SVN: r253506
2017-10-07 00:16:21 +00:00
Paolo Carlini
58ebb59bef re PR c++/66690 (error: use of ‘X’ before deduction of ‘auto’)
2017-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66690
	* g++.dg/cpp1y/pr66690.C: New.

From-SVN: r253502
2017-10-06 19:04:25 +00:00
Paolo Carlini
df780484fe 2017-10-06 Paolo Carlini <paolo.carlini@oracle.com>
* Fix last ChangeLog entry.

From-SVN: r253498
2017-10-06 16:28:27 +00:00
Paolo Carlini
90e3c064aa re PR c++/47791 (finish function is using literal value instead of a #defined one)
2017-10-06  Paolo Carlini  <paolo.carlini@oracle>

	PR c++/47791
	* decl.c (finish_function): Take a bool intead of an int; adjust.
	* cp-tree.h (finish_function): Adjust declaration.
	* decl2.c (generate_tls_wrapper, finish_objects,
	finish_static_storage_duration_function): Adjust calls.
	* lambda.c (maybe_add_lambda_conv_op, finish_lambda_function):
	Likewise.
	* method.c (synthesize_method): Likewise.
	* optimize.c (maybe_thunk_body, maybe_clone_body): Likewise.
	* pt.c (instantiate_decl): Likewise.
	* parser.c (cp_parser_function_definition_after_declarator,
	cp_parser_late_parsing_for_member, cp_parser_omp_declare_reduction):
	Likewise.
	(cp_parser_ctor_initializer_opt,
	cp_parser_ctor_initializer_opt_and_function_body,
	cp_parser_function_try_block,
	cp_parser_function_definition_after_declarator,
	cp_parser_function_transaction): Return void; adjust declarations.

From-SVN: r253497
2017-10-06 16:26:00 +00:00
Nathan Sidwell
9db84eceda [PR c++/82424] Dont convert dependent types
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00385.html
	cp/
	PR c++/82424
	* name-lookup.c (check_local_shadow): Don't try and convert
	dependent types.

	testsuite/
	PR c++/82424
	* g++.dg/warn/pr82424.C: New.

From-SVN: r253496
2017-10-06 16:02:13 +00:00
Jakub Jelinek
7260f6f79c re PR c++/82299 (-Wuseless-cast errors on typed enums used in member data initializers in c++1z)
PR c++/82299
	* decl.c (reshape_init): Suppress warn_useless_cast for direct enum
	init.
	* typeck.c (convert_for_assignment): Likewise.

	* g++.dg/cpp0x/pr82299.C: New test.

From-SVN: r253495
2017-10-06 17:50:50 +02:00
Jakub Jelinek
681f18d19b P0704R1 - fixing const-qualified pointers to members
P0704R1 - fixing const-qualified pointers to members
	* typeck2.c (build_m_component_ref): For -std=c++2a allow
	pointer to const & qualified method on rvalue.

	* g++.dg/cpp2a/ptrmem1.C: New test.

From-SVN: r253494
2017-10-06 17:43:17 +02:00
Nathan Sidwell
9bc3f42066 [C++ PATCH] hash-table for extern-c fns.
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00376.html
	Use hash_table for extern "C" names
	* name-lookup.c (extern_c_fns): Use hash_table.
	(check_extern_c_conflict): Adjust.
	(c_linkage_bindings): Adjust.

From-SVN: r253493
2017-10-06 14:19:23 +00:00
Martin Liska
513d556422 Add sanopt support for UBSAN_PTR.
2017-10-06  Martin Liska  <mliska@suse.cz>

	* sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
	keyword for member functions.
	(struct sanopt_tree_couple): New struct.
	(struct sanopt_tree_couple_hash): New function.
	(struct sanopt_ctx): Add new hash_map.
	(has_dominating_ubsan_ptr_check): New function.
	(record_ubsan_ptr_check_stmt): Likewise.
	(maybe_optimize_ubsan_ptr_ifn): Likewise.
	(sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
	(pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
2017-10-06  Martin Liska  <mliska@suse.cz>

	* c-c++-common/ubsan/ptr-overflow-sanitization-1.c: New test.

From-SVN: r253492
2017-10-06 14:14:14 +00:00
Ian Lance Taylor
549d24e9f7 ztest.c (test_large): Pass unsigned long *, not size_t *, to zlib uncompress function.
* ztest.c (test_large): Pass unsigned long *, not size_t *, to
	zlib uncompress function.

From-SVN: r253491
2017-10-06 13:37:20 +00:00
Sudakshina Das
d155a264df Committed on behalf of Sudi Das
2017-10-06  Sudakshina Das  <sudi.das@arm.com>

	PR target/82440
	* config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
	aarch64_simd_valid_immediate on CONST_VECTORs.
	(aarch64_reg_or_bic_imm): Likewise.

*** gcc/testsuite/ChangeLog ***

2017-10-06  Sudakshina Das  <sudi.das@arm.com>

	* gcc.target/aarch64/bic_imm_1.c: New test.
	* gcc.target/aarch64/orr_imm_1.c: Likewise.

From-SVN: r253490
2017-10-06 13:25:18 +00:00
Nathan Sidwell
e833f686bb [C++ PATCH] use hash-table for namespace contents
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00365.html
	Use hash_table for namespace bindings
	* cp-tree.h (struct named_decl_hash): New.
	(lang_decl_ns): Change type of bindings field.
	* lex.c (maybe_add_lang_decl_raw): Adjust.
	* name-lookup.c (find_namespace_slot): Adjust.
	(do_pushdecl): Push NULL-named namespace.
	(do_push_nested_namespace): Adjust.
	(push_namespace): Push anonymous namespace as NULL name.

From-SVN: r253489
2017-10-06 13:15:23 +00:00
Wilco Dijkstra
816f83cfb7 PR82396 workaround
r253236 broke AArch64 bootstrap.  This is a temporary workaround that
disables qsort checking in the scheduler to enable continued development
and testing on AArch64.  This will be removed once the autopref scheduling
code has been fixed.

    gcc/
	PR rtl-optimization/82396
	* haifa-sched.c (ready_sort_real): Disable qsort checking.

From-SVN: r253487
2017-10-06 11:54:51 +00:00
Sebastian Pop
312ce40190 graphite-dependences.c (scop_get_reads): Move code to...
2017-10-06  Sebastian Pop  <sebpop@gmail.com>

	* graphite-dependences.c (scop_get_reads): Move code to...
        (scop_get_must_writes): Move code to...
        (scop_get_may_writes): Move code to...
        (scop_get_reads_and_writes): ... here.
        (scop_get_dependences): Call scop_get_reads_and_writes.

From-SVN: r253486
2017-10-06 11:26:33 +00:00
Paolo Carlini
e78b10ceb9 re PR c++/60153 (internal compiler error: in dependent_type_p, at cp/pt.c:21951)
2017-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60153
	* g++.dg/cpp0x/variadic-crash3.C: New.

From-SVN: r253484
2017-10-06 10:06:14 +00:00