Commit Graph

156825 Commits

Author SHA1 Message Date
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
Jakub Jelinek
8afb6a2cd6 re PR sanitizer/82353 (runtime ubsan crash)
PR sanitizer/82353
	* g++.dg/ubsan/pr82353-2.C: New test.
	* g++.dg/ubsan/pr82353-2-aux.cc: New file.
	* g++.dg/ubsan/pr82353-2.h: New file.

From-SVN: r253744
2017-10-13 22:19:17 +02:00
Jakub Jelinek
39382c092e c-gimplify.c (c_gimplify_expr): Handle [LR]ROTATE_EXPR like [LR]SHIFT_EXPR.
* c-gimplify.c (c_gimplify_expr): Handle [LR]ROTATE_EXPR like
	[LR]SHIFT_EXPR.

From-SVN: r253742
2017-10-13 22:06:40 +02:00
Jan Hubicka
5675a2f8c8 cfghooks.c (verify_flow_info): Disable check that all probabilities are set correctly.
* cfghooks.c (verify_flow_info): Disable check that all probabilities
	are set correctly.

From-SVN: r253741
2017-10-13 20:04:00 +00:00
Jeff Law
a1c47ade77 * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
From-SVN: r253740
2017-10-13 13:12:05 -06:00
Jason Merrill
5c9c546b9d PR c++/82357 - bit-field in template
* tree.c (cp_stabilize_reference): Just return a NON_DEPENDENT_EXPR.

From-SVN: r253739
2017-10-13 15:03:41 -04:00
Paul Thomas
e6110fa622 re PR fortran/81048 (incorrect derived type initialization)
2017-10-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/81048
	* resolve.c (resolve_symbol): Ensure that derived type array
	results get default initialization.

2017-10-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/81048
	* gfortran.dg/derived_init_4.f90 : New test.

From-SVN: r253738
2017-10-13 18:59:34 +00:00
Paolo Carlini
d7327979fe re PR c++/69078 ([C++14] function local static not initialized when only used in a generic/variadic lambda)
2017-10-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/69078
	* g++.dg/cpp1y/lambda-generic-69078-1.C: New.
	* g++.dg/cpp1y/lambda-generic-69078-2.C: Likewise.

From-SVN: r253736
2017-10-13 17:38:50 +00:00
Jakub Jelinek
e7176f75d6 re PR target/82274 (__builtin_mul_overflow fails to detect overflow for int64_t when compiled with -m32)
PR target/82274
	* internal-fn.c (expand_mul_overflow): If both operands have
	the same highpart of -1 or 0 and the topmost bit of lowpart
	is different, overflow is if res <= 0 rather than res < 0.

	* libgcc2.c (__mulvDI3): If both operands have
	the same highpart of -1 and the topmost bit of lowpart is 0,
	multiplication overflows even if both lowparts are 0.

	* gcc.dg/pr82274-1.c: New test.
	* gcc.dg/pr82274-2.c: New test.

From-SVN: r253734
2017-10-13 19:19:12 +02:00
Paolo Carlini
8de7190350 re PR c++/80873 (ICE in tsubst_copy when trying to use an overloaded function without a definition in a lambda)
2017-10-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80873
	* g++.dg/cpp1y/auto-fn41.C: New.
	* g++.dg/cpp1y/auto-fn42.C: Likewise.

From-SVN: r253733
2017-10-13 16:50:13 +00:00
Pat Haugen
96ec425f5d rs6000.c (rs6000_builtin_vectorization_cost): Remove TARGET_P9_VECTOR code for unaligned_load case.
* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
	TARGET_P9_VECTOR code for unaligned_load case.

From-SVN: r253731
2017-10-13 16:05:53 +00:00