1. 14 Sep, 2017 9 commits
  2. 13 Sep, 2017 31 commits
    • sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie support. · 7d27d2fa
      	* config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
      	support.
      	(ENDFILE_LINUX_SPEC): Likewise.
      	(LINK_EH_SPEC): Likewise.
      	* config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
      	(LINK_OS_LINUX_SPEC32): Likewise.
      	(LINK_OS_LINUX_SPEC64): Likewise.
      	* config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
      	(LINK_OS_LINUX_SPEC): Likewise.
      
      From-SVN: r252735
      Jakub Jelinek committed
    • re PR fortran/82173 ([meta-bug] Parameterized derived type errors) · 87f3a5cf
      2017-09-13  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82173
      	* decl.c (match_char_kind): If the kind expression is
      	parameterized, save it in saved_kind_expr and set kind = 0.
      	(gfc_get_pdt_instance): Resolve and simplify before emitting
      	error on expression kind. Insert a missing simplification after
      	insertion of kind expressions.
      
      2017-09-13  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/82173
      	* gfortran.dg/pdt_10.f03 : New test.
      
      From-SVN: r252734
      Paul Thomas committed
    • re PR c++/68177 (Lambda capture doesn't work correctly when lambda is used in a pack expansion) · b6509175
      2017-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/68177
      	* g++.dg/cpp0x/lambda/lambda-68177.C: New.
      
      From-SVN: r252732
      Paolo Carlini committed
    • Fix emission of exception dispatch (PR middle-end/82154). · c7885b85
      2017-09-13  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/82154
      	* stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
      	CASE_HIGH is NULL_TREE.
      2017-09-13  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/82154
      	* g++.dg/torture/pr82154.C: New test.
      
      From-SVN: r252728
      Martin Liska committed
    • re PR c++/61362 (g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2 does not compile lambda with template) · 97e63e12
      2017-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/61362
      	* g++.dg/cpp0x/lambda/lambda-ice19.C: New.
      	* g++.dg/cpp0x/lambda/lambda-ice20.C: Likewise.
      
      From-SVN: r252724
      Paolo Carlini committed
    • re PR tree-optimization/80925 (vect peeling failures) · bce5091a
      2017-09-13  Steve Ellcey  <sellcey@cavium.com>
      
      	PR tree-optimization/80925
      	* gfortran.dg/vect/vect-2.f90: Add
      	--param vect-max-peeling-for-alignment=0 option.
      	Remove unaligned access and peeling checks.
      	* gfortran.dg/vect/vect-3.f90: Ditto.
      	* gfortran.dg/vect/vect-4.f90: Ditto.
      	* gfortran.dg/vect/vect-5.f90: Ditto.
      
      From-SVN: r252723
      Steve Ellcey committed
    • re PR c++/61135 (It seems to be not able to call virtual method of literal… · 13380861
      re PR c++/61135 (It seems to be not able to call virtual method of literal object in lambda expression)
      
      2017-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/61135
      	* g++.dg/cpp0x/lambda/lambda-ice18.C: New.
      	* g++.dg/cpp1y/lambda-ice2.C: Likewise.
      
      From-SVN: r252571
      Paolo Carlini committed
    • Turn SECONDARY_MEMORY_NEEDED into a hook · f15643d4
      Since the patch is going through all the definitions anyway, it seemed
      like a good opportunity to put the mode argument first, to match the
      order for register_move_cost.
      
      2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* target.def (secondary_memory_needed): New hook.
      	(secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
      	instead of SECONDARY_MEMORY_NEEDED.
      	(secondary_memory_needed_mode): Likewise.
      	* hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
      	* hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
      	* doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
      	(TARGET_SECONDARY_MEMORY_NEEDED): ...this.
      	(SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
      	* doc/tm.texi: Regenerate.
      	* config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
      	* config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
      	(TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	* config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
      	* config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
      	* config/i386/i386.c (inline_secondary_memory_needed): Put the
      	mode argument first and change the reg_class arguments to reg_class_t.
      	(ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
      	Make static.  Update the call to inline_secondary_memory_needed.
      	(ix86_register_move_cost): Update the call to
      	inline_secondary_memory_needed.
      	(TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	* config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
      	definition.
      	* config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
      	TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
      	in comment.
      	* config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
      	* config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
      	* config/mips/mips.c (mips_secondary_memory_needed): Make static
      	and match hook interface.  Add comment from mips.h.
      	(TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	* config/mmix/mmix.md (truncdfsf2): Refer to
      	TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
      	in comment.
      	* config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
      	(PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
      	* config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	(pa_secondary_memory_needed): New function.
      	* config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
      	* config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
      	* config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	(pdp11_secondary_memory_needed): Make static and match hook interface.
      	* config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
      	* config/powerpcspe/powerpcspe-protos.h
      	(rs6000_secondary_memory_needed_ptr): Delete.
      	* config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
      	Delete.
      	(TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	(rs6000_option_override_internal): Assign to
      	targetm.secondary_memory_needed rather than
      	rs6000_secondary_memory_needed_ptr.
      	(rs6000_secondary_memory_needed): Match hook interface.
      	(rs6000_debug_secondary_memory_needed): Likewise.
      	* config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
      	* config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
      	(riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
      	(TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
      	* config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
      	Delete.
      	* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
      	(TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	(rs6000_option_override_internal): Assign to
      	targetm.secondary_memory_needed rather than
      	rs6000_secondary_memory_needed_ptr.
      	(rs6000_secondary_memory_needed): Match hook interface.
      	(rs6000_debug_secondary_memory_needed): Likewise.
      	* config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
      	* config/s390/s390.c (s390_secondary_memory_needed): New function.
      	(TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
      	* config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
      	(sparc_secondary_memory_needed): New function.
      	* lra-constraints.c (check_and_process_move): Refer to
      	TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
      	in comment.
      	(curr_insn_transform): Likewise.
      	(process_alt_operands): Use targetm.secondary_memory_needed
      	instead of TARGET_SECONDARY_MEMORY_NEEDED.
      	(check_secondary_memory_needed_p): Likewise.
      	(choose_split_class): Likewise.
      	* reload.c: Unconditionally include code that was previously
      	conditional on SECONDARY_MEMORY_NEEDED.
      	(push_secondary_reload): Use targetm.secondary_memory_needed
      	instead of TARGET_SECONDARY_MEMORY_NEEDED.
      	(push_reload): Likewise.
      	* reload1.c: Unconditionally include code that was previously
      	conditional on SECONDARY_MEMORY_NEEDED.
      	(choose_reload_regs): Use targetm.secondary_memory_needed
      	instead of TARGET_SECONDARY_MEMORY_NEEDED.
      	(gen_reload): Likewise.
      	* system.h (SECONDARY_MEMORY_NEEDED): Poison.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r252461
      Richard Sandiford committed
    • Turn SECONDARY_MEMORY_NEEDED_MODE into a target hook · 94e23f53
      This includes a change to LRA.  Previously the code was:
      
          if (sclass == NO_REGS && dclass == NO_REGS)
            return false;
        #ifdef SECONDARY_MEMORY_NEEDED
          if (SECONDARY_MEMORY_NEEDED (sclass, dclass, GET_MODE (src))
        #ifdef SECONDARY_MEMORY_NEEDED_MODE
              && ((sclass != NO_REGS && dclass != NO_REGS)
                  || GET_MODE (src) != SECONDARY_MEMORY_NEEDED_MODE (GET_MODE (src)))
        #endif
              )
            {
              *sec_mem_p = true;
              return false;
            }
        #endif
      
      in which the positioning of the second ifdef meant that defining
      SECONDARY_MEMORY_NEEDED_MODE to its default value was not a no-op:
      without a definition, we would consider using secondary reloads for
      mem<-reg and reg<-mem reloads even if the secondary memory has the
      same mode as the original mem, while defining it would avoid this.
      The latter behaviour seems correct.
      
      The default is different for reload and LRA.  For LRA the default is
      to use the original mode, while reload promotes smaller-than-word
      integral modes to word mode:
      
        if (GET_MODE_BITSIZE (mode) < BITS_PER_WORD && INTEGRAL_MODE_P (mode))
          mode = mode_for_size (BITS_PER_WORD,
                                GET_MODE_CLASS (mode), 0).require ();
      
      Some of the ports that have switched to LRA seemed to have
      SECONDARY_MEMORY_NEEDED_MDOEs based on the old reload definition,
      and still referred to the reload.c:get_secondary_mem function in
      the comments.  The patch just keeps them as-is.
      
      2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* target.def (secondary_memory_needed_mode): New hook:
      	* targhooks.c (default_secondary_memory_needed_mode): Declare.
      	* targhooks.h (default_secondary_memory_needed_mode): New function.
      	* doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
      	(TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
      	* doc/tm.texi: Regenerate.
      	* lra-constraints.c (check_and_process_move): Use
      	targetm.secondary_memory_needed_mode instead of
      	TARGET_SECONDARY_MEMORY_NEEDED_MODE.
      	(curr_insn_transform): Likewise.
      	* reload.c (get_secondary_mem): Likewise.
      	* config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
      	* config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
      	function.
      	(TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
      	* config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
      	* config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
      	(TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
      	* config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
      	Delete.
      	* config/powerpcspe/powerpcspe-protos.h
      	(rs6000_secondary_memory_needed_mode): Delete.
      	* config/powerpcspe/powerpcspe.c
      	(TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
      	(rs6000_secondary_memory_needed_mode): Make static.
      	* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
      	* config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
      	Delete.
      	* config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
      	Redefine.
      	(rs6000_secondary_memory_needed_mode): Make static.
      	* config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
      	* config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
      	(TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
      	* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
      	* config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
      	Redefine.
      	(sparc_secondary_memory_needed_mode): New function.
      	* system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r252455
      Richard Sandiford committed
    • [AArch64, PATCH] Improve Neon store of zero · bb5d9711
      Committed on behalf of Jackson Woodruff.
      
      ---
      gcc/
      
      	* config/aarch64/constraints.md (Umq): New constraint.
      	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
      	Change to use Umq.
      	(mov<mode>): Update condition.
      
      gcc/testsuite/
      
      	* gcc.target/aarch64/simd/vect_str_zero.c: Update testcase.
      
      From-SVN: r252387
      Jackson Woodruff committed
    • re PR c/82167 (Segmentation fault when dereferencing the address of an array argument) · 267bbb6f
      	PR c/82167
      	* c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather
      	than expr.original_type.
      
      	* gcc.dg/pr82167.c: New test.
      
      From-SVN: r252372
      Marek Polacek committed
    • * MAINTAINERS: Remove email address of Jim Norris. · 72ace300
      From-SVN: r252218
      Thomas Schwinge committed
    • fold-vec-ld-char.c: New. · 8a411aa3
      [gcc/testsuite]
          
      2017-09-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
          
              * gcc.target/powerpc/fold-vec-ld-char.c: New.
              * gcc.target/powerpc/fold-vec-ld-double.c: New.
              * gcc.target/powerpc/fold-vec-ld-float.c: New.
              * gcc.target/powerpc/fold-vec-ld-int.c: New.
              * gcc.target/powerpc/fold-vec-ld-longlong.c: New.
              * gcc.target/powerpc/fold-vec-ld-short.c: New.
      
      From-SVN: r252087
      Will Schmidt committed
    • [Aarch64, Patch] Update failing testcase pr62178.c · 1cb656f8
      This patch changes pr62178.c so that it now scans
      for two `ldr`s, one into an `s` register, instead
      of a `ld1r` as before. Also add a scan for an mla
      instruction.
      
      The `ld1r` was needed when this should have generated
      a mla by vector. Now that we can generate an mla by
      element instruction and can load directly into the
      simd register, it is cheaper to not do the ld1r
      which needlessly duplicates the single element used
      across the whole vector register.
      
      Committed on behalf of Jackson Woodruff
      
      gcc/testsuite/
      
      	* gcc.target/aarch64/pr62178.c: Updated testcase
      	to scan for two ldrs and an mla.
      
      From-SVN: r252086
      Jackson Woodruff committed
    • PR libstdc++/81468 constrain std::chrono::time_point constructor · d0dda804
      	PR libstdc++/81468
      	* include/std/chrono (__enable_if_is_duration)
      	(__disable_if_is_duration): New alias templates to simplify SFINAE.
      	(duration_cast, floor, ceil): Use __enable_if_is_duration.
      	(duration::__is_float, duration::__is_harmonic): New alias templates
      	to simplify SFINAE.
      	(duration::duration(const _Rep2&)): Use _Require, __is_float and
      	__is_harmonic.
      	(duration::duration(const duration<_Rep2, _Period2>&)): Likewise.
      	(__common_rep_type): Remove, replace with ...
      	(__common_rep_t): New alias template.
      	(operator*, operator/, operator%): Use __common_rep_t and
      	__disable_if_is_duration.
      	(time_point::time_point(const time_point<clock, _Dur2>&)): Add missing
      	constraint from LWG DR 1177.
      	* testsuite/20_util/duration/cons/dr1177.cc: New.
      	* testsuite/20_util/duration/literals/range.cc: Update dg-error line.
      	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
      	* testsuite/20_util/time_point/cons/81468.cc: New.
      
      From-SVN: r252085
      Jonathan Wakely committed
    • [store-merging] Use store order as tie-breaker in sort_by_bitpos · 0f0027d1
      As Alexander pointed out in the thread starting at [1] the sort_by_bitpos sorting function
      was behaving badly when we had multiple stores at the same position.  He fixed that (thanks!)
      but we can do better by not returning zero when the bitpositions are equal but by falling back
      to comparing the order the stores appear in, which is guaranteed to be unique (barring other
      bugs elsewhere).
      
      This patch does that.
      
      Bootstrapped and tested on aarch64-none-linux-gnu.
      
      [1] https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00895.html 
      
      	* gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
      	when bitposition is the same.
      
      From-SVN: r252084
      Kyrylo Tkachov committed
    • Make-lang.in: In the fallback mechanim... · 7dbe3736
      2017-09-13  Nicolas Roche  <roche@adacore.com>
      
      	* Make-lang.in: In the fallback mechanim, parse the associated .ali
      	file and try to guess the locations of dependencies.
      
      From-SVN: r252082
      Nicolas Roche committed
    • Conv-op identifers not in identifier hash table · f216550d
      	Conv-op identifers not in identifier hash table
      	* lex.c (conv_type_hasher): Make member fns inline.
      	(make_conv_op_name): Directly clone conv_op_identifier.
      
      From-SVN: r252081
      Nathan Sidwell committed
    • re PR c++/59949 (lambda expression as default argument of function template… · e5b87132
      re PR c++/59949 (lambda expression as default argument of function template causes "already defined" messages in assembler)
      
      2017-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/59949
      	* g++.dg/cpp0x/lambda/lambda-defarg7.C: New.
      
      From-SVN: r252079
      Paolo Carlini committed
    • Rename CLASSTYPE_METHOD_VEC to CLASSTYPE_MEMBER_VEC. · 783dc739
      	* cp-tree.h (struct lang_type): Rename methods to members.
      	(CLASSTYPE_METHOD_VEC): Rename to ...
      	(CLASSTYPE_MEMBER_VEC): ... this.
      	* name-lookup.h (get_method_slot): Rename to ...
      	(get_member_slot): ... this.
      	(resort_type_method_vec): Rename to ...
      	(resort_type_member_vec): ... this.
      	* class.c (add_method, warn_hidden): Adjust.
      	* search.c (dfs_locate_field_accessor_pre): Adjust.
      	* name-lookup.c (method_vec_binary_search): Rename to ...
      	(member_vec_binary_search): ... this and adjust.
      	(method_vec_linear_search): Rename to ...
      	(member_vec_linear_search): ... this and adjust.
      	(fields_linear_search, get_class_binding_direct): Adjust.
      	(get_method_slot): Rename to ...
      	(get_member_slot): ... this and adjust.
      	(method_name_slot): Rename to ...
      	(member_name_slot): ... this and adjust.
      	(resort_type_method_vec): Rename to ...
      	(resort_type_member_vec): ... this and adjust.
      	(method_vec_append_class_fields): Rename to ...
      	(member_vec_append_class_fields): ... this and adjust.
      	(method_vec_append_enum_values): Rename to ...
      	(member_vec_append_enum_values): ... this and adjust.
      	(method_vec_dedup): Rename to ...
      	(member_vec_dedup): ... this and adjust.
      	(set_class_bindings, insert_late_enum_def_bindings): Adjust.
      
      From-SVN: r252078
      Nathan Sidwell committed
    • Update aarch64/vmov_n_1.c · 491cefb7
      Update vmov_n_1.c now we are generating better code for dup:
      
              ldr     s0, [x0]
              dup     v0.2s, v0.s[0]
              ret
      
          gcc/testsuite/
      	* gcc.target/aarch64/vmov_n_1.c: Update dup scan-assembler.
      
      From-SVN: r252077
      Wilco Dijkstra committed
    • [multiple changes] · 5067f3a0
      2017-09-13  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch13.adb (Register_Address_Clause_Check): New procedure to save
      	the suppression status of Alignment_Check on the current scope.
      	(Alignment_Checks_Suppressed): New function to use the saved instead of
      	the current suppression status of Alignment_Check.
      	(Address_Clause_Check_Record): Add Alignment_Checks_Suppressed field.
      	(Analyze_Attribute_Definition_Clause): Instead of manually appending to
      	the table, call Register_Address_Clause_Check.
      	(Validate_Address_Clauses): Call Alignment_Checks_Suppressed on the
      	recorded address clause instead of its entity.
      
      2017-09-13  Jerome Guitton  <guitton@adacore.com>
      
      	* libgnarl/s-tpopsp__vxworks-tls.adb,
      	libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-tpopsp__vxworks.adb
      	(Self): Register thread if task id is null.
      
      2017-09-13  Arnaud Charlet  <charlet@adacore.com>
      
      	* libgnat/s-htable.adb, libgnat/s-htable.ads: Minor style tuning.
      
      2017-09-13  Arnaud Charlet  <charlet@adacore.com>
      
      	* lib-xref-spark_specific.adb (Scopes): simplify hash map; now it maps
      	from an entity to only scope index, as a mapping from an entity to the
      	same entity was useless.
      	(Get_Scope_Num): refactor as a simple renaming; rename parameter from N
      	to E.
      	(Set_Scope_Num): refactor as a simple renaming; rename parameter from N
      	to E.
      	(Is_Constant_Object_Without_Variable_Input): remove local "Result"
      	variable, just use return statements.
      
      From-SVN: r252076
      Pierre-Marie de Rodat committed
    • s-vxwext__kernel-smp.adb, [...]: New file. · 231bba8d
      	* libgnarl/s-vxwext__kernel-smp.adb,
      	libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-vxwext__noints.adb:
      	New file.
      
      From-SVN: r252075
      Arnaud Charlet committed
    • [testsuite/ARM] Fix coprocessor intrinsic test failures on ARMv8-A · 4395a473
      Coprocessor intrinsic tests in gcc.target/arm/acle test whether
      __ARM_FEATURE_COPROC has the right bit defined before calling the
      intrinsic. This allows to test both the correct setting of that macro
      and the availability and correct working of the intrinsic. However the
      __ARM_FEATURE_COPROC macro is no longer defined for ARMv8-A since
      r249399.
      
      This patch changes the testcases to skip that test for ARMv8-A and
      ARMv8-R targets.  It also fixes some irregularity in the coprocessor
      effective targets:
      - add ldcl and stcl to the list of instructions listed as guarded by
        arm_coproc1_ok
      - enable tests guarded by arm_coproc2_ok, arm_coproc3_ok and
        arm_coproc4_ok for Thumb-2 capable targets but disable for Thumb-1
        targets.
      
      2017-09-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/testsuite/
          * gcc.target/arm/acle/cdp.c: Skip __ARM_FEATURE_COPROC check for
          ARMv8-A and ARMv8-R.
          * gcc.target/arm/acle/cdp2.c: Likewise.
          * gcc.target/arm/acle/ldc.c: Likewise.
          * gcc.target/arm/acle/ldc2.c: Likewise.
          * gcc.target/arm/acle/ldc2l.c: Likewise.
          * gcc.target/arm/acle/ldcl.c: Likewise.
          * gcc.target/arm/acle/mcr.c: Likewise.
          * gcc.target/arm/acle/mcr2.c: Likewise.
          * gcc.target/arm/acle/mcrr.c: Likewise.
          * gcc.target/arm/acle/mcrr2.c: Likewise.
          * gcc.target/arm/acle/mrc.c: Likewise.
          * gcc.target/arm/acle/mrc2.c: Likewise.
          * gcc.target/arm/acle/mrrc.c: Likewise.
          * gcc.target/arm/acle/mrrc2.c: Likewise.
          * gcc.target/arm/acle/stc.c: Likewise.
          * gcc.target/arm/acle/stc2.c: Likewise.
          * gcc.target/arm/acle/stc2l.c: Likewise.
          * gcc.target/arm/acle/stcl.c: Likewise.
          * lib/target-supports.exp:
          (check_effective_target_arm_coproc1_ok_nocache): Mention ldcl
          and stcl in the comment.
          (check_effective_target_arm_coproc2_ok_nocache): Allow Thumb-2 targets
          and disable Thumb-1 targets.
          (check_effective_target_arm_coproc3_ok_nocache): Likewise.
          (check_effective_target_arm_coproc4_ok_nocache): Likewise.
      
      Acked-by: Kyrill Tkachov <kyrylo.tkachov@foss.arm.com>
      
      From-SVN: r252074
      Thomas Preud'homme committed
    • Fix broken URLs in libstdc++ API docs · c29730ec
      	* doc/doxygen/mainpage.html: Fix broken URLs.
      
      From-SVN: r252070
      Jonathan Wakely committed
    • PR libstdc++/81835 fix broken URLs in libstdc++ docs · ff7e6f06
      	PR libstdc++/81835
      	* doc/xml/manual/extensions.xml: Replace unstable URL.
      	* doc/html/manual/ext_demangling.html: Regenerate.
      	* libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.
      
      From-SVN: r252066
      Jonathan Wakely committed
    • [multiple changes] · 0cb81445
      2017-09-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb: Flag42 is now Is_Controlled_Active.
      	(Is_Controlled): This attribute is now synthesized.
      	(Is_Controlled_Active): This attribute is now an explicit flag rather
      	than a synthesized attribute.	(Set_Is_Controlled): Removed.
      	(Set_Is_Controlled_Active): New routine.
      	(Write_Entity_Flags): Update the output for Flag42.
      	* einfo.ads: Update the documentation of the following attributes:
      	Disable_Controlled, Is_Controlled, Is_Controlled_Active, Is_Controlled
      	and Is_Controlled_Active have swapped their functionality.
      	(Is_Controlled): Renamed to Is_Controlled_Active.
      	(Is_Controlled_Active): Renamed to Is_Controlled.
      	(Set_Is_Controlled): Renamed to Set_Is_Controlled_Active.
      	* exp_ch3.adb (Expand_Freeze_Record_Type): Restore the original use of
      	Is_Controlled.
      	* exp_util.adb (Has_Some_Controlled_Component): Code clean up.
      	(Needs_Finalization): Code clean up. Remove the tests for
      	Disable_Controlled because a) they were incorrect as they would reject
      	a type which is sublect to the aspect, but may contain controlled
      	components, and b) they are no longer necessary.
      	* exp_util.ads (Needs_Finalization): Update comment on documentation.
      	* freeze.adb (Freeze_Array_Type): Restore the original use of
      	Is_Controlled.
      	(Freeze_Record_Type): Restore the original use of Is_Controlled.
      	* sem_ch3.adb (Analyze_Object_Declaration): Restore the original use of
      	Is_Controlled.
      	(Array_Type_Declaration): Restore the original use of Is_Controlled.
      	(Build_Derived_Private_Type): Restore the original use of
      	Is_Controlled.
      	(Build_Derived_Record_Type): Set the Is_Controlled_Active flag of a
      	type derived from Ada.Finalization.[Limited_]Controlled.
      	(Build_Derived_Type): Restore the original use of Is_Controlled.
      	(Record_Type_Definition): Restore the original use of Is_Controlled.
      	* sem_ch7.adb (Preserve_Full_Attributes): Restore the original use of
      	Is_Controlled.
      	* sem_ch13.adb (Analyze_Aspect_Disable_Controlled): New routine.
      	(Analyze_Aspect_Specifications): Use routine
      	Analyze_Aspect_Disable_Controlled to process aspect Disable_Controlled.
      
      2017-09-13  Vincent Celier  <celier@adacore.com>
      
      	* clean.adb (Gnatclean): Fix error when looking for target
      	of <target>-gnatclean
      
      2017-09-13  Javier Miranda  <miranda@adacore.com>
                  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch8.adb (Find_Expanded_Name): Complete code that identifies an
      	expanded name that designates the current instance of a child unit in
      	its own body and appears as the prefix of a reference to an entity
      	local to the child unit.
      
      From-SVN: r252065
      Pierre-Marie de Rodat committed
    • re PR c++/47226 ([C++0x] GCC doesn't expand template parameter pack that appears… · caf3dcdf
      re PR c++/47226 ([C++0x] GCC doesn't expand template parameter pack that appears in a lambda-expression)
      
      2017-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/47226
      	* g++.dg/cpp0x/lambda/lambda-variadic4.C: New.
      	* g++.dg/cpp0x/lambda/lambda-variadic5.C: Likewise.
      
      From-SVN: r252064
      Paolo Carlini committed
    • dwarf2out.c (output_die_symbol): Remove. · 2fc1f482
      2017-09-13  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (output_die_symbol): Remove.
      	(output_die): Do not output a DIEs symbol.
      
      From-SVN: r252063
      Richard Biener committed
    • re PR tree-optimization/82128 (ICE on valid code) · 2da6996c
      2017-09-13  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/82128
      	* gimple-fold.c (gimple_fold_call): Update SSA name in-place to
      	default-def to avoid breaking iterator update with the weird
      	interaction with cgraph_update_edges_for_call_stmt_node.
      
      	* g++.dg/pr82128.C: New testcase.
      
      From-SVN: r252062
      Richard Biener committed
    • tree-cfg.c (verify_gimple_assign_binary): Add verification for WIDEN_SUM_EXPR... · 5a41741f
      2017-09-13  Richard Biener  <rguenther@suse.de>
      
      	* tree-cfg.c (verify_gimple_assign_binary): Add verification
      	for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
      	VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
      	(verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
      
      From-SVN: r252061
      Richard Biener committed