1. 15 Oct, 2017 3 commits
  2. 14 Oct, 2017 18 commits
    • compare-elim.c: Include emit-rtl.h. · d7840b47
      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
      Kyrylo Tkachov committed
    • re PR c++/80908 ([c++1z] ICE on instantiating a template deducing the… · c97b789c
      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
      Paolo Carlini committed
    • 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
  3. 13 Oct, 2017 19 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