156835 Commits

Author SHA1 Message Date
Paolo Carlini
54a3b395e0 re PR c++/82570 (Lambda fails to compile because it doesn't meet constexpr requirements)
2017-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82570
	* g++.dg/cpp1z/constexpr-lambda18.C: New.

From-SVN: r253806
2017-10-17 08:38:07 +00:00
Jakub Jelinek
49dcd8a45a re PR tree-optimization/82549 (ICE at -O1 and above: verify_gimple failed)
PR tree-optimization/82549
	* fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
	Formatting fixes.  Instead of calling make_bit_field_ref with negative
	bitpos return 0.

	* gcc.c-torture/compile/pr82549.c: New test.

From-SVN: r253805
2017-10-17 09:38:32 +02:00
Martin Liska
7a76132c80 Improve FAIL message for dump-*-times functions.
2017-10-17  Martin Liska  <mliska@suse.cz>

	* lib/scanasm.exp: Print how many times a regex pattern is
	found.
	* lib/scandump.exp: Likewise.

From-SVN: r253804
2017-10-17 07:31:30 +00:00
Olga Makhotina
af29724964 Add missing REDUCE[SD,SS] intrinsics
gcc/
	* config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
	_mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
	_mm_maskz_reduce_ss): New.
	* config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
	__builtin_ia32_reducess_mask): Ditto..
	(__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
	* config/i386/sse.md (reduces<mode>): Renamed to ...
	(reduces<mode><mask_scalar_name>): ... this.
	(vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): Changed
	to ...
	(vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
	%0<mask_scalar_operand4>, %1, %2, %3}): ... this.

gcc/testsuite/
	* gcc.target/i386/avx512dq-vreducesd-1.c (_mm_mask_reduce_sd,
	_mm_maskz_reduce_sd): Test new intrinsics.
	* gcc.target/i386/avx512dq-vreducesd-2.c: New.
	* gcc.target/i386/avx512dq-vreducess-1.c (_mm_mask_reduce_ss,
	_mm_maskz_reduce_ss): Test new intrinsics.
	* gcc.target/i386/avx512dq-vreducess-2.c: New.
	* gcc.target/i386/avx-1.c (__builtin_ia32_reducesd,
	__builtin_ia32_reducess): Remove builtin.
	(__builtin_ia32_reducesd_mask,
	__builtin_ia32_reducess_mask): Test new builtin.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r253803
2017-10-17 07:12:45 +00:00
GCC Administrator
e7f168a7ff Daily bump.
From-SVN: r253801
2017-10-17 00:16:15 +00:00
Igor Tsimbalist
fb336a7be4 MAINTAINERS (write after approval): Add myself.
ChangeLog:

2017-10-16  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>

        * MAINTAINERS (write after approval): Add myself.

Index: MAINTAINERS
===================================================================
--- MAINTAINERS (revision 253797)
+++ MAINTAINERS (working copy)
@@ -603,6 +603,7 @@
 Philipp Tomsich                                        <philipp.tomsich@theobroma-systems.com>
 Konrad Trifunovic                              <konrad.trifunovic@inria.fr>
 Markus Trippelsdorf                            <markus@trippelsdorf.de>
+Igor Tsimbalist                                        <igor.v.tsimbalist@intel.com>
 Martin Uecker                                  <uecker@eecs.berkeley.edu>
 David Ung                                      <davidu@mips.com>
 Neil Vachharajani                              <nvachhar@gmail.com>

From-SVN: r253798
2017-10-16 23:36:39 +02:00
David Malcolm
46d2b77d71 Add gnu::unique_ptr
This is a version of the patch posted by Trevor Saunders on 2017-07-31,
for which he wrote:
> For most of the history of this see
>   https://sourceware.org/ml/gdb-patches/2016-10/msg00223.html
> The changes are mostly s/gdb/gtl/g

This version was updated by me (dmalcolm) adding these changes:
- renaming of "gtl" to "gnu" (3 letters, and one of the ones Richi
  proposed, and not a match for "*tl")
- renaming of DEFINE_GDB_UNIQUE_PTR to DEFINE_GNU_UNIQUE_PTR
- renaming of xfree_deleter to xmalloc_deleter, and making it
  use "free" rather than "xfree" (which doesn't exist)
- added a gcc/unique-ptr-tests.cc
- implement unique_xmalloc_ptr<T[]> (taken from gdb, but changing
  "xfree" to "free", and adding support for pre-C++-11)

gcc/ChangeLog:

	David Malcolm <dmalcolm@redhat.com>

	* Makefile.in (OBJS): Add unique-ptr-tests.o.
	* selftest-run-tests.c (selftest::run_tests): Call
	selftest::unique_ptr_tests_cc_tests.
	* selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
	* unique-ptr-tests.cc: New file.

include/ChangeLog:

	Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
	David Malcolm <dmalcolm@redhat.com>

	* unique-ptr.h: New file.

From-SVN: r253797
2017-10-16 20:50:40 +00:00
Vladimir Makarov
2de3d3c6a6 re PR sanitizer/82353 (runtime ubsan crash)
2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR sanitizer/82353
	* lra.c (collect_non_operand_hard_regs): Don't ignore operator
	locations.
	* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
	(make_hard_regno_born, make_hard_regno_dead): Update
	bb_killed_pseudos and bb_gen_pseudos for fixed regs.

From-SVN: r253796
2017-10-16 20:34:53 +00:00
Martin Liska
55015c109a Fix attrib-5.c test-case.
2017-10-16  Martin Liska  <mliska@suse.cz>

	* c-c++-common/ubsan/attrib-5.c (float_cast2): Fix warning scan
	so that it will work for both C and C++ FEs.

From-SVN: r253795
2017-10-16 19:45:02 +00:00
Jeff Law
a279ae9354 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
From-SVN: r253792
2017-10-16 11:56:06 -06:00
Fritz Reese
9b460e2e50 re PR fortran/82511 (ICE Bad IO basetype (12) on attempted read or write of entire DEC structure)
2017-10-16  Fritz Reese <fritzoreese@gmail.com>

    PR fortran/82511
    Treat UNION components as DT comp. in I/O lists.

    gcc/fortran/ChangeLog:

	PR fortran/82511
	* trans-io.c (transfer_expr): Treat BT_UNION as BT_DERIVED.

    gcc/testsuite/ChangeLog:

	PR fortran/82511
	* gfortran.dg/dec_structure_22.f90: New testcase.

From-SVN: r253791
2017-10-16 17:40:53 +00:00
Jan Hubicka
01118373fe * x86-tune-costs.h (znver1_cost): Fix move cost tables.
From-SVN: r253790
2017-10-16 17:39:01 +00:00
Olivier Hainque
3094082db0 config.gcc (powerpc*-*-*spe*): Pick 8548 as the default with_cpu if we were configured for an e500v2 target...
2017-10-16  Olivier Hainque  <hainque@adacore.com>

	* gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
	with_cpu if we were configured for an e500v2 target cpu name.

From-SVN: r253789
2017-10-16 16:50:57 +00:00
Paolo Carlini
39920b043d re PR c++/64931 (ICE on function with deduced return type and input is instantiated template class)
2017-10-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/64931
	* g++.dg/cpp1y/auto-fn43.C: New.

From-SVN: r253788
2017-10-16 14:21:17 +00:00
Thomas Preud'homme
525f700d24 [ARM] Allow +nodsp for -mcpu=cortex-m33
DSP instructions are optional for Arm Cortex-M33, yet its -mcpu option
does not allow +nodsp. Users are thus left with using
-march=armv8-m.main -mtune=cortex-m33. This patch allows +nodsp to
-mcpu=cortex-m33.

2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
    * doc/invoke.texi: Document +nodsp as a valid extension for
    -mcpu=cortex-m33.

From-SVN: r253787
2017-10-16 13:55:00 +00:00
Wilco Dijkstra
a310363e90 re PR target/82442 (vect/pr31699.c fails on arm)
Fix PR82442

Recently the gcc.dg/vect/pr31699.c was modified to check for
vect_float effective target instead for vect_double.  As a 
result it now fails on armhf.  Fix by avoiding double.
Tested on armhf, aarch64 and x64.

    gcc/testsuite/
	PR target/82442
	* gcc.dg/vect/pr31699.c: Fix testcase.

From-SVN: r253786
2017-10-16 13:26:20 +00:00
Martin Liska
a0df14998e Add selftests for bitmap_set_range.
2017-10-16  Martin Liska  <mliska@suse.cz>

	* sbitmap.c (bitmap_bit_in_range_p_checking): New function.
	(test_set_range): Likewise.
	(test_range_functions): Rename to ...
	(test_bit_in_range): ... this.
	(sbitmap_c_tests): Add new test.

From-SVN: r253785
2017-10-16 11:59:39 +00:00
Tamar Christina
1274f08639 arm_neon.h (vdot_u32, [...]): New.
2017-10-16  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.
	(vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
	(vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.

gcc/testsuite/
2017-10-16  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h: New.
	* gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vect-dot-s8.c: New.
	* gcc.target/aarch64/advsimd-intrinsics/vect-dot-u8.c: New.

From-SVN: r253784
2017-10-16 09:58:31 +00:00
Tamar Christina
7a08d81307 2017-10-16 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64-builtins.c
	(aarch64_types_quadopu_lane_qualifiers): New.
	(TYPES_QUADOPU_LANE): New.
	* config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
	(<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
	(aarch64_<sur>dot_laneq<vsi2qi>): New.
	* config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
	(sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
	* config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
	(Vdottype, DOTPROD): New.
	(sur): Add SDOT and UDOT.

From-SVN: r253783
2017-10-16 09:56:41 +00:00
Tamar Christina
1ddc47c05e aarch64.h (AARCH64_FL_DOTPROD): New.
2017-10-16  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
	(AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add TARGET_DOTPROD.
	* config/aarch64/aarch64-option-extensions.def (dotprod): New.
	* config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): Enable TARGET_DOTPROD.
	(cortex-a75.cortex-a55): Likewise.
	* doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.

From-SVN: r253782
2017-10-16 09:55:32 +00:00
Tamar Christina
f8e109ba7b arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
2017-10-16  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
	(UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): New.
	* config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): new.
	* config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
	(UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
	* config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
	(neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
	* config/arm/types.md (neon_dot, neon_dot_q): New.
	* config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.

From-SVN: r253781
2017-10-16 09:54:26 +00:00
Tamar Christina
ba09dd21b3 arm.h (TARGET_DOTPROD): New.
2017-10-16  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/arm.h (TARGET_DOTPROD): New.
	* config/arm/arm.c (arm_arch_dotprod): New.
	(arm_option_reconfigure_globals): Add arm_arch_dotprod.
	* config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
	* config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
	(feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
	(ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
	* config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
	* doc/invoke.texi (armv8.2-a): Document dotprod

From-SVN: r253780
2017-10-16 09:53:13 +00:00
Tom de Vries
92d5d01ac6 Enable libgomp.oacc-*/declare-*.{c,f90} for non-nvidia devices
2017-10-16  Tom de Vries  <tom@codesourcery.com>

	* testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require
	openacc_nvidia_accel_selected.
	* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same.
	* testsuite/libgomp.oacc-fortran/declare-2.f90: Same.
	* testsuite/libgomp.oacc-fortran/declare-4.f90: Same
	* testsuite/libgomp.oacc-fortran/declare-5.f90: Same.
	* testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require
	openacc_nvidia_accel_selected. Skip for shared memory device.
	* testsuite/libgomp.oacc-fortran/declare-1.f90: Same.
	* testsuite/libgomp.oacc-fortran/declare-3.f90: Same.

From-SVN: r253779
2017-10-16 08:44:42 +00:00
Jakub Jelinek
126c1ea158 re PR c++/53574 (ICE with -fstack-usage)
PR c++/53574
	* g++.dg/other/pr53574.C: New test.

From-SVN: r253778
2017-10-16 10:36:06 +02:00
Paolo Carlini
6fba3d61ef re PR c++/61323 ('static' and 'const' attributes cause non-type template argument matching failure)
2017-10-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/61323
	* g++.dg/cpp0x/constexpr-61323.C: New.

From-SVN: r253777
2017-10-16 08:25:31 +00:00
François Dumont
1be043a140 re PR libstdc++/82558 (V8 JavaScript engine segfaults since r249235)
2017-10-16  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/82558
	* include/bits/stl_bvector.h (fill): Add iterator offset check.
	* testsuite/23_containers/vector/bool/82558.cc: New.

From-SVN: r253776
2017-10-16 05:44:03 +00:00
GCC Administrator
181640f627 Daily bump.
From-SVN: r253775
2017-10-16 00:16:13 +00:00
Paolo Carlini
4dcfe21f16 re PR c++/54090 (internal compiler error: in unify, at cp/pt.c:15731)
2017-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54090
	* g++.dg/template/crash128.C: New.

From-SVN: r253772
2017-10-15 22:29:59 +00:00
Jan Hubicka
c53c148c91 i386.c (ix86_vec_cost): New function.
* i386.c (ix86_vec_cost): New function.
	(ix86_rtx_costs): Handle vector operations better.
	* i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
	* x86-tune-costs.h: Add new costs to all tables.

From-SVN: r253771
2017-10-15 22:10:22 +00:00
Jan Hubicka
6065f4446c i386.c (ix86_rtx_costs): Make difference between x87 and SSE operations.
* i386.c (ix86_rtx_costs): Make difference between x87 and SSE
	operations.
	* i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
	divsd, sqrtss and sqrtsd
	* x86-tune-costs.h: Add new entries to all costs.
	(znver1_cost): Fix to match real instruction latencies.

From-SVN: r253769
2017-10-15 15:58:42 +00:00
Thomas Koenig
31677224bc re PR fortran/82372 (Rejects valid parenthesis)
2017-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/82372
	* fortran/scanner.c (last_error_char):  New global variable.
	(gfc_scanner_init_1): Set last_error_char to NULL.
	(gfc_gobble_whitespace): If a character not printable or
	not newline, issue an error.

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

	PR fortran/82372
	* gfortran.dg/illegal_char.f90: New test.

From-SVN: r253768
2017-10-15 12:00:29 +00:00
GCC Administrator
5fe8ac6bfb Daily bump.
From-SVN: r253767
2017-10-15 00:16:15 +00:00
Kyrylo Tkachov
d7840b4702 compare-elim.c: Include emit-rtl.h.
2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Michael Collison <michael.collison@arm.com>

	* compare-elim.c: Include emit-rtl.h.
	(can_merge_compare_into_arith): New function.
	(try_validate_parallel): Likewise.
	(try_merge_compare): Likewise.
	(try_eliminate_compare): Call the above when no previous clobber
	is available.
	(execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
	dataflow problems.

2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Michael Collison <michael.collison@arm.com>

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


Co-Authored-By: Michael Collison <michael.collison@arm.com>

From-SVN: r253764
2017-10-14 23:07:24 +00:00
Paolo Carlini
c97b789cb8 re PR c++/80908 ([c++1z] ICE on instantiating a template deducing the noexcept-ness of a function pointer)
2017-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80908
	* g++.dg/cpp1z/noexcept-type18.C: New.

From-SVN: r253763
2017-10-14 20:35:36 +00:00
Paolo Carlini
27b8e74a87 re PR c++/81016 (ICE: segfault with template struct specialisation)
2017-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81016
	* g++.dg/cpp1z/pr81016.C: New.

From-SVN: r253762
2017-10-14 20:06:08 +00:00
Jakub Jelinek
14745bcac0 re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is technically undefined behavior)
PR middle-end/62263
	PR middle-end/82498
	* tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
	up to 2 preparation statements for ASSIGN in MIDDLE_BB.

	* c-c++-common/rotate-8.c: Expect no PHIs in optimized dump.

From-SVN: r253761
2017-10-14 20:48:38 +02:00
Jakub Jelinek
cc453086d2 re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is technically undefined behavior)
PR middle-end/62263
	PR middle-end/82498
	* tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
	to be any operand_equal_p operands.  For & (B - 1) require
	B to be power of 2.  Recognize
	(X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.

	* c-c++-common/rotate-5.c (f2): New function.  Move old
	function to ...
	(f4): ... this.  Use 127 instead of 128.
	(f3, f5, f6): New functions.
	(main): Test all f[1-6] functions, with both 0 and 1 as
	second arguments.
	* c-c++-common/rotate-6.c: New test.
	* c-c++-common/rotate-6a.c: New test.
	* c-c++-common/rotate-7.c: New test.
	* c-c++-common/rotate-7a.c: New test.
	* c-c++-common/rotate-8.c: New test.

From-SVN: r253760
2017-10-14 20:47:14 +02:00
Uros Bizjak
6af90df0e4 re PR bootstrap/82553 (memory_blockage breaks bootstrap on powerpc)
PR bootstrap/82553
	* optabs.c (expand_memory_blockage): Fix call of
	targetm.have_memory_blockage.

From-SVN: r253759
2017-10-14 19:46:49 +02:00
Hristian Kirtchev
0fcd7270b6 sem_elab.adb (In_Preelaborated_Context): A generic package subject to Remote_Call_Interface is not a suitable...
gcc/ada/

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_elab.adb (In_Preelaborated_Context): A generic package subject to
	Remote_Call_Interface is not a suitable preelaboratd context when the
	call appears in the package body.

gcc/testsuite/

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* gnat.dg/remote_call_iface.ads, gnat.dg/remote_call_iface.adb: New
	testcase.

From-SVN: r253758
2017-10-14 17:17:41 +00:00
Pierre-Marie de Rodat
92b751fdc6 [multiple changes]
2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>

	* layout.ads (Set_Elem_Alignment): Add Align parameter defaulted to 0.
	* layout.adb (Set_Elem_Alignment): Likewise.  Use M name as maximum
	alignment for consistency.  If Align is non-zero, use the minimum of
	Align and M for the alignment.
	* cstand.adb (Build_Float_Type): Use Set_Elem_Alignment instead of
	setting the alignment directly.

2017-10-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Check): Defer evaluation of the
	optional string in an Assert pragma until the expansion of the pragma
	has rewritten it as a conditional statement, so that the string
	argument is only evaluaed if the assertion fails. This is mandated by
	RM 11.4.2.

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* debug.adb: Switch -gnatd.v and associated flag are now used to
	enforce the SPARK rules for elaboration in SPARK code.
	* sem_elab.adb: Describe switch -gnatd.v.
	(Process_Call): Verify the SPARK rules only when -gnatd.v is in effect.
	(Process_Instantiation): Verify the SPARK rules only when -gnatd.v is
	in effect.
	(Process_Variable_Assignment): Clarify why variable assignments are
	processed reglardless of whether -gnatd.v is in effect.
	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the
	sections on elaboration code and compilation switches.
	* gnat_ugn.texi: Regenerate.

2017-10-14  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb, freeze.adb, sem_aggr.adb, sem_util.ads, sem_util.adb,
	sem_warn.adb: Minor reformattings.

From-SVN: r253757
2017-10-14 17:07:35 +00:00
Pierre-Marie de Rodat
2e60feb591 [multiple changes]
2017-10-14  Ed Schonberg  <schonberg@adacore.com>

	* doc/gnat_rm/implementation_defined_aspects.rst: Add documentation
	for reverse iteration over formal containers.
	* gnat_rm.texi: Regenerate.

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_elab.adb (Ensure_Dynamic_Prior_Elaboration): Renamed to
	Ensure_Prior_Elaboration_Dynamic for consistency reasons.
	(Ensure_Static_Prior_Elaboration): Renamed to
	Ensure_Prior_Elaboration_Static for consistency reasons.
	(Info_Variable_Reference): Renamed to Info_Variable_Read in order to
	reflect its new purpose.
	(Is_Initialized): New routine.
	(Is_Suitable_Variable_Reference): Renamed to Is_Suitable_Variable_Read
	in order to reflect its new purpose.
	(Is_Variable_Read): New routine.
	(Output_Variable_Reference): Renamed to Output_Variable_Read in order
	to reflect its new purpose.
	(Process_Variable_Assignment): This routine now acts as a top level
	dispatcher for variable assignments.
	(Process_Variable_Assignment_Ada): New routine.
	(Process_Variable_Assignment_SPARK): New routine.
	(Process_Variable_Reference): Renamed to Process_Variable_Read in order
	to reflects its new purpose. A reference to a variable is now suitable
	for ABE processing only when it is a read. The logic in the routine now
	reflects the latest SPARK elaboration rules.

2017-10-14  Justin Squirek  <squirek@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Modify condition that
	triggers marking on formal subprograms.

2017-10-14  Javier Miranda  <miranda@adacore.com>

	* checks.adb (Ensure_Valid): Do not skip adding the validity check on
	renamings of objects that come from the sources.

2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>

	* cstand.adb (Build_Float_Type): Move down Siz parameter, add Align
	parameter and set the alignment of the type to Align.
	(Copy_Float_Type): Adjust call to Build_Float_Type.
	(Register_Float_Type): Add pragma Unreferenced for Precision.  Adjust
	call to Build_Float_Type and do not set RM_Size and Alignment.

From-SVN: r253756
2017-10-14 16:47:32 +00:00
Patrick Bernardi
a0b0d71026 Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to GNATRTL_NONTASKING_OBJ.
2017-10-14  Patrick Bernardi  <bernardi@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to
	GNATRTL_NONTASKING_OBJ.

From-SVN: r253755
2017-10-14 16:33:30 +00:00
Pierre-Marie de Rodat
bad0a3df0b [multiple changes]
2017-10-14  Bob Duff  <duff@adacore.com>

	* exp_ch6.adb (Is_Build_In_Place_Result_Type): Include code for
	enabling b-i-p for nonlimited controlled types (but disabled).

2017-10-14  Justin Squirek  <squirek@adacore.com>

	* sem_elab.adb (Is_Suitable_Variable_Assignment): Replace call to
	Has_Warnings_Off with Warnings_Off.

2017-10-14  Piotr Trojanek  <trojanek@adacore.com>

	* sinfo.ads (Generic_Parent): Remove wrong (possibly obsolete) comment.

2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb (Analyze_Declarations): Analyze the contract of an
	enclosing package at the end of the visible declarations.
	* sem_prag.adb (Analyze_Initialization_Item): Suppress the analysis of
	an initialization item which is undefined due to some illegality.

2017-10-14  Patrick Bernardi  <bernardi@adacore.com>

	* ali.adb: Add new ALI line 'T' to read the number of tasks contain
	within each unit that require a default-sized primary and secondary
	stack to be generated by the binder.
	(Scan_ALI): Scan new 'T' lines.
	* ali.ads: Add Primary_Stack_Count and Sec_Stack_Count to Unit_Record.
	* bindgen.adb (Gen_Output_File): Count the number of default-sized
	stacks within the closure that are to be created by the binder.
	(Gen_Adainit, Gen_Output_File_Ada): Generate default-sized secondary
	stacks and record these in System.Secodnary_Stack.
	(Resolve_Binder_Options): Check if System.Secondary_Stack is in the
	closure of the program being bound.
	* bindusg.adb (Display): Add "-Q" switch. Remove rouge "--RTS" comment.
	* exp_ch3.adb (Count_Default_Sized_Task_Stacks): New routine.
	(Expand_N_Object_Declaration): Count the number of default-sized stacks
	used by task objects contained within the object whose declaration is
	being expanded.  Only performed when either the restrictions
	No_Implicit_Heap_Allocations or No_Implicit_Task_Allocations are in
	effect.
	* exp_ch9.adb (Create_Secondary_Stack_For_Task): New routine.
	(Expand_N_Task_Type_Declaration): Create a secondary stack as part of
	the expansion of a task type if the size of the stack is known at
	run-time and the restrictions No_Implicit_Heap_Allocations or
	No_Implicit_Task_Allocations are in effect.
	(Make_Task_Create_Call): If using a restricted profile provide
	secondary stack parameter: either the statically created stack or null.
	* lib-load.adb (Create_Dummy_Package_Unit, Load_Unit,
	Load_Main_Source): Include Primary_Stack_Count and Sec_Stack_Count in
	Unit_Record initialization expressions.
	* lib-writ.adb (Add_Preprocessing_Dependency,
	Ensure_System_Dependency): Include Primary_Stack_Count and
	Sec_Stack_Count in Unit_Record initialization expression.
	(Write_ALI): Write T lines.
	(Write_Unit_Information): Do not output 'T' lines if there are no
	stacks for the binder to generate.
	* lib-writ.ads: Updated library information documentation to include
	new T line entry.
	* lib.adb (Increment_Primary_Stack_Count): New routine.
	(Increment_Sec_Stack_Count): New routine.
	(Primary_Stack_Count): New routine.
	(Sec_Stack_Count): New routine.
	* lib.ads: Add Primary_Stack_Count and Sec_Stack_Count components to
	Unit_Record and updated documentation.
	(Increment_Primary_Stack_Count): New routine along with pragma Inline.
	(Increment_Sec_Stack_Count): New routine along with pragma Inline.
	(Primary_Stack_Count): New routine along with pragma Inline.
	(Sec_Stack_Count): New routine along with pragma Inline.
	* opt.ads: New constant No_Stack_Size.	Flag Default_Stack_Size
	redefined.  New flag Default_Sec_Stack_Size and
	Quantity_Of_Default_Size_Sec_Stacks.
	* rtfinal.c Fixed erroneous comment.
	* rtsfind.ads: Moved RE_Default_Secondary_Stack_Size from
	System.Secondary_Stack to System.Parameters.  Add RE_SS_Stack.
	* sem_util.adb (Number_Of_Elements_In_Array): New routine.
	* sem_util.ads (Number_Of_Elements_In_Array): New routine.
	* switch-b.adb (Scan_Binder_Switches): Scan "-Q" switch.
	* libgnarl/s-solita.adb (Get_Sec_Stack_Addr): Removed routine.
	(Set_Sec_Stack_Addr): Removed routine.
	(Get_Sec_Stack): New routine.
	(Set_Sec_Stack): New routine.
	(Init_Tasking_Soft_Links): Update System.Soft_Links reference to
	reflect new procedure and global names.
	* libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
	libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__solaris.adb,
	libgnarl/s-taprop__vxworks.adb (Register_Foreign_Thread): Update
	parameter profile to allow the secondary stack size to be specified.
	* libgnarl/s-tarest.adb (Create_Restricted_Task): Update the parameter
	profile to include Sec_Stack_Address.  Update Tasking.Initialize_ATCB
	call to remove Secondary_Stack_Size reference.  Add secondary stack
	address and size to SSL.Create_TSD call.
	(Task_Wrapper): Remove secondary stack creation.
	* libgnarl/s-tarest.ads (Create_Restricted_Task,
	Create_Restricted_Task_Sequential): Update parameter profile to include
	Sec_Stack_Address and clarify the Size parameter.
	* libgnarl/s-taskin.adb (Initialize_ATCB): Remove Secondary_Stack_Size
	from profile and body.
	(Initialize): Remove Secondary_Stack_Size from Initialize_ATCB call.
	* libgnarl/s-taskin.ads: Removed component Secondary_Stack_Size from
	Common_ATCB.
	(Initialize_ATCB): Update the parameter profile to remove
	Secondary_Stack_Size.
	* libgnarl/s-tassta.adb (Create_Task): Updated parameter profile and
	call to Initialize_ATCB.  Add secondary stack address and size to
	SSL.Create_TSD call, and catch any storage exception from the call.
	(Finalize_Global_Tasks): Update System.Soft_Links references to reflect
	new subprogram and component names.
	(Task_Wrapper): Remove secondary stack creation.
	(Vulnerable_Complete_Master): Update to reflect TSD changes.
	* libgnarl/s-tassta.ads: Reformat comments.
	(Create_Task): Update parameter profile.
	* libgnarl/s-tporft.adb (Register_Foreign_Thread): Update parameter
	profile to include secondary stack size. Remove secondary size
	parameter from Initialize_ATCB call and add it to Create_TSD call.
	* libgnat/s-parame.adb, libgnat/s-parame__rtems.adb,
	libgnat/s-parame__vxworks.adb (Default_Sec_Stack_Size): New routine.
	* libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
	libgnat/s-parame__hpux.ads, libgnat/s-parame__vxworks.ads: Remove type
	Percentage.  Remove constants Dynamic, Sec_Stack_Percentage and
	Sec_Stack_Dynamic.  Add constant Runtime_Default_Sec_Stack_Size and
	Sec_Stack_Dynamic.
	(Default_Sec_Stack_Size): New routine.
	* libgnat/s-secsta.adb, libgnat/s-secsta.ads: New implementation. Is
	now Preelaborate.
	* libgnat/s-soflin.adb: Removed unused with-clauses.  With
	System.Soft_Links.Initialize to initialize non-tasking TSD.
	(Create_TSD): Update parameter profile. Initialize the TSD and
	unconditionally call SS_Init.
	(Destroy_TSD): Update SST.SS_Free call.
	(Get_Sec_Stack_Addr_NT, Get_Sec_Stack_Addr_Soft, Set_Sec_Stack_Addr_NT,
	Set_Sec_Stack_Addr_Soft): Remove routines.
	(Get_Sec_Stack_NT, Get_Sec_Stack_Soft, Set_Sec_Stack_NT,
	Set_Sec_Stack_Soft): Add routines.
	(NT_TSD): Move to private part of package specification.
	* libgnat/s-soflin.ads: New types Get_Stack_Call and Set_Stack_Call
	with suppressed access checks.  Renamed *_Sec_Stack_Addr_* routines and
	objects to *_Sec_Stack_*.  TSD: removed warning suppression and
	component intialization. Changed Sec_Stack_Addr to Sec_Stack_Ptr.
	(Create_TSD): Update parameter profile.
	(NT_TSD): Move to private section from body.
	* libgnat/s-soliin.adb, libgnat/s-soliin.ads: New files.
	* libgnat/s-thread.ads (Thread_Body_Enter): Update parameter profile.
	* libgnat/s-thread__ae653.adb (Get_Sec_Stack_Addr, Set_Sec_Stack_Addr):
	Remove routine.
	(Get_Sec_Stack, Set_Sec_Stack): Add routine.
	(Thread_Body_Enter): Update parameter profile and body to adapt to new
	System.Secondary_Stack.
	(Init_RTS): Update body for new System.Soft_Links names.
	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
	s-soliin.o.

From-SVN: r253754
2017-10-14 16:25:21 +00:00
Jakub Jelinek
41f59cdada re PR bootstrap/82548 (After -r 253646 GCC 8.0 can't build cross compiler for mingw32)
PR bootstrap/82548
	* config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
	x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
	objects to extra_objs instead of overwriting it.

From-SVN: r253753
2017-10-14 14:32:17 +02:00
Uros Bizjak
b391462a87 * optabs.c (expand_memory_blockage): Use targetm.gen_memory_blockage.
From-SVN: r253752
2017-10-14 12:46:20 +02:00
Uros Bizjak
cca04bdd68 sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): Use any_fp_register_operand as operand[3] predicate.
* config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
	Use any_fp_register_operand as operand[3] predicate.  Simplify
	equality test for operands[2] and operands[4] memory location.
	(LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
	(FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
	(LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
	(FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
	any_fp_register_operand as operand[1] predicate.  Simplify
	equality test for operands[0] and operands[3] memory location.
	(LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
	(FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
	(LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.

From-SVN: r253751
2017-10-14 11:31:29 +02:00
Uros Bizjak
51ced7e4f4 target-insns.def: Add memory_blockage.
* target-insns.def: Add memory_blockage.
	* optabs.c (expand_memory_blockage): New function.
	(expand_asm_memory_barrier): Rename ...
	(expand_asm_memory_blockage): ... to this.
	(expand_mem_thread_fence): Call expand_memory_blockage
	instead of expand_asm_memory_barrier.
	(expand_mem_singnal_fence): Ditto.
	(expand_atomic_load): Ditto.
	(expand_atomic_store): Ditto.
	* doc/md.texi (Standard Pattern Names For Generation):
	Document memory_blockage instruction pattern.

From-SVN: r253750
2017-10-14 11:10:45 +02:00
Jakub Jelinek
5c20e42977 re PR rtl-optimization/81423 (Wrong code at -O2)
PR rtl-optimization/81423
	* gcc.c-torture/execute/pr81423.c (foo): Add missing cast.  Change L
	suffixes to LL.
	(main): Punt if either long long isn't 64-bit or int isn't 32-bit.

From-SVN: r253749
2017-10-14 10:34:11 +02:00
Sebastian Perta
a0bf6cf784 rl78.c (rl78_emit_libcall): New function.
[gcc]
	* config/rl78/rl78.c (rl78_emit_libcall): New function.
	* config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
	* config/rl78/rl78.md: New define_expand "adddi3".
[libgcc]
	* config/rl78/adddi3.S: New assembly file.
	* config/rl78/t-rl78: Added adddi3.S to LIB2ADD.

From-SVN: r253748
2017-10-13 20:33:58 -04:00
GCC Administrator
41841c3269 Daily bump.
From-SVN: r253747
2017-10-14 00:16:16 +00:00