1. 16 Dec, 2017 10 commits
    • Add a gen_int_shift_amount helper function · 7e594332
      This patch adds a helper routine that constructs rtxes
      for constant shift amounts, given the mode of the value
      being shifted.  As well as helping with the SVE patches, this
      is one step towards allowing CONST_INTs to have a real mode.
      
      One long-standing problem has been to decide what the mode
      of a shift count should be for arbitrary rtxes (as opposed to those
      directly tied to a target pattern).  Realistic choices would be
      the mode of the shifted elements, word_mode, QImode, or the same
      mode as the shift optabs (in which case what should the mode
      be when the target doesn't have a pattern?)
      
      For now the patch picks the mode of the shifted elements,
      but with a ??? comment.
      
      2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* emit-rtl.h (gen_int_shift_amount): Declare.
      	* emit-rtl.c (gen_int_shift_amount): New function.
      	* asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
      	instead of GEN_INT.
      	* calls.c (shift_return_value): Likewise.
      	* cse.c (fold_rtx): Likewise.
      	* dse.c (find_shift_sequence): Likewise.
      	* expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
      	(expand_shift, expand_smod_pow2): Likewise.
      	* lower-subreg.c (shift_cost): Likewise.
      	* optabs.c (expand_superword_shift, expand_doubleword_mult)
      	(expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
      	(expand_vec_perm_var): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      	(simplify_binary_operation_1): Likewise.
      	* combine.c (try_combine, find_split_point, force_int_to_mode)
      	(simplify_shift_const_1, simplify_shift_const): Likewise.
      	(change_zero_ext): Likewise.  Use simplify_gen_binary.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255745
      Richard Sandiford committed
    • poly_int: MACRO_MODE · 05210ba6
      This patch uses a MACRO_MODE wrapper for the target macro invocations
      in targhooks.c and address.h, so that macros for non-AArch64 targets
      can continue to treat modes as fixed-size.
      
      It didn't seem worth converting the address macros to hooks since
      (a) they're heavily used, (b) they should be probably be replaced
      with a different interface rather than converted to hooks as-is,
      and most importantly (c) addresses.h already localises the problem.
      
      2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* machmode.h (MACRO_MODE): New macro.
      	* addresses.h (base_reg_class, ok_for_base_p_1): Use it.
      	* targhooks.c (default_libcall_value, default_secondary_reload)
      	(default_memory_move_cost, default_register_move_cost)
      	(default_class_max_nregs): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255744
      Richard Sandiford committed
    • poly_int: IN_TARGET_CODE · 8fcc61f8
      This patch makes each target-specifc TU define an IN_TARGET_CODE macro,
      which is used to decide whether poly_int<1, C> should convert to C.
      
      2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* doc/sourcebuild.texi: Document IN_TARGET_CODE.
      	* genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the
      	target C file.
      	* genautomata.c (main): Likewise.
      	* genconditions.c (write_header): Likewise.
      	* genemit.c (main): Likewise.
      	* genextract.c (print_header): Likewise.
      	* genopinit.c (main): Likewise.
      	* genoutput.c (output_prologue): Likewise.
      	* genpeep.c (main): Likewise.
      	* genpreds.c (write_insn_preds_c): Likewise.
      	* genrecog.c (writer_header): Likewise.
      	* config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define.
      	* config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise.
      	* config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise.
      	* config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise.
      	* config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise.
      	* config/alpha/alpha.c (IN_TARGET_CODE): Likewise.
      	* config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise.
      	* config/arc/arc-c.c (IN_TARGET_CODE): Likewise.
      	* config/arc/arc.c (IN_TARGET_CODE): Likewise.
      	* config/arc/driver-arc.c (IN_TARGET_CODE): Likewise.
      	* config/arm/aarch-common.c (IN_TARGET_CODE): Likewise.
      	* config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise.
      	* config/arm/arm-c.c (IN_TARGET_CODE): Likewise.
      	* config/arm/arm.c (IN_TARGET_CODE): Likewise.
      	* config/arm/driver-arm.c (IN_TARGET_CODE): Likewise.
      	* config/avr/avr-c.c (IN_TARGET_CODE): Likewise.
      	* config/avr/avr-devices.c (IN_TARGET_CODE): Likewise.
      	* config/avr/avr-log.c (IN_TARGET_CODE): Likewise.
      	* config/avr/avr.c (IN_TARGET_CODE): Likewise.
      	* config/avr/driver-avr.c (IN_TARGET_CODE): Likewise.
      	* config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise.
      	* config/bfin/bfin.c (IN_TARGET_CODE): Likewise.
      	* config/c6x/c6x.c (IN_TARGET_CODE): Likewise.
      	* config/cr16/cr16.c (IN_TARGET_CODE): Likewise.
      	* config/cris/cris.c (IN_TARGET_CODE): Likewise.
      	* config/darwin.c (IN_TARGET_CODE): Likewise.
      	* config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise.
      	* config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise.
      	* config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise.
      	* config/fr30/fr30.c (IN_TARGET_CODE): Likewise.
      	* config/frv/frv.c (IN_TARGET_CODE): Likewise.
      	* config/ft32/ft32.c (IN_TARGET_CODE): Likewise.
      	* config/h8300/h8300.c (IN_TARGET_CODE): Likewise.
      	* config/i386/djgpp.c (IN_TARGET_CODE): Likewise.
      	* config/i386/driver-i386.c (IN_TARGET_CODE): Likewise.
      	* config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise.
      	* config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise.
      	* config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise.
      	* config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise.
      	* config/i386/i386-c.c (IN_TARGET_CODE): Likewise.
      	* config/i386/i386.c (IN_TARGET_CODE): Likewise.
      	* config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise.
      	* config/i386/msformat-c.c (IN_TARGET_CODE): Likewise.
      	* config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise.
      	* config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise.
      	* config/i386/winnt.c (IN_TARGET_CODE): Likewise.
      	* config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise.
      	* config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise.
      	* config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise.
      	* config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise.
      	* config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise.
      	* config/ia64/ia64.c (IN_TARGET_CODE): Likewise.
      	* config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise.
      	* config/lm32/lm32.c (IN_TARGET_CODE): Likewise.
      	* config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise.
      	* config/m32c/m32c.c (IN_TARGET_CODE): Likewise.
      	* config/m32r/m32r.c (IN_TARGET_CODE): Likewise.
      	* config/m68k/m68k.c (IN_TARGET_CODE): Likewise.
      	* config/mcore/mcore.c (IN_TARGET_CODE): Likewise.
      	* config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise.
      	* config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise.
      	* config/mips/driver-native.c (IN_TARGET_CODE): Likewise.
      	* config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise.
      	* config/mips/mips.c (IN_TARGET_CODE): Likewise.
      	* config/mmix/mmix.c (IN_TARGET_CODE): Likewise.
      	* config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise.
      	* config/moxie/moxie.c (IN_TARGET_CODE): Likewise.
      	* config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise.
      	* config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise.
      	* config/msp430/msp430.c (IN_TARGET_CODE): Likewise.
      	* config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise.
      	* config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise.
      	* config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise.
      	* config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise.
      	* config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise.
      	* config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise.
      	* config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise.
      	* config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise.
      	* config/nds32/nds32.c (IN_TARGET_CODE): Likewise.
      	* config/nios2/nios2.c (IN_TARGET_CODE): Likewise.
      	* config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise.
      	* config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise.
      	* config/pa/pa.c (IN_TARGET_CODE): Likewise.
      	* config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise.
      	* config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise.
      	* config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise.
      	* config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
      	* config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise.
      	* config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise.
      	* config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise.
      	* config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise.
      	* config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise.
      	* config/riscv/riscv.c (IN_TARGET_CODE): Likewise.
      	* config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise.
      	* config/rl78/rl78.c (IN_TARGET_CODE): Likewise.
      	* config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise.
      	* config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise.
      	* config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
      	* config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise.
      	* config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise.
      	* config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise.
      	* config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise.
      	* config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise.
      	* config/rx/rx.c (IN_TARGET_CODE): Likewise.
      	* config/s390/driver-native.c (IN_TARGET_CODE): Likewise.
      	* config/s390/s390-c.c (IN_TARGET_CODE): Likewise.
      	* config/s390/s390.c (IN_TARGET_CODE): Likewise.
      	* config/sh/sh-c.c (IN_TARGET_CODE): Likewise.
      	* config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise.
      	* config/sh/sh.c (IN_TARGET_CODE): Likewise.
      	* config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise.
      	* config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise.
      	* config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise.
      	* config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise.
      	* config/sparc/sparc.c (IN_TARGET_CODE): Likewise.
      	* config/spu/spu-c.c (IN_TARGET_CODE): Likewise.
      	* config/spu/spu.c (IN_TARGET_CODE): Likewise.
      	* config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise.
      	* config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise.
      	* config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise.
      	* config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise.
      	* config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise.
      	* config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise.
      	* config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise.
      	* config/v850/v850-c.c (IN_TARGET_CODE): Likewise.
      	* config/v850/v850.c (IN_TARGET_CODE): Likewise.
      	* config/vax/vax.c (IN_TARGET_CODE): Likewise.
      	* config/visium/visium.c (IN_TARGET_CODE): Likewise.
      	* config/vms/vms-c.c (IN_TARGET_CODE): Likewise.
      	* config/vms/vms-f.c (IN_TARGET_CODE): Likewise.
      	* config/vms/vms.c (IN_TARGET_CODE): Likewise.
      	* config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255743
      Richard Sandiford committed
    • Minor vn_reference_lookup_3 tweak · 7a667e64
      The repeated checks for MEM_REF made this code hard to convert to
      poly_ints as-is.  Hopefully the new structure also makes it clearer
      at a glance what the two cases are.
      
      2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated
      	checks for MEM_REF.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255742
      Richard Sandiford committed
    • Add VEC_SERIES_EXPR and associated optab · 9adab579
      Similarly to the VEC_DUPLICATE_EXPR, this patch adds a tree code
      equivalent of the VEC_SERIES rtx code: VEC_SERIES_EXPR.
      
      2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* doc/generic.texi (VEC_SERIES_EXPR): Document.
      	* doc/md.texi (vec_series@var{m}): Document.
      	* tree.def (VEC_SERIES_EXPR): New tree code.
      	* tree.h (build_vec_series): Declare.
      	* tree.c (build_vec_series): New function.
      	* cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* gimple-pretty-print.c (dump_binary_rhs): Likewise.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* expr.c (expand_expr_real_2): Likewise.
      	* optabs-tree.c (optab_for_tree_code): Likewise.
      	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
      	* fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants.
      	* expmed.c (make_tree): Handle VEC_SERIES.
      	* optabs.def (vec_series_optab): New optab.
      	* optabs.h (expand_vec_series_expr): Declare.
      	* optabs.c (expand_vec_series_expr): New function.
      	* tree-vect-generic.c (expand_vector_operations_1): Check that
      	the operands also have vector type.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255741
      Richard Sandiford committed
    • Add VEC_DUPLICATE_EXPR and associated optab · be4c1d4a
      SVE needs a way of broadcasting a scalar to a variable-length vector.
      This patch adds VEC_DUPLICATE_EXPR for when CONSTRUCTOR would be used
      for fixed-length vectors; this is the tree equivalent of the existing
      rtl code VEC_DUPLICATE.
      
      The patch also adds a vec_duplicate_optab to go with VEC_DUPLICATE_EXPR.
      
      2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hawyard@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* doc/generic.texi (VEC_DUPLICATE_EXPR): Document.
      	(VEC_COND_EXPR): Add missing @tindex.
      	* doc/md.texi (vec_duplicate@var{m}): Document.
      	* tree.def (VEC_DUPLICATE_EXPR): New tree codes.
      	* tree.c (build_vector_from_val): Add stubbed-out handling of
      	variable-length vectors, using VEC_DUPLICATE_EXPR.
      	(uniform_vector_p): Handle VEC_DUPLICATE_EXPR.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* tree-cfg.c (verify_gimple_assign_unary): Likewise.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* tree-vect-generic.c (ssa_uniform_vector_p): Likewise.
      	* fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant.
      	(test_vec_duplicate_folding): New function.
      	(fold_const_c_tests): Call it.
      	* optabs.def (vec_duplicate_optab): New optab.
      	* optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR.
      	* optabs.h (expand_vector_broadcast): Declare.
      	* optabs.c (expand_vector_broadcast): Make non-static.  Try using
      	vec_duplicate_optab.
      	* expr.c (store_constructor): Try using vec_duplicate_optab for
      	uniform vectors.
      	(expand_expr_real_2): Handle VEC_DUPLICATE_EXPR.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255740
      Richard Sandiford committed
    • re PR target/83358 (division not converted with Intel tuning since r253934) · 02308bd3
      2017-12-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
      
      	PR target/83358
      	* config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase
      	div/mod latencies a bit.
      
              PR target/83358
      	* gcc.target/i386/pr83358-1.c: New test.
      	* gcc.target/i386/pr83358-2.c: New test.
      
      From-SVN: r255739
      Markus Trippelsdorf committed
    • os: pass -s to hostname on AIX · be528ae9
          
          Reviewed-on: https://go-review.googlesource.com/79375
      
      From-SVN: r255738
      Ian Lance Taylor committed
    • syscall: emulate Flock on AIX · fe6272cc
          
          Reviewed-on: https://go-review.googlesource.com/79095
      
      From-SVN: r255737
      Ian Lance Taylor committed
    • Daily bump. · dead5b99
      From-SVN: r255734
      GCC Administrator committed
  2. 15 Dec, 2017 30 commits
    • re PR middle-end/36550 (Wrong "may be used uninitialized" warning (conditional PHIs)) · b021b385
      	PR tree-optimization/36550
      	* tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New.
      	(mark_threaded_blocks): Rewrite code to avoid block copying when
      	optimizing for size.  Don't pessimize blocks which will be
      	copied, but all the statements will be dead.
      
      	PR tree-optimization/36550
      	* gcc.dg/tree-ssa/pr36550.c: New test.
      
      From-SVN: r255731
      Jeff Law committed
    • re PR tree-optimization/81165 (Regression in GCC-8.0.0's optimizer) · 5806e062
      	PR tree-optimization/81165
      	* tree-ssa-threadupdate.c (uses_in_bb): New.
      	(estimate_threading_killed_stmts): New.
      	* tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
      	* tree-ssa-threadedge.c
      	(record_temporary_equivalences_from_stmts_at_dest): Expand limit
      	when its hit.
      
      	PR tree-optimization/81165
      	* gcc.dg/pr81165.c: New.
      
      From-SVN: r255724
      Jeff Law committed
    • re PR c++/83205 (ICE on structured binding with ill-formed negative std::tuple_size<T>::value) · 38f4bea8
      	PR c++/83205
      	* decl.c (cp_finish_decomp): Handle the case when tsize is not
      	error_mark_node, but doesn't fit into uhwi.  Split up count != eltscnt
      	and !tree_fits_uhwi_p (tsize) error_at calls into error_n and inform_n
      	to handle plural forms properly.
      
      	* g++.dg/cpp1z/decomp3.C: Adjust for structured binding count
      	mismatch diagnostics split into error and warning with plural
      	forms.
      	* g++.dg/cpp1z/decomp10.C: Likewise.
      	* g++.dg/cpp1z/decomp32.C: New test.
      
      From-SVN: r255706
      Jakub Jelinek committed
    • re PR c++/81197 (ICE with structured binding and lifetime-extended temporaries) · 70356f77
      	PR c++/81197
      	* cp-tree.h (cp_maybe_mangle_decomp): Declare.
      	* decl.c (cp_maybe_mangle_decomp): New function.
      	(cp_finish_decomp): Don't SET_DECL_ASSEMBLER_NAME here.
      	* parser.c (cp_convert_range_for,
      	cp_parser_decomposition_declaration): Call cp_maybe_mangle_decomp.
      	* pt.c (tsubst_expr): Likewise.
      	* mangle.c (find_decomp_unqualified_name): New function.
      	(write_unqualified_name): Handle DECL_DECOMPOSITION_P
      	where DECL_ASSEMBLER_NAME is already set.
      
      	* g++.dg/cpp1z/decomp34.C: New test.
      
      From-SVN: r255705
      Jakub Jelinek committed
    • re PR c++/80135 (ICE in output_constructor_regular_field, at varasm.c:4968) · a8c55cac
      	PR c++/80135
      	PR c++/81922
      	* typeck2.c (digest_init_r): Change nested argument type from bool to
      	int.  Use code instead of TREE_CODE (type) where possible.  If
      	nested == 2, diagnose initialization of flexible array member with
      	STRING_CST.  Pass nested to process_init_constructor.  Formatting fix.
      	(digest_init, digest_init_flags): Adjust digest_init_r caller.
      	(massage_init_elt): Add nested argument.  Pass 2 instead of 1 to
      	digest_init_r's nested argument if nested is non-zero.
      	(process_init_constructor_array): Add nested argument.  If nested == 2,
      	diagnose initialization of flexible array member with non-empty
      	braced enclosed list.  Pass nested to massage_init_elt.
      	(process_init_constructor_record, process_init_constructor_union): Add
      	nested argument, pass it to massage_init_elt.
      	(process_init_constructor): Add nested argument, pass it to
      	process_init_constructor_{array,record,union}.
      	* init.c (find_field_init): Renamed to ...
      	(find_flexarray_init): ... this.  Return NULL_TREE if init is
      	error_mark_node.  Don't look through nested CONSTRUCTORs.
      	(warn_placement_new_too_small): Adjust caller.
      
      	* g++.dg/warn/Wplacement-new-size-1.C (fBx1): Initialize nested
      	flexible array member only with {}.  Add dg-warning.
      	(fBx2, fBx3): Remove.
      	* g++.dg/warn/Wplacement-new-size-2.C (fBx1): Initialize nested
      	flexible array member only with {}.  Add dg-warning.
      	(fBx2, fBx3): Remove.
      	* g++.dg/warn/Wplacement-new-size-6.C: New test.
      	* g++.dg/ext/flexary13.C (main): Remove test for initialization
      	of nested flexible array member with non-empty initializer.
      	* g++.dg/ext/flexary25.C: New test.
      	* g++.dg/ext/flexary26.C: New test.
      	* g++.dg/ext/flexary27.C: New test.
      	* g++.dg/parse/pr43765.C: Expect diagnostics about initialization
      	of nested flexible array member with non-empty initializer.  Expect
      	C++2A diagnostics about mixing of designated and non-designated
      	initializers.
      
      From-SVN: r255703
      Jakub Jelinek committed
    • re PR c++/83217 (Compiler segfault: structured binding by reference to a… · e3a661b4
      re PR c++/83217 (Compiler segfault: structured binding by reference to a templated type via a pointer)
      
      	PR c++/83217
      	* decl.c (cp_finish_decomp): If decl's type is REFERENCE_TYPE,
      	call complete_type (TREE_TYPE (type)).
      
      	* g++.dg/cpp1z/decomp33.C: New test.
      
      From-SVN: r255702
      Jakub Jelinek committed
    • re PR tree-optimization/80631 (Compiling with -O3 -mavx2 gives wrong code) · 32151c3f
      	PR tree-optimization/80631
      	* gcc.target/i386/avx2-pr80631.c: New test.
      
      From-SVN: r255701
      Jakub Jelinek committed
    • re PR tree-optimization/83410 (libgomp.graphite/force-parallel-4.c etc. FAIL) · 8f80d734
      	PR tree-optimization/83410
      	* tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump
      	threads when parallelizing loops.
      
      From-SVN: r255700
      Jeff Law committed
    • tree-core.h (struct attribute_spec): Swap affects_type_identity and handler fields. · 4849deb1
      	* tree-core.h (struct attribute_spec): Swap affects_type_identity and
      	handler fields.
      	* config/alpha/alpha.c (vms_attribute_table): Swap
      	affects_type_identity and handler fields, adjust comments.
      	* config/mips/mips.c (mips_attribute_table): Likewise.
      	* config/visium/visium.c (visium_attribute_table): Likewise.
      	* config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
      	* config/microblaze/microblaze.c (microblaze_attribute_table):
      	Likewise.
      	* config/spu/spu.c (spu_attribute_table): Likewise.
      	* config/mcore/mcore.c (mcore_attribute_table): Likewise.
      	* config/arc/arc.c (arc_attribute_table): Likewise.
      	* config/m68k/m68k.c (m68k_attribute_table): Likewise.
      	* config/v850/v850.c (v850_handle_interrupt_attribute,
      	v850_handle_data_area_attribute): Formatting fixes.
      	(v850_attribute_table): Swap affects_type_identity and handler
      	fields, adjust comments.
      	* config/m32r/m32r.c (m32r_attribute_table): Likewise.
      	* config/arm/arm.c (arm_attribute_table): Likewise.
      	* config/avr/avr.c (avr_attribute_table): Likewise.
      	* config/s390/s390.c (s390_attribute_table): Likewise.
      	* config/sh/sh.c (sh_attribute_table): Likewise.
      	* config/i386/i386.c (ix86_handle_cconv_attribute,
      	ix86_handle_callee_pop_aggregate_return): Formatting fixes.
      	(ix86_attribute_table): Swap affects_type_identity and handler
      	fields, adjust comments.
      	* config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
      	* config/sparc/sparc.c (sparc_attribute_table): Likewise.
      	* config/m32c/m32c.c (m32c_attribute_table): Likewise.
      	* config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
      	* config/ia64/ia64.c (ia64_attribute_table): Likewise.
      	* config/msp430/msp430.c (msp430_attribute_table): Likewise.
      	* config/rx/rx.c (rx_attribute_table): Likewise.
      	* config/cr16/cr16.c (cr16_attribute_table): Likewise.
      	* config/h8300/h8300.c (h8300_attribute_table): Likewise.
      	* config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
      	* config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
      	* config/bfin/bfin.c (bfin_attribute_table): Likewise.
      	* config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
      	* config/rl78/rl78.c (rl78_attribute_table): Likewise.
      	* config/nds32/nds32.c (nds32_attribute_table): Likewise.
      	* doc/plugins.texi (user_attr): Likewise.  Add NULL for
      	exclude.
      	* attribs.c (empty_attribute_table): Swap affects_type_identity and
      	handler fields.
      	(register_scoped_attributes, decl_attributes): Formatting fixes.
      ada/
      	* gcc-interface/utils.c (gnat_internal_attribute_table): Swap
      	affects_type_identity and handler fields, adjust comments.
      brig/
      	* brig-lang.c (brig_attribute_table): Swap affects_type_identity
      	and handler fields, adjust comments.
      c-family/
      	* c-attribs.c (c_common_attribute_table,
      	c_common_format_attribute_table): Swap affects_type_identity
      	and handler fields, adjust comments.
      cp/
      	* tree.c (cxx_attribute_table, std_attribute_table): Swap
      	affects_type_identity and handler fields, adjust comments.
      fortran/
      	* f95-lang.c (gfc_attribute_table): Swap affects_type_identity
      	and handler fields, adjust comments.
      lto/
      	* lto-lang.c (lto_attribute_table, lto_format_attribute_table): Swap
      	affects_type_identity and handler fields, adjust comments.
      testsuite/
      	* g++.dg/plugin/attribute_plugin.c (user_attr): Swap
      	affects_type_identity and handler fields, add NULL for exclude.
      
      From-SVN: r255699
      Jakub Jelinek committed
    • [PR C++/59930] template friend classes & default args · 0cf4820d
      https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01055.html
      	PR c++/59930
      	* decl.c (xref_tag_1): Correct comments about template friends and
      	default args.
      	* friend.c (make_friend_class): Move comments concerning
      	self-friendliness to code dealing with such.
      	* pt.c (check_default_tmpl_args): Deal with template friend
      	classes too.
      	(push_template_decl_real): Check default args for non-function
      	template friends.
      
      	PR c++/59930
      	* g++.dg/cpp0x/temp_default4.C: Adjust diagnostic.
      	* g++.old-deja/g++.pt/friend23.C: Likewise.
      	* g++.old-deja/g++.pt/friend24.C: Delete.
      
      From-SVN: r255698
      Nathan Sidwell committed
    • re PR tree-optimization/83269 (Wrong constant folding) · e7425c18
      	PR tree-optimization/83269
      	* fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
      	subtraction in arg0's type if type is signed and arg0 is unsigned.
      	Formatting fix.
      
      	* gcc.c-torture/execute/pr83269.c: New test.
      
      From-SVN: r255697
      Jakub Jelinek committed
    • re PR sanitizer/81281 (UBSAN: false positive, dropped promotion to long type.) · a72610d4
      	PR sanitizer/81281
      	* match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
      	convert? on @0 instead of convert.  Check type of @1, not @0.
      	((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
      	convert? on @0 instead of convert.  Check type of @1, not @0.
      	((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
      	only optimize if either both @1 and @2 types are narrower
      	precision, or both are wider or equal precision, and in the former
      	case only if both have undefined overflow.
      
      	* gcc.dg/pr81281-3.c: New test.
      
      From-SVN: r255696
      Jakub Jelinek committed
    • exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use Component_Size of the… · 5b85ad7d
      exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use Component_Size of the innermost array instead of Esize of its component...
      
      gcc/ada/
      
      2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use Component_Size of
      	the innermost array instead of Esize of its component type to exclude
      	inappropriate array types, including packed array types.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Input_Item): Allow concurrent types to appear
      	within the input list of Initializes. Remove the uses of Input_OK.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch4.adb (Expand_N_In): Do not replace a membership test on a
      	scalar type with a validity test when the membership appears in a
      	predicate expression, to prevent a spurious error when predicate is
      	specified static.
      	* sem_ch13.adb (Build_Predicate_Functions): Add warning if a static
      	predicate, after constant-folding, reduces to True and is this
      	redundant.
      	* par-ch4.adb: Typo fixes and minor reformattings.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb (Ensure_Prior_Elaboration_Static): Mark the generated
      	with clause as being implicit for an instantiation in order to
      	circumvent an issue with 'W' and 'Z' line encodings in ALI files.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Is_Potentially_Unevaluated): Detect further cases of
      	misuse of 'Old that appear within an expression that is potentially
      	unevaluated, when the prefix of the attribute does not statically
      	designate an object (e.g. a function call).
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Conformking_Types): Two incomplete types are conforming
      	when one of them is used as a generic actual, but only within an
      	instantiation.
      	* einfo.ads: Clarify use of flag Used_As_Generic_Actual.
      
      2017-12-15  Justin Squirek  <squirek@adacore.com>
      
      	* sem_attr.adb (Resolve_Attribute): Modify check for aliased view on
      	prefix to use the prefix's original node to avoid looking at expanded
      	conversions for certain array types.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Membership_Op): Add warning on a membership
      	operation on a scalar type for which there is a user-defined equality
      	operator.
      
      2017-12-15  Yannick Moy  <moy@adacore.com>
      
      	* doc/gnat_rm/implementation_defined_pragmas.rst: Add Ghost assertion
      	policy.
      
      gcc/testsuite/
      
      2017-12-15  Justin Squirek  <squirek@adacore.com>
      
      	* gnat.dg/aliasing4.adb: New testcase.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* gnat.dg/incomplete6.adb, gnat.dg/incomplete6.ads: New testcase.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* gnat.dg/initializes.ads, gnat.dg/initializes.adb: New testcase.
      
      2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* gnat.dg/component_size.adb: New testcase.
      
      From-SVN: r255695
      Pierre-Marie de Rodat committed
    • re PR sanitizer/83388 (reference statement index not found error with -fsanitize=null) · 87a5e0e8
      2017-12-15  Richard Biener  <rguenther@suse.de>
      
      	PR lto/83388
      	* internal-fn.def (IFN_NOP): Add.
      	* internal-fn.c (expand_NOP): Do nothing.
      	* lto-streamer-in.c (input_function): Instead of removing
      	sanitizer calls replace them with IFN_NOP calls.
      
      	* gcc.dg/lto/pr83388_0.c: New testcase.
      
      From-SVN: r255694
      Richard Biener committed
    • [multiple changes] · fc47ef60
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Initialization_Item): Remove the specialized
      	processing for a null initialization item. Such an item is always
      	illegal.
      
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* types.ads, types.h, libgnat/a-except.adb, exp_ch11.adb
      	(PE_Build_In_Place_Mismatch): New reason code for raising when the
      	BIPalloc formal parameter is incorrect. This can happen if a compiler
      	bug causes a mismatch of build-in-place between caller and callee.
      	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Use
      	PE_Build_In_Place_Mismatch.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch4.ads, exp_ch4.adb (Expand_N_Reduction_Expression): New
      	procedure.
      	* exp_util.adb (Insert_Actions): Handle N_Reduction_Expression.
      	* expander.adb (Expand): Call Expand_N_Reduction_Expression
      	* par-ch4.adb (P_Reduction_Expression): New procedure.
      	(P_Iterated_Component_Assoc_Or_Reduction): New precedure, extension of
      	P_Iterated_Component_Association.
      	(OK_Reduction_Expression_Parameter): New procedure.
      	(P_Aggregate_Or_Paren_Expr): Improve error message for malformed delta
      	aggregate.
      	* sem.adb (Analyze): Call Analyze_Reduction_Expression and
      	Analyze_Reduction_Expression_Parameter
      	* sinfo.ads, sinfo.adb: New node kinds N_Reduction_Expression and
      	N_Reduction_Expression_Parameter.
      	* sem_ch4.ads, sem_ch4.adb (Analyze_Reduction_Expression,
      	Analyze_Reduction_Expression_Parameter): New procedures.
      	* sem_res.adb (Resolve): Handle Reduction_Expression and
      	Reduction_Expression_Parameter
      	* sem_spark.adb: Dummy entries for Reduction_Expression and
      	Reduction_Expression_Parameter
      	* sprint.adb (Sprint_Node_Actual): Print Reduction_Expression,
      	Reduction_Expression_Parameter
      
      From-SVN: r255693
      Pierre-Marie de Rodat committed
    • Make dse.c use offset/width instead of start/end · 71d6a386
      store_info and read_info_type in dse.c represented the ranges as
      start/end, but a lot of the internal code used offset/width instead.
      Using offset/width throughout fits better with the poly_int.h
      range-checking functions.
      
      2017-12-15  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* dse.c (store_info, read_info_type): Replace begin and end with
      	offset and width.
      	(print_range): New function.
      	(set_all_positions_unneeded, any_positions_needed_p)
      	(check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
      	accordingly.
      	(record_store): Likewise.  Optimize the case in which all positions
      	are unneeded.
      	(get_stored_val): Replace read_begin and read_end with read_offset
      	and read_width.
      	(replace_read): Update call accordingly.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255692
      Richard Sandiford committed
    • gimple-loop-interchange.cc (STMT_COST_RATIO): New macro. · 1eeeda47
      	* gimple-loop-interchange.cc (STMT_COST_RATIO): New macro.
      	(loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members.
      	(loop_cand::loop_cand): Initialize above members.
      	(loop_cand::supported_operations): Delete.
      	(loop_cand::can_interchange_p): Inline above function.
      	(loop_cand::classify_simple_reduction): Record number of constant
      	initialized simple reductions.
      	(should_interchange_loops): New parameters.  Check stmt cost of loops
      	to be interchange.
      	(tree_loop_interchange::interchange): Prepare stmt cost of outer loop.
      	Update call to should_interchange_loops.
      	(should_interchange_loop_nest): Update call to
      	should_interchange_loops.
      
      From-SVN: r255691
      Bin Cheng committed
    • einfo.ads: Comment fix. · 76fc4a85
      gcc/ada/
      
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* einfo.ads: Comment fix.
      
      2017-12-15  Piotr Trojanek  <trojanek@adacore.com>
      
      	* s-vercon.adb: Minor style fixes.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Freeze_Expr_Types): Do not emit a freeze node for an
      	itype that is the type of a discriminant-dependent component.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Part_Of): The context-specific portion of the
      	analysis is now directed to several specialized routines.
      	(Check_Part_Of_Abstract_State): New routine.
      	(Check_Part_Of_Concurrent_Type): New routine. Reimplement the checks
      	involving the item, the single concurrent type, and their respective
      	contexts.
      	* sem_res.adb (Resolve_Entity_Name): Potential constituents of a single
      	concurrent type are now recorded regardless of the SPARK mode.
      	* sem_util.adb (Check_Part_Of_Reference): Split some of the tests in
      	individual predicates.  A Part_Of reference is legal when it appears
      	within the statement list of the object's immediately enclosing
      	package.
      	(Is_Enclosing_Package_Body): New routine.
      	(Is_Internal_Declaration_Or_Body): New routine.
      	(Is_Single_Declaration_Or_Body): New routine.
      	(Is_Single_Task_Pragma): New routine.
      
      gcc/testsuite/
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* gnat.dg/expr_func2.ads, gnat.dg/expr_func2.adb: New testcase.
      
      From-SVN: r255690
      Pierre-Marie de Rodat committed
    • re PR target/66488 (segfault on sizeof(long) < sizeof(void*) and large GCC memory usage) · f5b39f90
      2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
      
              PR target/66488
              * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
              * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
              * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
      
      From-SVN: r255687
      Eric Botcazou committed
    • [multiple changes] · 25ea3659
      2017-12-15  Patrick Bernardi  <bernardi@adacore.com>
      
      	* gnat_ugn.texi: Regenerate.
      
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* gnatvsn.ads: Minor comment fixes.
      
      From-SVN: r255686
      Pierre-Marie de Rodat committed
    • gnat_and_program_execution.rst: Update section "Dynamic Stack Usage Analysis" to… · b3801819
      gnat_and_program_execution.rst: Update section "Dynamic Stack Usage Analysis" to include more details about...
      
      gcc/ada/
      
      2017-12-15  Patrick Bernardi  <bernardi@adacore.com>
      
      	* doc/gnat_ugn/gnat_and_program_execution.rst: Update section "Dynamic
      	Stack Usage Analysis" to include more details about GNAT_STACK_LIMIT.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb (Add_Own_DIC): Ensure that the expression of the pragma
      	is available (Is_Verifiable_DIC_Pragma): Moved from Sem_Util.
      	* sem_util.adb (Has_Full_Default_Initialization):
      	Has_Fully_Default_Initializing_DIC_Pragma is now used to determine
      	whether a type has full default initialization due to pragma
      	Default_Initial_Condition.
      	(Has_Fully_Default_Initializing_DIC_Pragma): New routine.
      	(Is_Verifiable_DIC_Pragma): Moved to Exp_Util.
      	* sem_util.ads (Has_Fully_Default_Initializing_DIC_Pragma): New
      	routine.
      	(Is_Verifiable_DIC_Pragma): Moved to Exp_Util.
      	* sem_warn.adb (Is_OK_Fully_Initialized):
      	Has_Fully_Default_Initializing_DIC_Pragma is now used to determine
      	whether a type has full default initialization due to pragma
      	Default_Initial_Condition.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Match_Constituent): Do not quietly accept constants as
      	suitable constituents.
      	* exp_util.adb: Minor reformatting.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (In_Place_Assign_OK): Extend the predicate to recognize
      	an array aggregate in an allocator, when the designated type is
      	unconstrained and the upper bound of the aggregate belongs to the base
      	type of the index.
      
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Extended_Return_Statement,
      	Expand_Simple_Function_Return): Assert that the b-i-p-ness of the
      	caller and callee match.  Otherwise, we would need some substantial
      	changes to allow b-i-p calls non-b-i-p, and vice versa.
      
      gcc/testsuite/
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* gnat.dg/dflt_init_cond.adb, gnat.dg/dflt_init_cond_pkg.ads: New
      	testcase.
      
      From-SVN: r255685
      Pierre-Marie de Rodat committed
    • exp_unst.adb (Unnest_Subprograms): Nothing to do if the main unit is a generic package body. · c581c520
      gcc/ada/
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_unst.adb (Unnest_Subprograms): Nothing to do if the main unit is
      	a generic package body. Unnesting is only an issue when generating
      	code, and if the main unit is generic then nested instance bodies have
      	not been created and analyzed, and unnesting will crash in the absence
      	of those bodies,
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* inline.adb (Add_Inlined_Body): Do not add a function which is
      	completed by an expression function defined in the same context as the
      	initial declaration because the completing body is not in a package
      	body.
      	(Is_Non_Loading_Expression_Function): New routine.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* debug.adb: Move the functionality of -gnatdL to -gnatd_i. Restore
      	the behavior of -gnatdL from before revision 255412.
      	* sem_elab.adb: Update the section of compiler switches.
      	(Build_Call_Marker): Do not create a marker for a call which originates
      	from an expanded spec or body of an instantiated gener, does not invoke
      	a generic formal subprogram, the target is external to the instance,
      	and -gnatdL is in effect.
      	(In_External_Context): New routine.
      	(Process_Conditional_ABE_Activation_Impl): Update the uses of -gnatdL
      	and associated flag.
      	(Process_Conditional_ABE_Call): Update the uses of -gnatdL and
      	associated flag.
      	* switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch
      	-gnatd_i.
      	* exp_unst.adb: Minor typo fixes and edits.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Possible_Freeze): Do not set Delayed_Freeze on an
      	subprogram instantiation, now that the enclosing wrapper package
      	carries an explicit freeze node. THis prevents freeze nodes for the
      	subprogram for appearing in the wrong scope. This is relevant when the
      	generic subprogram has a private or incomplete formal type and the
      	instance appears within a package that declares the actual type for the
      	instantiation, and that type has itself a delayed freeze.
      
      2017-12-15  Patrick Bernardi  <bernardi@adacore.com>
      
      	* doc/gnat_ugn/gnat_and_program_execution.rst: Removed references to
      	the environment variable GNAT_STACK_LIMIT from the Stack Overflow
      	Checking section as it is no longer used by any of our supported
      	targets.
      
      gcc/testsuite/
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* gnat.dg/expr_func_main.adb, gnat.dg/expr_func_pkg.ads,
      	gnat.dg/expr_func_pkg.adb: New testcase.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* gnat.dg/abe_pkg.adb, gnat.dg/abe_pkg.ads: New testcase.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* gnat.dg/subp_inst.adb, gnat.dg/subp_inst_pkg.adb,
      	gnat.dg/subp_inst_pkg.ads: New testcase.
      
      From-SVN: r255683
      Pierre-Marie de Rodat committed
    • [multiple changes] · 56af8688
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Extended_Return_Statement): If the
      	Init_Assignment is rewritten, we need to set Assignment_OK on the new
      	node.  Otherwise, we will get spurious errors when initializing via
      	assignment statement.
      
      2017-12-15  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_unst.adb (Visit_Node): Refine handling of 'Access to ignore non
      	relevant nodes.
      	(Has_Non_Null_Statements): Moved to sem_util for later reuse.
      
      2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_attr.adb (Is_Inline_Floating_Point_Attribute): Fix comment.
      	* libgnat/s-fatgen.adb (Model): Use Machine attribute.
      	(Truncation): Likewise.
      
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* exp_ch7.adb (Expand_Cleanup_Actions): Make sure the block and handled
      	statement sequence generated for certain extended return statements
      	have a Sloc that is not No_Location. Otherwise, the back end doesn't
      	set any location and ends up reading uninitialized variables.
      
      From-SVN: r255680
      Pierre-Marie de Rodat committed
    • types.ads, [...]: Partly revert r255414, committed by mistake. · e83a74b0
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* types.ads, exp_ch6.adb, libgnat/s-regexp.ads, opt.ads: Partly revert
      	r255414, committed by mistake.
      
      From-SVN: r255679
      Bob Duff committed
    • Enable VAES support [5/5] · 549fa584
      gcc/
      	* config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
      	__builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): New.
      	* config/i386/sse.md (vaesenclast_<mode>): New pattern.
      	* config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
      	_mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512f-aesenclast-2.c: New test.
      	* gcc.target/i386/avx512vl-aesenclast-2.c: Ditto.
      	* gcc.target/i386/avx512fvl-vaes-1.c: Handle new intrinsics.
      
      From-SVN: r255676
      Julia Koval committed
    • Enable VAES support [4/5] · 5a5d1797
      gcc/
      	* config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
      	__builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
      	* config/i386/sse.md (vaesenc_<mode>): New pattern.
      	* config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
      	_mm_aesenc_epi128): New intrinsics.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512f-aesenc-2.c: New test.
      	* gcc.target/i386/avx512vl-aesenc-2.c: Ditto.
      	* gcc.target/i386/avx512fvl-vaes-1.c: Handle new intrinsics.
      
      From-SVN: r255675
      Julia Koval committed
    • Enable VAES support [3/5] · 0ccdce5f
      gcc/
      	* config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
      	__builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): New.
      	* config/i386/sse.md (vaesdeclast_<mode>): New pattern.
      	* config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
      	_mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512f-aesdeclast-2.c: New test.
      	* gcc.target/i386/avx512vl-aesdeclast-2.c
      	* gcc.target/i386/avx512fvl-vaes-1.c: Handle new intrinsics.
      
      From-SVN: r255674
      Julia Koval committed
    • Fix ChangeLog entry date · 99197a84
      From-SVN: r255673
      Peter Bergner committed
    • Daily bump. · 949737fc
      From-SVN: r255670
      GCC Administrator committed