1. 23 Jan, 2017 40 commits
    • Restore <functional> header to test · 11948d83
      	* testsuite/experimental/array/make_array.cc: Restore <functional>
      	inclusion.
      
      From-SVN: r244840
      Jonathan Wakely committed
    • tree.h (assign_assembler_name_if_neeeded): Rename to ... · 9579db35
      	* tree.h (assign_assembler_name_if_neeeded): Rename to ...
      	(assign_assembler_name_if_needed): ... this.
      	* tree.c (assign_assembler_name_if_neeeded): Rename to ...
      	(assign_assembler_name_if_needed): ... this.
      	(free_lang_data_in_cgraph): Adjust callers.
      	* cgraphunit.c (cgraph_node::analyze): Likewise.
      	* omp-expand.c (expand_omp_taskreg, expand_omp_target):
      	Likewise.
      
      From-SVN: r244839
      Jakub Jelinek committed
    • re PR tree-optimization/79088 (wrong code at -O2 on x86_64-linux-gnu) · 108fdd6d
      2017-01-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/79088
      	PR tree-optimization/79188
      	* tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
      	resetting loop bounds after last path deletion.  Reset loop
      	bounds of the target loop, make code match the comments.
      	* tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
      	Make sure loops need no fixups.
      
      	* gcc.dg/torture/pr79088.c: New testcase.
      	* gcc.dg/torture/pr79188.c: Likewise.
      
      From-SVN: r244837
      Richard Biener committed
    • * da.po: Update. · 01f26e0e
      From-SVN: r244836
      Joseph Myers committed
    • libgo: update to go1.8rc2 · c25edd44
          
          Fix a bug in the generation of the hash value in reflect.FuncOf.
          
          The merge script missed a bunch of testdata files over the years.
          Copy them over.
          
          Reviewed-on: https://go-review.googlesource.com/35570
      
      From-SVN: r244835
      Ian Lance Taylor committed
    • scalar-insert-exp-3.c: New test. · 28826a66
      gcc/testsuite/ChangeLog:
      
      2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* gcc.target/powerpc/bfp/scalar-insert-exp-3.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-4.c: New test.
      	* gcc.target/powerpc/bfp/scalar-insert-exp-5.c: New test.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-0.c: Adjust return
      	type of test function to reflect change in built-in function's
      	return type.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-3.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-4.c: Adjust return
      	type and second argument type to reflect change in built-in
      	function's type signature.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-5.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: Adjust return
      	type of test function to reflect change in built-in function's
      	return type.
      	* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-0.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-1.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise.
      	* gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-exp-0.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-exp-1.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-exp-2.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-exp-3.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-sig-0.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-sig-1.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-sig-2.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-extract-sig-3.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-insert-exp-4.c: New test.
      	* gcc.target/powerpc/bfp/vec-insert-exp-5.c: New test.
      	* gcc.target/powerpc/bfp/vec-insert-exp-6.c: New test.
      	* gcc.target/powerpc/bfp/vec-insert-exp-7.c: New test.
      	* gcc.target/powerpc/bfp/vec-test-data-class-0.c: Adjust return
      	type of test function to reflect change in built-in function's
      	return type.
      	* gcc.target/powerpc/bfp/vec-test-data-class-1.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-2.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-3.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-4.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-5.c: Likewise.
      	* gcc.target/powerpc/bfp/vec-test-data-class-6.c: Adjust types of
      	test function's result and second argument to reflect change in
      	built-in function's type signature.
      	* gcc.target/powerpc/bfp/vec-test-data-class-7.c: Likewise.
      
      gcc/ChangeLog:
      
      2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
      	exponent support with double type for first argument.
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
      	type returned by __builtin_vec_extract_sig,
      	__builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
      	functions from "vector int" to "vector unsigned int" or from
      	"vector long long int" to "vector unsigned long long int".
      	Changed type returned by __builtin_vec_extract_exp,
      	__builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
      	functions from "vector int" to "vector unsigned int" or from
      	"vector long long int" to "vector unsigned long long int".
      	Changed return type of __builtin_vec_test_data_class,
      	__builtin_vec_test_data_class_sp, and
      	__builtin_vec_test_data_class_dp from "vector int" to
      	"vector bool int" or from "vector long long int" to "vector bool
      	long long int" and changed second argument type from "unsigned
      	int" to "int".  Added new overloaded function forms "vector float
      	__builtin_vec_insert_exp (vector float, vector unsigned int)" and
      	"vector float __builtin_vec_insert_exp_sp (vector float, vector
      	unsigned int)" and "vector double __builtin_vec_insert_exp (vector
      	double, vector unsigned long long int)" and "vector double
      	__builtin_vec_insert_exp_dp (vector double, vector unsigned long
      	long int)".  Changed return type of
      	__builtin_scalar_test_data_class and
      	__builtin_scalar_test_data_class_sp and
      	__builtin_scalar_test_data_class_dp from "unsigned int" to "bool
      	int" and changed second argument from "unsigned int" to "int".
      	Changed type returned by __builtin_scalar_test_neg,
      	__builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
      	from "int" to "bool int".  Added new overloaded function form
      	"double __builtin_scalar_insert_exp (double, unsigned long long int)".
      	* config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
      	exponent double-precision with floating point first argument.
      	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
      	documentation of scalar_test_data_class, scalar_test_neg,
      	scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
      	vector_extract_exp, vec_extract_sig, vec_insert_exp, and
      	vec_test_data_class built-in functions to reflect refinements in
      	their type signatures.
      
      From-SVN: r244834
      Kelvin Nilsen committed
    • PR c++/71710 - template using directive of field · fc7612fd
      	PR c++/71710 - template using directive of field
      	* pt.c (tsubst_copy_and_build [COMPONENT_REF]): Move FIELD_DECL
      	check earlier.
      
      	PR C++/71710
      	* g++.dg/template/pr71710.C: New.
      
      From-SVN: r244833
      Nathan Sidwell committed
    • PR c++/71406 - ICE with scope-ref'd template id exprs · e6b8075c
      	PR c++/71406 - ICE with scope-ref'd template id exprs
      	PR c++/77508
      	* typeck.c (finish_class_member_access_expr): Break up SCOPE_REF
      	before breaking up TEMPLATE_ID_EXPR.
      
      	PR c++/71406
      	PR c++/77508
      	* g++.dg/template/pr71406.C: New.
      
      From-SVN: r244832
      Nathan Sidwell committed
    • arith.c (arith_power): If simplifying integer power expression to zero... · 15b8fd49
      2017-01-23  Thomas Koenig  <tkoenig@netcologne.de>
      
      	* arith.c (arith_power):  If simplifying integer power expression
      	to zero, warn if -Winteger-division is given.
      
      2017-01-23  Thomas Koenig  <tkoenig@netcologne.de>
      
      	* gfortran.dg/integer_exponentiation_7.f90:  New test.
      
      From-SVN: r244830
      Thomas Koenig committed
    • aarch64.c (aarch64_elf_asm_constructor): Increase size of buf. · 53d190c1
      2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
      
          * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
          size of buf.
          (aarch64_elf_asm_destructor): Likewise.
      
      From-SVN: r244828
      Andreas Tobler committed
    • re PR go/79037 (gccgo: Binaries crash with parforsetup: pos is not aligned on m68k) · b0147ac2
      	PR go/79037
          compiler, runtime: align gc data for m68k
          
          The current GC requires that the gc data be aligned to at least a 4
          byte boundary, because it uses the lower two bits of the address for
          flags (see LOOP and PRECISE in runtime/mgc0.c).  As the gc data is
          stored as a [...]uintptr, that is normally always true.  However, on
          m68k, that only guarantees 2 byte alignment.  Fix it by forcing the
          alignment.
          
          The parfor code used by the current GC requires that the parfor data
          be aligned to at least an 8 byte boundary.  The code in parfor.c
          verifies this.  This is normally true, as the data uses uint64_t
          values, but, again, this must be enforced explicitly on m68k.
          
          Fixes GCC PR 79037.
          
          Reviewed-on: https://go-review.googlesource.com/35478
      
      From-SVN: r244824
      Ian Lance Taylor committed
    • libgo: bump library version to 11 · a0488df4
          
          As usual I forgot to bump the library version when I updated the
          library to 1.8rc1.
          
          Reviewed-on: https://go-review.googlesource.com/35568
      
      From-SVN: r244823
      Ian Lance Taylor committed
    • 69301.cc: Require atomic builtins. · a750159e
      2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          libstdc++-v3/
          * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
      
      From-SVN: r244819
      Thomas Preud'homme committed
    • * fr.po: Update. · 61f84884
      From-SVN: r244818
      Joseph Myers committed
    • re PR rtl-optimization/71724 (ICE: Segmentation fault, deep recursion between… · 427ed3ae
      re PR rtl-optimization/71724 (ICE: Segmentation fault, deep recursion between combine_simplify_rtx and subst)
      
      	PR rtl-optimization/71724
      	* combine.c (if_then_else_cond): Look for situations where it is
      	beneficial to undo the work of one of the recursive calls.
      
      From-SVN: r244817
      Bernd Schmidt committed
    • re PR rtl-optimization/78634 (30% performance drop after r242832.) · e9c4fbe9
      	PR rtl-optimization/78634
      	* config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
      	(TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
      	* ifcvt.c (noce_try_cmove): Add missing cost check.
      
      testsuite/
      	PR rtl-optimization/78634
      	* gcc.target/i386/funcspec-11.c: Also pass -mtune=i686.
      
      From-SVN: r244816
      Bernd Schmidt committed
    • re PR tree-optimization/70754 (ICE during predictive commoning) · 8539a302
      	PR tree-optimization/70754
      	* tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
      	(reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
      	combined stmt before it if not NULL.
      	(combine_chains): Process refs reversely and compute dominance point
      	for root ref.
      
      	gcc/testsuite
      	PR tree-optimization/70754
      	* gfortran.dg/pr70754.f90: New test.
      
      From-SVN: r244815
      Bin Cheng committed
    • PR libstdc++/79195 fix make_array type deduction · 61ad58f3
      	PR libstdc++/79195
      	* include/experimental/array (__make_array_elem): New class template
      	and partial specialization.
      	(__is_reference_wrapper): Move into __make_array_elem specialization.
      	(make_array): Use __make_array_elem to determine element type and move
      	static assertion into specialization. Qualify std::forward call.
      	(to_array): Add exception specifiation.
      	* testsuite/experimental/array/make_array.cc: Test argument types
      	without a common type.
      	* testsuite/experimental/array/neg.cc: Adjust expected error message.
      
      From-SVN: r244813
      Jonathan Wakely committed
    • Fix strstr folding (PR tree-optimization/79196). · f368600f
      2017-01-23  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/79196
      	* tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
      	(fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
      	instead of memcmp.
      	(strlen_optimize_stmt): Call the renamed function.
      2017-01-23  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/79196
      	* gcc.dg/asan/pr79196.c: New test.
      	* gcc.dg/strlenopt-30.c: Update scanned pattern.
      
      From-SVN: r244812
      Martin Liska committed
    • fix pr78384 · d886761f
      	PR tree-optimization/78384
      	* tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
      
      testsuite/
      	PR tree-optimization/78384
      	* gcc.dg/pr78384.c: New test.
      
      From-SVN: r244811
      Michael Matz committed
    • sem_util.adb (New_Copy_Tree): Code cleanup: removal of the internal map (ie. · b4fad9fa
      2017-01-23  Javier Miranda  <miranda@adacore.com>
      
      	* sem_util.adb (New_Copy_Tree): Code cleanup:
      	removal of the internal map (ie. variable Actual_Map, its
      	associated local variables, and all the code handling it).
      	* sem_ch9.adb (Analyze_Task_Type_Declaration): in GNATprove mode
      	force loading of the System package when processing a task type.
      	(Analyze_Protected_Type_Declaration): in GNATprove mode force
      	loading of the System package when processing a protected type.
      	* sem_ch10.adb (Analyze_Compilation_Unit): in GNATprove mode
      	force loading of the System package when processing compilation
      	unit with a main-like subprogram.
      	* frontend.adb (Frontend): remove forced loading of the System
      	package.
      
      From-SVN: r244810
      Javier Miranda committed
    • sem_prag.adb (Default_Initial_Condition): If the desired type declaration is a… · d268147d
      sem_prag.adb (Default_Initial_Condition): If the desired type declaration is a derived type declaration with discriminants...
      
      2017-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Default_Initial_Condition): If the desired type
      	declaration is a derived type declaration with discriminants,
      	it is rewritten as a private type declaration.
      	* sem_ch13.adb (Replace_Type_References_Generic,
      	Visible_Component): A discriminated private type with descriminnts
      	has components that must be rewritten as selected components
      	if they appear as identifiers in an aspect expression such as
      	a Default_Initial_Condition.
      	* sem_util.adb (Defining_Entity): support N_Iterator_Specification
      	nodes.
      
      From-SVN: r244809
      Ed Schonberg committed
    • ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine. · dafe11cd
      2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine.
      	* gnat1drv.adb Generate an empty object file for an ignored
      	Ghost compilation unit.
      	* inline.adb, sem_util.adb, sem_ch4.adb: Minor reformatting.
      
      From-SVN: r244808
      Hristian Kirtchev committed
    • [multiple changes] · bfaf8a97
      2017-01-23  Yannick Moy  <moy@adacore.com>
      
      	* sem_ch4.adb (Analyze_Indexed_Component_Form):
      	Adapt to inlined prefix with string literal subtype.
      	* inline.adb (Expand_Inlined_Call): Keep unchecked
      	conversion inside inlined call when formal type is constrained.
      
      2017-01-23  Javier Miranda  <miranda@adacore.com>
      
      	* sem_util.adb (New_Copy_Tree): Code cleanup:
      	removal of global variables. All the global variables, global
      	functions and tables of this subprogram are now declared locally.
      
      From-SVN: r244807
      Arnaud Charlet committed
    • [multiple changes] · 9313a26a
      2017-01-23  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_strm.ads: Minor reformatting and typo fixes.
      
      2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_aggr.adb, par_sco.adb, exp_util.adb, sem.adb, sem_ch4.adb,
      	exp_aggr.adb: Minor reformatting.
      	* g-diopit.adb: minor grammar/punctuation fix in comment.
      	* g-byorma.ads: minor fix of unbalanced parens in comment.
      
      2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* par.adb: Update the documentation of component Labl.
      	* par-ch6.adb (P_Return_Statement): Set the expected label of
      	an extended return statement to Error.
      
      2017-01-23  Tristan Gingold  <gingold@adacore.com>
      
      	* s-boustr.ads, s-boustr.adb (Is_Full): New function.
      
      2017-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* expander.adb: Handle N_Delta_Aggregate.
      
      2017-01-23  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch6.adb (Expand_Call): Improve the code that
      	checks if some formal of the called subprogram is a class-wide
      	interface, to handle subtypes of class-wide interfaces.
      
      2017-01-23  Javier Miranda  <miranda@adacore.com>
      
      	* checks.adb (Apply_Parameter_Aliasing_Checks):
      	Remove side effects of the actuals before generating the overlap
      	check.
      
      From-SVN: r244806
      Arnaud Charlet committed
    • [multiple changes] · 4b7fd131
      2017-01-23  Justin Squirek  <squirek@adacore.com>
      
      	* exp_strm.ads, exp_strm.ads
      	(Build_Record_Or_Elementary_Input_Function): Add an extra parameter so
      	as to avoid getting the underlying type by default.
      	* exp_attr.adb (Expand_N_Attribute_Reference): Remove use of
      	underlying type in the Iiput and output attribute cases when
      	building their respective functions.
      
      2017-01-23  Gary Dismukes  <dismukes@adacore.com>
      
      	* scng.adb: Minor reformatting of error message.
      
      2017-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function): Do not attempt
      	to freeze the return type of an expression funxtion that is a
      	completion, if the type is a limited view and the non-limited
      	view is available.
      
      From-SVN: r244805
      Arnaud Charlet committed
    • re PR tree-optimization/79186 (ICE on valid code at -O2 and -O3 on… · cffcafda
      re PR tree-optimization/79186 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu:  Segmentation fault (in VRP))
      
      2017-01-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/79186
      	* tree-vrp.c (register_new_assert_for): Make sure we've seen
      	both incoming edges before moving an assert.
      
      	* gcc.dg/torture/pr79186.c: New testcase.
      	* gcc.dg/torture/pr79187.c: Likewise.
      
      From-SVN: r244804
      Richard Biener committed
    • Fix compute_complex_assign_jump_func · bda2bc48
      2017-01-23  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.c (load_from_param_1): Removed.
      	(load_from_unmodified_param): Bits from load_from_param_1 put back
      	here.
      	(load_from_param): Removed.
      	(compute_complex_assign_jump_func): Removed stmt2 and just replaced it
      	with stmt.  Reverted back to use of load_from_unmodified_param.
      
      testsuite/
      	* gcc.dg/ipa/vrp8.c: New test.
      
      From-SVN: r244803
      Martin Jambor committed
    • [PR 79108] Put ipa_node_params to GC memory · f65f1ae3
      2017-01-23  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/79108
      	* ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
      	(ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
      	field a pointer to garbage collected vector, mark lattices and
      	ipcp_orig_node with GTY((skip)).
      	(ipa_get_param_count): Adjust to descriptors being a pointer.
      	(ipa_get_param): Likewise.
      	(ipa_get_type): Likewise.
      	(ipa_get_param_move_cost): Likewise.
      	(ipa_set_param_used): Likewise.
      	(ipa_get_controlled_uses): Likewise.
      	(ipa_set_controlled_uses): Likewise.
      	(ipa_is_param_used): Likewise.
      	(ipa_node_params_t): Move into garbage collector.  New methods insert
      	and remove.
      	(ipa_node_params_sum): Annotate wth GTY(()).
      	(ipa_check_create_node_params): Adjust to ipa_node_params_sum being
      	garbage collected.
      	(ipa_load_from_parm_agg): Adjust declaration.
      	* ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
      	* ipa-profile.c (ipa_profile): Likewise.
      	* ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
      	(ipa_populate_param_decls): Make descriptors parameter garbage
      	collected.
      	(ipa_dump_param): Adjust to descriptors being a pointer.
      	(ipa_alloc_node_params): Likewise.
      	(ipa_initialize_node_params): Likewise.
      	(load_from_param_1): Make descriptors parameter garbage collected.
      	(load_from_unmodified_param): Likewise.
      	(load_from_param): Likewise.
      	(ipa_load_from_parm_agg): Likewise.
      	(ipa_node_params::~ipa_node_params): Removed.
      	(ipa_free_all_node_params): Remove call to delete operator.
      	(ipa_node_params_t::insert): New.
      	(ipa_node_params_t::remove): Likewise.
      	(ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
      	copy known_csts and known_contexts vectors.
      	(ipa_read_node_info): Adjust to descriptors being a pointer.
      	(ipcp_modif_dom_walker): Make m_descriptors field garbage
      	collected.
      	(ipcp_transform_function): Make descriptors variable garbage
      	collected.
      
      testsuite/
      	* gfortran.dg/lto/pr79108_0.f90: New test.
      
      From-SVN: r244802
      Martin Jambor committed
    • Add AVX512 k-mask intrinsics · dea06111
      gcc/
      	* config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
      	* config/i386/avx512dqintrin.h: Ditto.
      	* config/i386/avx512fintrin.h: Ditto.
      	* gcc/config/i386/i386.c: Handle new builtins.
      	* config/i386/i386-builtin.def: Add new builtins.
      	* config/i386/sse.md (ktest<mode>, kortest<mode>): New.
      	(UNSPEC_KORTEST, UNSPEC_KTEST): New.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512bw-ktestd-1.c: New test.
      	* gcc.target/i386/avx512bw-ktestq-1.c: Ditto.
      	* gcc.target/i386/avx512dq-ktestb-1.c: Ditto.
      	* gcc.target/i386/avx512f-ktestw-1.c: Ditto.
      	* gcc.target/i386/avx512bw-kortestd-1.c: Ditto.
      	* gcc.target/i386/avx512bw-kortestq-1.c: Ditto.
      	* gcc.target/i386/avx512dq-kortestb-1.c: Ditto.
      	* gcc.target/i386/avx512f-kortestw-1.c: Ditto.
      	* gcc.target/i386/avx512bw-ktestd-2.c: Ditt
      	* gcc.target/i386/avx512bw-ktestq-2.c: Ditto.
      	* gcc.target/i386/avx512dq-ktestb-2.c: Ditto.
      	* gcc.target/i386/avx512f-ktestw-2.c: Ditto.
      	* gcc.target/i386/avx512bw-kortestd-2.c: Ditto.
      	* gcc.target/i386/avx512bw-kortestq-2.c: Ditto.
      	* gcc.target/i386/avx512dq-kortestb-2.c: Ditto.
      	* gcc.target/i386/avx512f-kortestw-2.c: Ditto.
      
      From-SVN: r244801
      Andrew Senkevich committed
    • re PR testsuite/78421 (vect-strided-a-u8-i2-gap.c fails on armeb) · 05011618
      	PR testsuite/78421
      	* lib/target-supports.exp (check_effective_target_vect_hw_misalign):
      	If the target is ARM return the result of the
      	check_effective_target_arm_vect_no_misalign proc.
      	* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: If the target does not
      	support unaligned vectors then only expect one of the loops to be
      	unrolled.
      
      Co-Authored-By: Nick Clifton <nickc@redhat.com>
      
      From-SVN: r244796
      Richard Biener committed
    • Minor editing. · 42f9f0fc
      From-SVN: r244795
      Arnaud Charlet committed
    • [multiple changes] · 9eb8d5b4
      2017-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* par-ch4.adb (P_Aggregate_Or_Parent_Expr): Recognize delta
      	aggregate construct.
      	(P_Record_Or_Array_Component_Association): An array aggregate
      	can start with an Iterated_Component_Association.
      	* scng.adb: Modify error message on improper use of @ in earlier
      	versions of the language.
      	* sinfo.ads: New node kind N_Delta_Aggregate.
      	* sinfo.adb: An N_Delta_Aggregate has component associations and
      	an expression.
      	* sem_res.adb (Resolve): Call Resolve_Delta_Aggregate.
      	* sem_aggr.ads, sem_aggr.adb (Resolve_Iterated_Component_Association):
      	Create a new index for each one of the choices in the association,
      	to prevent spurious homonyms in the scope.
      	(Resolve_Delta_Aggregate): New.
      	* sem.adb: An N_Delta_Aggregate is analyzed like an aggregate.
      	* exp_util.adb (Insert_Actions): Take into account
      	N_Delta_Aggregate.
      	* exp_aggr.ads: New procedure Expand_N_Delta_Aggregate.
      	* exp_aggr.adb: New procedure Expand_N_Delta_Aggregate,
      	and local procedures Expand_Delta_Array_Aggregate and
      	expand_Delta_Record_Aggregate.
      	* sprint.adb: Handle N_Delta_Aggregate.
      
      2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch11.adb (Expand_N_Exception_Declaration): Generate an
      	empty name when the exception declaration is subject to pragma
      	Discard_Names.
      	(Null_String): New routine.
      
      2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* par-ch9.adb (P_Protected_Definition): Parse
      	any optional and potentially illegal pragmas which appear in
      	a protected operation declaration list.
      	(P_Task_Items): Parse
      	any optional and potentially illegal pragmas which appear in a
      	task item list.
      
      From-SVN: r244794
      Arnaud Charlet committed
    • use-after-scope: handle writes to a poisoned variable · f6b9f2ff
      2017-01-23  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/asan/use-after-scope-10.c: New test.
      	* gcc.dg/asan/use-after-scope-11.c: New test.
      	* g++.dg/asan/use-after-scope-5.C: New test.
      2017-01-23  Jakub Jelinek  <jakub@redhat.com>
      	    Martin Liska  <mliska@suse.cz>
      
      	* asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
      	* asan.c (asan_expand_poison_ifn): Support stores and use
      	appropriate ASAN report function.
      	* internal-fn.c (expand_ASAN_POISON_USE): New function.
      	* internal-fn.def (ASAN_POISON_USE): Declare.
      	* tree-into-ssa.c (maybe_add_asan_poison_write): New function.
      	(maybe_register_def): Create ASAN_POISON_USE when sanitizing.
      	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
      	ASAN_POISON calls w/o LHS.
      	* tree-ssa.c (execute_update_addresses_taken): Create clobber
      	for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
      	from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
      	* gimplify.c (asan_poison_variables): Add attribute
      	use_after_scope_memory to variables that really needs to live
      	in memory.
      	* tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
      	having the attribute.
      
      From-SVN: r244793
      Martin Liska committed
    • [multiple changes] · a51368fa
      2017-01-23  Pascal Obry  <obry@adacore.com>
      
      	* s-taprop-mingw.adb (Enter_Task): Initialize the Thread handle which
      	is needed when a foreign thread call a Win32 API using a thread handle
      	like GetThreadTimes() for example.
      
      2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
      	allow an 'Address clause to be specified on a prefix of a
      	class-wide type.
      
      2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb (Insert_Valid_Check): Ensure that the prefix of
      	attribute 'Valid is a renaming of the original expression when
      	the expression denotes a name. For all other kinds of expression,
      	use a constant to capture the value.
      	* exp_util.adb (Is_Name_Reference): Moved to Sem_Util.
      	* sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util.
      
      2017-01-23  Justin Squirek  <squirek@adacore.com>
      
      	* sem_eval.adb (Eval_Integer_Literal): Add special
      	case to avoid optimizing out check if the literal appears in
      	an if-expression.
      
      From-SVN: r244792
      Arnaud Charlet committed
    • Speed up use-after-scope (v2): rewrite into SSA · c7775327
      2017-01-23  Martin Liska  <mliska@suse.cz>
      
      	* asan.c (create_asan_shadow_var): New function.
      	(asan_expand_poison_ifn): Likewise.
      	* asan.h (asan_expand_poison_ifn): New declaration.
      	* internal-fn.c (expand_ASAN_POISON): Likewise.
      	* internal-fn.def (ASAN_POISON): New builtin.
      	* sanopt.c (pass_sanopt::execute): Expand
      	asan_expand_poison_ifn.
      	* tree-inline.c (copy_decl_for_dup_finish): Make function
      	external.
      	* tree-inline.h (copy_decl_for_dup_finish): Likewise.
      	* tree-ssa.c (is_asan_mark_p): New function.
      	(execute_update_addresses_taken): Rewrite local variables
      	(identified just by use-after-scope as addressable) into SSA.
      2017-01-23  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/asan/use-after-scope-3.c: Add additional flags.
      	* gcc.dg/asan/use-after-scope-9.c: Likewise and grep for
      	sanopt optimization for ASAN_POISON.
      
      From-SVN: r244791
      Martin Liska committed
    • sem_ch4.adb (Try_Primitive_Operations, [...]): argument is valid if it is a… · 913e4b36
      sem_ch4.adb (Try_Primitive_Operations, [...]): argument is valid if it is a derived type with unknown discriminants that...
      
      2017-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Try_Primitive_Operations,
      	Is_Valid_First_Argument_Of): argument is valid if it is a derived
      	type with unknown discriminants that matches its underlying
      	record view.
      	* exp_util.adb (Expand_Subtype_From_Expr): Do not expand
      	expression if its type is derived from a limited type with
      	unknown discriminants, because the expansion (which is a call)
      	must be expanded in the enclosing context to add the proper build-
      	in-place parameters to the call.
      	* lib.ads, exp_ch9.adb: Minor fixes in comments.
      
      From-SVN: r244790
      Ed Schonberg committed
    • [multiple changes] · a77152ca
      2017-01-23  Yannick Moy  <moy@adacore.com>
      
      	* frontend.adb (Frontend): Do not load runtime
      	unit for GNATprove when parsing failed.
      	* exp_ch9.adb: minor removal of extra whitespace
      	* exp_ch6.adb: minor typo in comment
      	* sem_util.adb: Code cleanup.
      	* exp_ch9.ads, par-ch2.adb: minor style fixes in whitespace and comment
      	* a-ngcefu.adb: minor style fix in whitespace
      
      2017-01-23  Thomas Quinot  <quinot@adacore.com>
      
      	* scos.ads: Document usage of 'd' as default SCO kind for
      	declarations.
      	* par_sco.adb (Traverse_Declarations_Or_Statements.
      	Traverse_Degenerate_Subprogram): New supporting routine for expression
      	functions and null procedures.
      	(Traverse_Declarations_Or_Statements.Traverse_One): Add
      	N_Expression_Function to the subprogram case; add required
      	support for null procedures and expression functions.
      
      2017-01-23  Bob Duff  <duff@adacore.com>
      
      	* namet.ads (Bounded_String): Decrease the size of type
      	Bounded_String to avoid running out of stack space.
      	* namet.ads (Append): Don't ignore buffer overflow; raise
      	Program_Error instead.
      
      From-SVN: r244789
      Arnaud Charlet committed
    • [multiple changes] · d43584ca
      2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch5.adb, freeze.adb, par-ch4.adb, scng.adb, sem_ch13.adb,
      	sem_ch3.adb, sem_ch5.adb, sem_ch5.ads, sem_util.adb, sinfo.ads: Minor
      	reformatting.
      	* exp_ch9.adb: minor style fix in comment.
      
      2017-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Analyze_Allocator): Handle properly a type derived
      	for a limited record extension with unknown discriminants whose
      	full view has no discriminants.
      
      2017-01-23  Yannick Moy  <moy@adacore.com>
      
      	* exp_spark.adb: Alphabetize with clauses.
      
      From-SVN: r244788
      Arnaud Charlet committed
    • [multiple changes] · 0f83b044
      2017-01-23  Gary Dismukes  <dismukes@adacore.com>
      
      	* a-calend.adb, prep.adb, debug.adb, prj.ads, prepcomp.adb,
      	exp_disp.adb, s-imgrea.adb, g-socket.adb, g-socket.ads, sem_ch13.adb,
      	prj-tree.ads: Minor spelling change for consistency (behaviour ->
      	behavior).
      
      2017-01-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* scng.adb (Scan): Use Ada version Ada_2020 to flag use of
      	Target_Name.
      	* par-ch4.adb (P_Primary): Ditto.
      	* opt.ads: Add Ada_2020 (optimistically) to enumeration list of
      	Ada_Version_Type.
      	* switch-c.adb (Scan_Front_End_Switches): Recognize -gnat2020 for
      	new Ada version Ada_2020.
      
      2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_attr.adb (Expand_Loop_Entry_Attribute): Force the generation
      	of a nominal type for the constant which captures the value of
      	the attribute prefix. Various clean ups.
      	* sem_attr.adb (Analyze_Attribute): Clean up the processing of
      	'Loop_Entry.
      
      2017-01-23  Yannick Moy  <moy@adacore.com>
      
      	* sem_util.adb (Has_Enabled_Property): Treat
      	protected objects and variables differently from other variables.
      
      From-SVN: r244787
      Arnaud Charlet committed