1. 14 Oct, 2017 16 commits
    • re PR c++/81016 (ICE: segfault with template struct specialisation) · 27b8e74a
      2017-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/81016
      	* g++.dg/cpp1z/pr81016.C: New.
      
      From-SVN: r253762
      Paolo Carlini committed
    • re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is… · 14745bca
      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
      Jakub Jelinek committed
    • re PR middle-end/62263 (Good codegen for bitwise rotate requires code that is… · cc453086
      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
      Jakub Jelinek committed
    • re PR bootstrap/82553 (memory_blockage breaks bootstrap on powerpc) · 6af90df0
      	PR bootstrap/82553
      	* optabs.c (expand_memory_blockage): Fix call of
      	targetm.have_memory_blockage.
      
      From-SVN: r253759
      Uros Bizjak committed
    • sem_elab.adb (In_Preelaborated_Context): A generic package subject to… · 0fcd7270
      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
      Hristian Kirtchev committed
    • [multiple changes] · 92b751fd
      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
      Pierre-Marie de Rodat committed
    • [multiple changes] · 2e60feb5
      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
      Pierre-Marie de Rodat committed
    • Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to GNATRTL_NONTASKING_OBJ. · a0b0d710
      2017-10-14  Patrick Bernardi  <bernardi@adacore.com>
      
      	* Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to
      	GNATRTL_NONTASKING_OBJ.
      
      From-SVN: r253755
      Patrick Bernardi committed
    • [multiple changes] · bad0a3df
      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
      Pierre-Marie de Rodat committed
    • re PR bootstrap/82548 (After -r 253646 GCC 8.0 can't build cross compiler for mingw32) · 41f59cda
      	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
      Jakub Jelinek committed
    • sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): Use any_fp_register_operand… · cca04bdd
      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
      Uros Bizjak committed
    • target-insns.def: Add memory_blockage. · 51ced7e4
      	* 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
      Uros Bizjak committed
    • re PR rtl-optimization/81423 (Wrong code at -O2) · 5c20e429
      	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
      Jakub Jelinek committed
    • rl78.c (rl78_emit_libcall): New function. · a0bf6cf7
      [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
      Sebastian Perta committed
    • Daily bump. · 41841c32
      From-SVN: r253747
      GCC Administrator committed
  2. 13 Oct, 2017 24 commits
    • re PR sanitizer/82353 (runtime ubsan crash) · 8afb6a2c
      	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
      Jakub Jelinek committed
    • c-gimplify.c (c_gimplify_expr): Handle [LR]ROTATE_EXPR like [LR]SHIFT_EXPR. · 39382c09
      	* c-gimplify.c (c_gimplify_expr): Handle [LR]ROTATE_EXPR like
      	[LR]SHIFT_EXPR.
      
      From-SVN: r253742
      Jakub Jelinek committed
    • cfghooks.c (verify_flow_info): Disable check that all probabilities are set correctly. · 5675a2f8
      
      	* cfghooks.c (verify_flow_info): Disable check that all probabilities
      	are set correctly.
      
      From-SVN: r253741
      Jan Hubicka committed
    • * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly. · a1c47ade
      From-SVN: r253740
      Jeff Law committed
    • PR c++/82357 - bit-field in template · 5c9c546b
      	* tree.c (cp_stabilize_reference): Just return a NON_DEPENDENT_EXPR.
      
      From-SVN: r253739
      Jason Merrill committed
    • re PR fortran/81048 (incorrect derived type initialization) · e6110fa6
      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
      Paul Thomas committed
    • re PR c++/69078 ([C++14] function local static not initialized when only used in… · d7327979
      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
      Paolo Carlini committed
    • re PR target/82274 (__builtin_mul_overflow fails to detect overflow for int64_t… · e7176f75
      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
      Jakub Jelinek committed
    • re PR c++/80873 (ICE in tsubst_copy when trying to use an overloaded function… · 8de71903
      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
      Paolo Carlini committed
    • rs6000.c (rs6000_builtin_vectorization_cost): Remove TARGET_P9_VECTOR code for unaligned_load case. · 96ec425f
      	* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
      	TARGET_P9_VECTOR code for unaligned_load case.
      
      From-SVN: r253731
      Pat Haugen committed
    • fixinc.in (dirname): Change sed from 's|[^/]*/||' to 's|[^/]*//*||'. · b015bcbb
      2017-10-13  Mike Frysinger  <vapier@chromium.org>
      
      	* fixinc.in (dirname): Change sed from 's|[^/]*/||' to
      	's|[^/]*//*||'.
      
      From-SVN: r253730
      Mike Frysinger committed
    • cfghooks.c (verify_flow_info): Check that edge probabilities are set. · 9cdc325a
      
      	* cfghooks.c (verify_flow_info): Check that edge probabilities are
      	set.
      
      From-SVN: r253728
      Jan Hubicka committed
    • C++: show location of unclosed extern "C" specifications · 15f7a469
      If the user fails to close an extern "C" linkage specifier, and then
      uses templates, they will run into "template with C linkage" errors.
      
      From personal experience, it can be hard to tell where the
      extern "C" began.  As of r251026 there will be a message highlighting
      the unclosed '{', but this may be hard to spot at the very end of
      the errors.
      
      This patch adds a note to the various diagnostics that complain
      about C linkage, showing the user where the extern "C" specification
      began.
      
      gcc/cp/ChangeLog:
      	* cp-tree.h (maybe_show_extern_c_location): New decl.
      	* decl.c (grokfndecl): When complaining about literal operators
      	with C linkage, issue a note giving the location of the
      	extern "C".
      	* parser.c (cp_parser_new): Initialize new field
      	"innermost_linkage_specification_location".
      	(cp_parser_linkage_specification): Store the location
      	of the linkage specification within the cp_parser.
      	(cp_parser_explicit_specialization): When complaining about
      	template specializations with C linkage, issue a note giving the
      	location of the extern "C".
      	(cp_parser_explicit_template_declaration): Likewise for templates.
      	(maybe_show_extern_c_location): New function.
      	* parser.h (struct cp_parser): New field
      	"innermost_linkage_specification_location".
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/cpp0x/udlit-extern-c.C: New test case.
      	* g++.dg/diagnostic/unclosed-extern-c.C: Add example of a template
      	erroneously covered by an unclosed extern "C".
      	* g++.dg/template/extern-c.C: New test case.
      
      From-SVN: r253726
      David Malcolm committed
    • PR libstdc++/82522 overload map insert functions for rvalues (LWG 2354) · 3b0dd4fe
      	PR libstdc++/82522
      	* doc/xml/manual/intro.xml: Document LWG 2354 changes.
      	* include/bits/stl_map.h (map::insert(value_type&&))
      	(map::insert(const_iterator, value_type&&)): Add overload for rvalues.
      	* include/bits/stl_multimap.h (multimap::insert(value_type&&))
      	(multimap::insert(const_iterator, value_type&&)): Likewise.
      	* include/bits/unordered_map.h (unordered_map::insert(value_type&&))
      	(unordered_map::insert(const_iterator, value_type&&))
      	(unordered_multimap::insert(value_type&&))
      	(unordered_multimap::insert(const_iterator, value_type&&)): Likewise.
      	* testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test.
      	* testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New
      	test.
      	* testsuite/23_containers/unordered_map/insert/dr2354.cc: New test.
      	* testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New
      	test.
      
      From-SVN: r253725
      Jonathan Wakely committed
    • PR libstdc++/82481 Suppress clang-tidy warnings · d1e85aa9
      	PR libstdc++/82481
      	* include/std/mutex (call_once): Suppress clang-tidy warnings about
      	dangling references.
      
      From-SVN: r253724
      Jonathan Wakely committed
    • [PATCH] Tree structure marking · 7143b9d6
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00846.html
      	* tree-core.h (tree_contains_struct): Make bool.
      	* tree.c (tree_contains_struct): Likewise.
      	* tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
      	(MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
      	MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
      	MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
      	MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
      
      From-SVN: r253723
      Nathan Sidwell committed
    • 2017-10-13 Richard Biener <rguenther@suse.de> · 99758d1a
      	* graphite-isl-ast-to-gimple.c
      	(translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
      	parameters and dominance check.
      	(translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
      	(translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
      	(translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
      	Do not update SSA form here or do intermediate IL verification.
      	* graphite.c: Include tree-ssa.h and tree-into-ssa.h.
      	(graphite_initialize): Remove check on the number of loops in
      	the function and inline into graphite_transform_loops.
      	(graphite_finalize): Inline into graphite_transform_loops.
      	(graphite_transform_loops): Perform SSA update and IL verification
      	here.
      	* params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
      
      	* gcc.dg/graphite/pr35356-3.c: XFAIL again.
      	* gcc.dg/graphite/pr81373-2.c: Copy from gcc.dg/graphite/pr81373.c
      	with alternate flags.
      
      From-SVN: r253721
      Richard Biener committed
    • 2017-10-13 Richard Biener <rguenther@suse.de> · 6fe00fb7
      	* graphite-isl-ast-to-gimple.c
      	(translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
      	parameters and dominance check.
      	(translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
      	(translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
      	(translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
      	Do not update SSA form here or do intermediate IL verification.
      	* graphite.c: Include tree-ssa.h and tree-into-ssa.h.
      	(graphite_initialize): Remove check on the number of loops in
      	the function and inline into graphite_transform_loops.
      	(graphite_finalize): Inline into graphite_transform_loops.
      	(graphite_transform_loops): Perform SSA update and IL verification
      	here.
      	* params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
      
      	* gcc.dg/graphite/pr35356-3.c: XFAIL again.
      	* gcc.dg/graphite/pr81373-2.c: Copy from gcc.dg/graphite/pr81373.c
      	with alternate flags.
      
      From-SVN: r253720
      Richard Biener committed
    • graphite-isl-ast-to-gimple.c (max_mode_int_precision, [...]): Avoid global… · 1a8821c5
      graphite-isl-ast-to-gimple.c (max_mode_int_precision, [...]): Avoid global constructor by moving ...
      
      2017-10-13  Richard Biener  <rguenther@suse.de>
      
      	* graphite-isl-ast-to-gimple.c (max_mode_int_precision,
      	graphite_expression_type_precision): Avoid global constructor
      	by moving ...
      	(translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
      	(translate_isl_ast_to_gimple::graphite_expr_type): Add type
      	member.
      	(translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
      	(translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
      	(translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
      	* graphite-sese-to-poly.c (build_original_schedule): Return nothing.
      
      	* gcc.dg/graphite/scop-10.c: Enlarge array to avoid undefined
      	behavior.
      	* gcc.dg/graphite/scop-7.c: Likewise.
      	* gcc.dg/graphite/scop-8.c: Likewise.
      
      From-SVN: r253719
      Richard Biener committed
    • i386: Check red zone size in push peephole2 · 2ecf9ac7
      Check red zone size, instead of if red zone is available, in push
      peephole2s.
      
      gcc/
      
      	PR target/82499
      	* config/i386/i386.h (ix86_red_zone_size): New.
      	* config/i386/i386.md (push peephole2s): Replace
      	"!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
      
      gcc/testsuite/
      
      	PR target/82499
      	* gcc.target/i386/pr82499-1.c: New file.
      	* gcc.target/i386/pr82499-2.c: Likewise.
      	* gcc.target/i386/pr82499-3.c: Likewise.
      
      From-SVN: r253718
      H.J. Lu committed
    • Prevent invalid register mode changes in combine · 8649149a
      This patch stops combine from changing the mode of an existing register
      in-place if doing so would change the size of the underlying register
      allocation size, as given by REGMODE_NATURAL_SIZE.  Without this,
      many tests fail in adjust_reg_mode after SVE is added.  One example
      is gcc.c-torture/compile/20090401-1.c.
      
      2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* combine.c (can_change_dest_mode): Reject changes in
      	REGMODE_NATURAL_SIZE.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253717
      Richard Sandiford committed
    • Make more use of GET_MODE_UNIT_BITSIZE · 250a60f3
      This patch is like the previous GET_MODE_UNIT_SIZE one,
      but for bit rather than byte sizes.
      
      2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
      	(expand_debug_source_expr): Likewise.
      	* combine.c (combine_simplify_rtx): Likewise.
      	* cse.c (fold_rtx): Likewise.
      	* fwprop.c (canonicalize_address): Likewise.
      	* targhooks.c (default_shift_truncation_mask): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253716
      Richard Sandiford committed
    • Make more use of GET_MODE_UNIT_SIZE · fb98441a
      This patch uses GET_MODE_UNIT_SIZE instead of GET_MODE_SIZE in
      cases where, for compound modes, the mode of the scalar elements
      is what matters.  E.g. the choice between truncation and extension
      is really based on the modes of the consistuent scalars rather
      than the mode as a whole.
      
      None of the existing code was wrong.  The patch simply makes
      things easier when converting to variable-sized modes.
      
      2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
      	(widened_mode): Likewise.
      	(expand_unop): Likewise.
      	* ree.c (transform_ifelse): Likewise.
      	(merge_def_and_ext): Likewise.
      	(combine_reaching_defs): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r253715
      Richard Sandiford committed