1. 21 Jun, 2016 17 commits
    • Fix type_dependent_expression_p of member templates. · e547455b
      	* pt.c (template_parm_outer_level, uses_outer_template_parms): New.
      	(type_dependent_expression_p): Use uses_outer_template_parms.
      
      From-SVN: r237654
      Jason Merrill committed
    • The recently added gcc.target/aarch64/advsimd-intrinsics/vrnd*.c tests cause... · 89192c3c
      The recently added gcc.target/aarch64/advsimd-intrinsics/vrnd*.c tests cause
      failures due to accidentally running on non-ARMv8 hardware - the target check
      arm_v8_neon_ok is correct for compilation tests but should be arm_v8_neon_hw
      for execution tests.  Fix this and also change arm_v8_neon_hw to return
      true for AArch64 so these tests are run on AArch64 too.
      
          gcc/testsuite/
      	* gcc.target/aarch64/advsimd-intrinsics/vrnd.c
      	(dg-require-effective-target): Use arm_v8_neon_hw.
      	* gcc.target/aarch64/advsimd-intrinsics/vrnda.c
      	(dg-require-effective-target): Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndm.c
      	(dg-require-effective-target): Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndn.c
      	(dg-require-effective-target): Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndp.c
      	(dg-require-effective-target): Likewise.
      	* gcc.target/aarch64/advsimd-intrinsics/vrndx.c
      	(dg-require-effective-target): Likewise.
      	* lib/target-supports.exp (check_runtime arm_v8_neon_hw_available):
      	Add AArch64 check.
      
      From-SVN: r237653
      Wilco Dijkstra committed
    • Fix tree-ssa/attr-hotcold-2.c failures now that the test runs. · 64ac50e2
      GCC dumps the blocks 3 times so update count 3 and the test passes.
       
          gcc/testsuite/
      	* gcc.dg/tree-ssa/attr-hotcold-2.c (scan-tree-dump-times):
      	Set to 3 so test passes.
      
      From-SVN: r237652
      Wilco Dijkstra committed
    • s/imposisble/impossible in predict.c · 2c40d563
      	* predict.c (force_edge_cold): Replace imposisble with
      	impossible.
      
      From-SVN: r237651
      Martin Liska committed
    • Due to recent improvements to the vectorizer... · 6252b5db
      Due to recent improvements to the vectorizer, the number of vectorized
      loops needs to be increased to 21 in gfortran.dg/vect/vect-8.f90.
      
          gcc/testsuite/
      
              * gfortran.dg/vect/vect-8.f90 (vectorized loops): Set to 21.
      
      From-SVN: r237650
      Wilco Dijkstra committed
    • [AVX-512ER] vrsqrt28ps auto generation · 3b9bc511
      gcc/
      	* config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
      	* config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
      gcc/testsuite/
      	* gcc.target/i386/avx512er-vrsqrt28ps-3.c: New test.
      	* gcc.target/i386/avx512er-vrsqrt28ps-4.c: New test.
      	* gcc.target/i386/avx512er-vrsqrt28ps-5.c: New test.
      	* gcc.target/i386/avx512er-vrsqrt28ps-6.c: New test.
      
      From-SVN: r237649
      Ilya Verbin committed
    • [AVX-512ER] vrcp28ps auto generation · 21db1c78
      gcc/
      	* config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
      gcc/testsuite/
      	* gcc.target/i386/avx512er-vrcp28ps-3.c: New test.
      	* gcc.target/i386/avx512er-vrcp28ps-4.c: New test.
      
      From-SVN: r237648
      Ilya Verbin committed
    • Convert V1TImode register to TImode in debug insn · 9d30e86f
      TImode register referenced in debug insn can be converted to V1TImode
      by scalar to vector optimization.  After converting a TImode register
      to V1TImode, we need to check all debug insns on its use chain to
      convert the V1TImode register to SUBREG TImode.
      
      gcc/
      
      2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
      	    Ilya Enkovich  <ilya.enkovich@intel.com>
      
      	PR target/71549
      	* config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
      	New member function to convert V1TImode register to SUBREG
      	TImode in debug insn.
      	(timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
      	after changing register mode to V1TImode.
      
      gcc/testsuite/
      
      2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR target/71549
      	* gcc.target/i386/pr71549.c: New test.
      
      Co-Authored-By: Ilya Enkovich <ilya.enkovich@intel.com>
      
      From-SVN: r237647
      H.J. Lu committed
    • vadsdu-0.c: Replace dg-require-effective-target directive to allow test to run on more... · 448a7c69
      gcc/testsuite/ChangeLog:
      
      2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* gcc.target/powerpc/vadsdu-0.c: Replace
      	dg-require-effective-target directive to allow test to run on more
      	platforms, and add dg-skip-if directive to disable test on aix
      	platforms because of known incompatibilities.
      	* gcc.target/powerpc/vadsdu-1.c: Likewise.
      	* gcc.target/powerpc/vadsdu-2.c: Likewise.
      	* gcc.target/powerpc/vadsdu-3.c: Likewise.
      	* gcc.target/powerpc/vadsdu-4.c: Likewise.
      	* gcc.target/powerpc/vadsdu-5.c: Likewise.
      	* gcc.target/powerpc/vadsdub-1.c: Likewise.
      	* gcc.target/powerpc/vadsdub-2.c: Replace
      	dg-require-effective-target directive to allow test to run on more
      	platforms, and add dg-skip-if directive to disable test on aix
      	platforms because of known incompatibilities.
      	(doAbsoluteDifferenceUnsigned): Replace __builtin_vec_vadub call
      	with vec_absdb call to differentiate this test from vadsdub-1.c.
      	* gcc.target/powerpc/vadsduh-1.c: Replace
      	dg-require-effective-target directive to allow test to run on more
      	platforms, and add dg-skip-if directive to disable test on aix
      	platforms because of known incompatibilities.
      	* gcc.target/powerpc/vadsduh-2.c: Likewise.
      	* gcc.target/powerpc/vadsduw-1.c: Likewise.
      	* gcc.target/powerpc/vadsduw-2.c: Likewise.
      
      From-SVN: r237646
      Kelvin Nilsen committed
    • [PATCH/AARCH64] Accept vulcan as a cpu name for the AArch64 port of GCC · 717b373c
      gcc/ChangeLog
      
      	* config/aarch64/aarch64-cores.def (vulcan): New core.
      	* config/aarch64/aarch64-tune.md: Regenerate.
      	* doc/invoke.texi: Document vulcan as an available option.
      
      From-SVN: r237645
      Virendra Pathak committed
    • config-list.mk: Remove rs6000-ibm-aix4.3, rs6000-ibm-aix5.1, rs6000-ibm-aix5.2. · 316ded53
              * config-list.mk: Remove rs6000-ibm-aix4.3, rs6000-ibm-aix5.1,
              rs6000-ibm-aix5.2.
              Rename rs6000-ibm-aix6.0 as rs6000-ibm-aix6.1.
              Add rs6000-ibm-aix7.1.
      
      From-SVN: r237644
      David Edelsohn committed
    • cse.c (canon_asm_operands): New function extracted from... · 6380a82e
      	* cse.c (canon_asm_operands): New function extracted from...
      	(canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
      	either standalone or member of a PARALLEL.
      
      From-SVN: r237642
      Eric Botcazou committed
    • re PR target/30417 (Section .data cannot be moved with -mmcu=atmega88) · e9305990
      	PR target/30417
      	* config/avr/gen-avr-mmcu-specs.c (print_mcu):
      	[*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
      	[*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
      
      From-SVN: r237639
      Georg-Johann Lay committed
    • re PR target/71103 (avr-gcc crashes with unrecognizable insn error) · 4e1eac56
      	PR target/71103
      	* config/avr/avr.md (movqi): Only handle loading subreg:qi of
      	constant addresses if can_create_pseudo_p.
      
      From-SVN: r237635
      Georg-Johann Lay committed
    • re PR tree-optimization/71588 (ICE on valid code at -O2 and -O3 on… · 0ad84f34
      re PR tree-optimization/71588 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in execute_todo, at passes.c:2009)
      
      	PR tree-optimization/71588
      	* tree-ssa-strlen.c (valid_builtin_call): New function.
      	(adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
      	it.
      
      	* gcc.dg/pr71558.c: New test.
      
      From-SVN: r237628
      Jakub Jelinek committed
    • Mark some more tests as UNSUPPORTED for avr · e71e8d94
      	* c-c++-common/pr68657-1.c: Require ptr32plus support.
      	* c-c++-common/pr68657-2.c: Likewise.
      	* c-c++-common/pr68657-3.c: Likewise.
      	* gcc.dg/torture/pr69714.c: Require int32plus support.
      	* gcc.dg/torture/pr70025.c: Likewise.
      	* gcc.dg/torture/pr70083.c: Likewise.
      	* gcc.dg/torture/pr70542.c: Likewise.
      	* gcc.dg/torture/pr70935.c: Require ptr32plus support.
      
      From-SVN: r237627
      Senthil Kumar Selvaraj committed
    • Daily bump. · 486540e2
      From-SVN: r237626
      GCC Administrator committed
  2. 20 Jun, 2016 23 commits
    • Fix ICE on conditional expression between DFP and non-DFP float (PR c/71601). · 5a578671
      A conditional expression between DFP and non-DFP floating-point
      produces an ICE.  This patch fixes this by making
      build_conditional_expr return early when c_common_type produces an
      error.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      	PR c/71601
      gcc/c:
      	* c-typeck.c (build_conditional_expr): Return error_mark_node if
      	c_common_type returns error_mark_node.
      
      gcc/testsuite:
      	* gcc.dg/dfp/usual-arith-conv-bad-3.c: New test.
      
      From-SVN: r237622
      Joseph Myers committed
    • re PR middle-end/71581 (ICE on valid code on x86_64-linux-gnu with… · 50aa64d5
      re PR middle-end/71581 (ICE on valid code on x86_64-linux-gnu with -Wuninitialized (Segmentation fault))
      
      	PR middle-end/71581
      	* tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
      	see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
      	for conversion of scalar user var to complex type and use the
      	underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
      	punt.
      
      	* gcc.dg/pr71581.c: New test.
      
      From-SVN: r237621
      Jakub Jelinek committed
    • re PR rtl-optimization/71591 (SIGSEGV in test_uncond_jump (rtl-tests.c:90) with -E -fself-test) · 7a9df68e
      	PR rtl-optimization/71591
      	* toplev.c (toplev::run_self_tests): If no_backend, complain and
      	don't run any tests.
      
      	* gcc.dg/cpp/pr71591.c: New test.
      
      From-SVN: r237620
      Jakub Jelinek committed
    • re PR libstdc++/71181 (Reserving in unordered_map doesn't reserve enough) · 29dbb034
      2016-06-20  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/71181
      	* include/tr1/hashtable_policy.h
      	(_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
      	dereferenceable to avoid check on lower_bound result.
      	(_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
      	(_Prime_rehash_policy::_M_need_rehash): Likewise.
      	* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
      	Always return a value greater than input value. Set _M_next_resize to
      	max value when reaching highest prime number.
      	* src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
      	being now useless.
      	* testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
      	* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
      	(test02): New.
      	* testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
      	* testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
      	Fix indentation.
      
      From-SVN: r237617
      François Dumont committed
    • re PR target/71571 ([CRIS] Multiple inheritance non-virtual PIC thunk causes crash) · 3947cf19
      	PR target/71571
      	* g++.dg/torture/pr71571.C: New test.
      
      From-SVN: r237616
      David B. Robins committed
    • re PR target/71571 ([CRIS] Multiple inheritance non-virtual PIC thunk causes crash) · b2b4e462
      	PR target/71571
      	* config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
      	delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
      	space for PIC with non-v32 and the common non-PIC "jump".
      
      From-SVN: r237615
      Hans-Peter Nilsson committed
    • re PR target/71559 (ICE in ix86_fp_cmp_code_to_pcmp_immediate, at… · c4ff221e
      re PR target/71559 (ICE in ix86_fp_cmp_code_to_pcmp_immediate, at config/i386/i386.c:23042 (KNL/AVX512))
      
      	PR target/71559
      	* config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
      	returned values and add UN*/LTGT/*ORDERED cases with values matching
      	D operand modifier on vcmp for AVX.
      
      	* gcc.target/i386/sse2-pr71559.c: New test.
      	* gcc.target/i386/avx-pr71559.c: New test.
      	* gcc.target/i386/avx512f-pr71559.c: New test.
      
      From-SVN: r237614
      Jakub Jelinek committed
    • re PR fortran/71194 (ICE on compilation with fcheck=all ; -fcheck=bounds) · f1b5abfb
      2016-06-20  Tobias Burnus  <burnus@net-b.de>
      
              fortran/71194
              * trans-expr.c (gfc_trans_pointer_assignment): Correctly handle
              RHS pointer functions.
      
      2016-06-20  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/71194
              * gfortran.dg/pointer_remapping_10.f90: New.
      
      From-SVN: r237612
      Tobias Burnus committed
    • C++ FE: Show both locations in string literal concatenation error · 842107e4
      gcc/cp/ChangeLog:
      	* parser.c (cp_parser_string_literal): Convert non-standard
      	concatenation error to directly use a rich_location, and
      	use that to add the location of the first literal to the
      	diagnostic.
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/diagnostic/string-literal-concat.C: New test case.
      
      From-SVN: r237608
      David Malcolm committed
    • This patch cleans up the -mpc-relative-loads option processing. · 9ee6540a
      This patch cleans up the -mpc-relative-loads option processing.  Rename to avoid
      the confusing nopcrelative_literal_loads names.  Fix the option processing code
      to correctly support -mno-pc-relative-loads rather than ignore it. 
      
          gcc/
      	* config/aarch64/aarch64.opt
      	(mpc-relative-literal-loads): Rename internal option name.
      	* config/aarch64/aarch64.c
      	(aarch64_nopcrelative_literal_loads): Rename to 
      	aarch64_pcrelative_literal_loads.
      	(aarch64_expand_mov_immediate): Likewise.
      	(aarch64_secondary_reload): Likewise.
      	(aarch64_can_use_per_function_literal_pools_p): Likewise.
      	(aarch64_override_options_after_change_1): Rename and simplify logic.
      	(aarch64_classify_symbol): Merge large model checks into switch,
      	remove pc-relative load check.
      
      From-SVN: r237607
      Wilco Dijkstra committed
    • PR c/69507 - bogus warning: ISO C does not allow __alignof__ (expression) · d9e8bdfd
      gcc/testsuite/ChangeLog:
      	* gnu89-const-expr-1.c: Avoid diagnosing __alignof__ as not conforming.
      	* gnu90-const-expr-1.c: Same.
      	* gnu99-const-expr-1.c: Same.
      	* gnu99-static-1.c: Same.
      
      From-SVN: r237606
      Martin Sebor committed
    • [PATCH]Fix scan-tree-dump-times syntax errors in gcc.dg/tree-ssa/attr-hotcold-2.c · 67785479
      gcc/testsuite/
      
      2016-06-20  Renlin Li  <renlin.li@arm.com>
      
      	* gcc.dg/tree-ssa/attr-hotcold-2.c: Fix syntax errors.
      
      From-SVN: r237605
      Renlin Li committed
    • [AArch64] Give some new costs for Cortex-A53 floating-point operations · f6dbc402
      gcc/
      
      	* config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
      	costs relative to the cost of a register move.
      
      From-SVN: r237604
      James Greenhalgh committed
    • [Patch AArch64] Add some more missing intrinsics · 636929b8
      gcc/ChangeLog
      
      2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
      
      	* config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
      	(vcvt_n_f64_u64): Likewise.
      	(vcvt_n_s64_f64): Likewise.
      	(vcvt_n_u64_f64): Likewise.
      	(vcvt_f64_s64): Likewise.
      	(vrecpe_f64): Likewise.
      	(vcvt_f64_u64): Likewise.
      	(vrecps_f64): Likewise.
      
      gcc/testsuite/ChangeLog
      
      2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
      
      	* gcc.target/aarch64/vcvt_f64_1.c: New.
      	* gcc.target/aarch64/vcvt_n_f64_1.c: New.
      	* gcc.target/aarch64/vrecp_f64_1.c: New.
      
      From-SVN: r237603
      James Greenhalgh committed
    • [Patch AArch64] Fixup to fcvt patterns added in r237200 · 1f0e9e34
      gcc/
      
      	* config/aarch64/aarch64.md
      	(<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
      	iterators.
      	(<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
      	attributes.
      	* config/aarch64/aarch64-builtins.c
      	(aarch64_types_binop_uss_qualifiers): Delete.
      	(TYPES_BINOP_USS): Likewise.
      	(aarch64_types_binop_sus_qualifiers): Likewise.
      	(TYPES_BINOP_SUS): Likewise.
      	(aarch64_types_fcvt_from_unsigned_qualifiers): New.
      	(TYPES_FCVTIMM_SUS): Likewise.
      	* config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
      	rather than BINOP.
      	(ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
      	(fcvtzs): Use SHIFTIMM rather than BINOP.
      	(fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
      
      From-SVN: r237602
      James Greenhalgh committed
    • [AArch64] Give some new costs for Cortex-A57 floating-point operations · b2fb6b75
      gcc/
      
      	* config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
      	costs relative to the cost of a register move.
      
      From-SVN: r237601
      James Greenhalgh committed
    • [multiple changes] · 20250fb8
      2016-06-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* make.adb, gnatbind.adb, g-socket.adb, sem_ch13.adb: Minor
      	reformatting.
      	* lib.ads, sem_util.adb: Minor typo in comment.
      
      2016-06-20  Yannick Moy  <moy@adacore.com>
      
      	* sem_prag.adb, sem_prag.ads (Build_Pragma_Check_Equivalent):
      	Add parameter Keep_Pragma_Id to optionally keep
      	the identifier of the pragma instead of converting
      	to pragma Check. Also set type of new function call
      	appropriately.	(Collect_Inherited_Class_Wide_Conditions):
      	Call Build_Pragma_Check_Equivalent with the new parameter
      	Keep_Pragma_Id set to True to keep the identifier of the copied
      	pragma.
      	* sinfo.ads: Add comment.
      
      2016-06-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Build_Invariant_Procedure_Body):
      	Always install the scope of the invariant procedure
      	in order to produce better error messages. Do not
      	insert the body when the context is a generic unit.
      	(Build_Invariant_Procedure_Declaration): Perform minimal
      	decoration of the invariant procedure and its formal parameter
      	in case they are not analyzed.	Do not insert the declaration
      	when the context is a generic unit.
      
      From-SVN: r237600
      Arnaud Charlet committed
    • sem_ch13.adb (Visible_Component): New procedure... · 9e3be36e
      2016-06-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Visible_Component): New procedure, subsidiary
      	of Replace_Type_References_ Generic, to determine whether an
      	identifier in a predicate or invariant expression is a visible
      	component of the type to which the predicate or invariant
      	applies. Implements the visibility rule stated in RM 13.1.1
      	(12/3).
      
      From-SVN: r237599
      Ed Schonberg committed
    • [multiple changes] · 2f8d7dfe
      2016-06-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* s-regpat.adb, sem_prag.adb, pprint.adb, sem_ch13.adb: Minor
      	reformatting.
      
      2016-06-20  Tristan Gingold  <gingold@adacore.com>
      
      	* make.adb (Check_Standard_Library): Consider system.ads
      	if s-stalib.adb is not available.
      	* gnatbind.adb (Add_Artificial_ALI_File): New procedure extracted from
      	gnatbind.
      
      2016-06-20  Thomas Quinot  <quinot@adacore.com>
      
      	* g-socket.adb (Is_IP_Address): A string consisting in digits only is
      	not a dotted quad.
      
      2016-06-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_ch7.adb (Build_Invariant_Procedure_Body):
      	decorate invariant procedure body with typical properties of
      	procedure entityes.
      
      2016-06-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* a-exetim-darwin.adb: New file.
      
      From-SVN: r237598
      Arnaud Charlet committed
    • Improve modes_tieable by returning true in more cases... · 61f17a5c
      Improve modes_tieable by returning true in more cases: allow scalar access
      within vectors without requiring an extra move.  Removing these moves helps
      the register allocator in deciding whether to use integer or FP registers on
      operations that can be done on both.  This saves about 100 instructions in the
      gcc.target/aarch64 tests.
      
      A typical example:
      
      	orr     v1.8b, v0.8b, v1.8b
      	fmov    x0, d0
      	fmov    x1, d1
      	add     x0, x1, x0
      	ins     v0.d[0], x0
      	orr     v0.8b, v1.8b, v0.8b
      
      after:
      
      	orr     v1.8b, v0.8b, v1.8b
      	add     d0, d1, d0
      	orr     v0.8b, v1.8b, v0.8b
      
          gcc/
      	* config/aarch64/aarch64.c (aarch64_modes_tieable_p):
      	Allow scalar/single vector modes to be tieable.
      
      From-SVN: r237597
      Wilco Dijkstra committed
    • [multiple changes] · 3ddfabe3
      2016-06-16  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* atree.ads, atree.adb (Elist29): New routine.
      	(Set_Elist29): New routine.
      	* atree.h New definition for Elist29.
      	* einfo.adb Subprograms_For_Type is now an Elist rather than
      	a node. Has_Invariants is now a synthesized attribute
      	and does not require a flag. Has_Own_Invariants
      	is now Flag232. Has_Inherited_Invariants is
      	Flag291. Is_Partial_Invariant_Procedure is Flag292.
      	(Default_Init_Cond_Procedure): Reimplemented.
      	(Has_Inherited_Invariants): New routine.
      	(Has_Invariants): Reimplemented.
      	(Has_Own_Invariants): New routine.
      	(Invariant_Procedure): Reimplemented.
      	(Is_Partial_Invariant_Procedure): New routine.
      	(Partial_Invariant_Procedure): Reimplemented.
      	(Predicate_Function): Reimplemented.
      	(Predicate_Function_M): Reimplemented.
      	(Set_Default_Init_Cond_Procedure): Reimplemented.
      	(Set_Has_Inherited_Invariants): New routine.
      	(Set_Has_Invariants): Removed.
      	(Set_Has_Own_Invariants): New routine.
      	(Set_Invariant_Procedure): Reimplemented.
      	(Set_Is_Partial_Invariant_Procedure): New routine.
      	(Set_Partial_Invariant_Procedure): Reimplemented.
      	(Set_Predicate_Function): Reimplemented.
      	(Set_Predicate_Function_M): Reimplemented.
      	(Set_Subprograms_For_Type): Reimplemented.
      	(Subprograms_For_Type): Reimplemented.
      	(Write_Entity_Flags): Output Flag232 and Flag291.
      	* einfo.ads Add new attributes Has_Inherited_Invariants
      	Has_Own_Invariants Is_Partial_Invariant_Procedure
      	Partial_Invariant_Procedure Change the documentation
      	of attributes Has_Inheritable_Invariants Has_Invariants
      	Invariant_Procedure Is_Invariant_Procedure Subprograms_For_Type
      	(Has_Inherited_Invariants): New routine along with pragma Inline.
      	(Has_Own_Invariants): New routine along with pragma Inline.
      	(Is_Partial_Invariant_Procedure): New routine along with pragma Inline.
      	(Partial_Invariant_Procedure): New routine.
      	(Set_Has_Inherited_Invariants): New routine along with pragma Inline.
      	(Set_Has_Invariants): Removed along with pragma Inline.
      	(Set_Has_Own_Invariants): New routine along with pragma Inline.
      	(Set_Is_Partial_Invariant_Procedure): New routine
      	along with pragma Inline.
      	(Set_Partial_Invariant_Procedure): New routine.
      	(Set_Subprograms_For_Type): Update the signature.
      	(Subprograms_For_Type): Update the signature.
      	* exp_ch3.adb Remove with and use clauses for Sem_Ch13.
      	(Build_Array_Invariant_Proc): Removed.
      	(Build_Record_Invariant_Proc): Removed.
      	(Freeze_Type): Build the body of the invariant procedure.
      	(Insert_Component_Invariant_Checks): Removed.
      	* exp_ch7.adb Add with and use clauses for Sem_Ch6, Sem_Ch13,
      	and Stringt.
      	(Build_Invariant_Procedure_Body): New routine.
      	(Build_Invariant_Procedure_Declaration): New routine.
      	* exp_ch7.ads (Build_Invariant_Procedure_Body): New routine.
      	(Build_Invariant_Procedure_Declaration): New routine.
      	* exp_ch9.adb (Build_Corresponding_Record): Do not propagate
      	attributes related to invariants to the corresponding record
      	when building the corresponding record. This is done by
      	Build_Invariant_Procedure_Declaration.
      	* exp_util.adb (Make_Invariant_Call): Reimplemented.
      	* freeze.adb (Freeze_Array_Type): An array type requires an
      	invariant procedure when its component type has invariants.
      	(Freeze_Record_Type): A record type requires an invariant
      	procedure when at least one of its components has an invariant.
      	* sem_ch3.adb (Analyze_Private_Extension_Declaration): Inherit
      	invariant-related attributes.
      	(Analyze_Subtype_Declaration):
      	Inherit invariant-related attributes.
      	(Build_Derived_Record_Type): Inherit invariant-related attributes.
      	(Check_Duplicate_Aspects): Reimplemented.
      	(Get_Partial_View_Aspect): New routine.
      	(Process_Full_View): Inherit invariant-related attributes. Reimplement
      	the check on hidden inheritance of class-wide invariants.
      	(Remove_Default_Init_Cond_Procedure): Reimplemented.
      	* sem_ch6.adb (Analyze_Subprogram_Specification): Do not modify
      	the controlling type for an invariant procedure declaration
      	or body.
      	(Is_Invariant_Procedure_Or_Body): New routine.
      	* sem_ch7.adb (Analyze_Package_Specification): Build the partial
      	invariant body in order to preanalyze and resolve all invariants
      	of a private type at the end of the visible declarations. Build
      	the full invariant body in order to preanalyze and resolve
      	all invariants of a private type's full view at the end of
      	the private declarations.
      	(Preserve_Full_Attributes): Inherit invariant-related attributes.
      	* sem_ch9.adb (Analyze_Protected_Type_Declaration): Ensure that
      	aspects are analyzed with the proper view when the protected type
      	is a completion of a private type. Inherit invariant-related attributes.
      	(Analyze_Task_Type_Declaration): Ensure that
      	aspects are analyzed with the proper view when the task type
      	is a completion of a private type. Inherit invariant-related
      	attributes.
      	* sem_ch13.adb Remove with and use clauses for Stringt.
      	(Build_Invariant_Procedure_Declaration): Removed.
      	(Build_Invariant_Procedure): Removed.
      	(Freeze_Entity_Checks): Do not build the body of the invariant
      	procedure here.
      	The body is built when the type is frozen in Freeze_Type.
      	(Inherit_Aspects_At_Freeze_Point): Do not inherit any attributes
      	related to invariants here because this leads to erroneous
      	inheritance.
      	(Replace_Node): Rename to Replace_Type_Ref.
      	* sem_ch13.ads (Build_Invariant_Procedure_Declaration): Removed.
      	(Build_Invariant_Procedure): Removed.
      	* sem_prag.adb Add with and use clauses for Exp_Ch7.
      	(Analyze_Pragma): Reimplement the analysis of pragma Invariant.
      	* sem_res.adb (Resolve_Actuals): Emit a specialized error when
      	the context is an invariant.
      	* sem_util.adb (Get_Views): New routine.
      	(Incomplete_Or_Partial_View): Consider generic packages when
      	examining declarations.
      	(Inspect_Decls): Consider full type
      	declarations because they may denote a derivation from a
      	private type.
      	(Propagate_Invariant_Attributes): New routine.
      	* sem_util.ads (Get_Views): New routine.
      	(Propagate_Invariant_Attributes): New routine.
      
      2016-06-16  Arnaud Charlet  <charlet@adacore.com>
      
      	* pprint.adb (Expression_Image): Add better handling of UCs,
      	we don't want to strip them all for clarity.
      
      From-SVN: r237596
      Arnaud Charlet committed
    • The Cortex-A57 scheduler is missing fcsel, so add it. · 1db6c46d
          gcc/
      	* config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
      
      From-SVN: r237595
      Wilco Dijkstra committed