1. 28 May, 2015 29 commits
    • futex_bits.h (sys_futex0): Change operands "op" and "val" to int. · d778b5a0
      	* config/linux/x86/futex_bits.h (sys_futex0) [__x86_64__]: Change
      	operands "op" and "val" to int.
      
      	* config/linux/sh/futex_bits.h (sys_futex0) Change operands
      	"op" and "val" to int.
      
      	* config/linux/alpha/futex_bits.h (sys_futex0) Change operands
      	"op" and "val" to int.
      
      	* config/linux/futex.cc (gtm_futex_wait, gtm_futex_wake):
      	Declare as static int.
      	(FUTEX_PRIVATE_FLAG): Remove L suffix.
      	* config/linux/futex_bits.h (sys_futex0) Change operand "op" to int.
      
      	Revert:
      	* config/linux/x86/futex.h (sys_futex0) [!__x86_64__]:
      	Change operand "op" to long.
      
      From-SVN: r223844
      Uros Bizjak committed
    • re PR libstdc++/65352 (array<T,0>::begin()/end() etc. forms a null reference and… · ac3efa77
      re PR libstdc++/65352 (array<T,0>::begin()/end() etc. forms a null reference and breaks on clang+ubsan)
      
      	PR libstdc++/65352
      	* include/profile/array (array::data): Use _S_ptr.
      	* include/debug/array (array::data): Likewise.
      
      From-SVN: r223838
      Jonathan Wakely committed
    • utils.c (max_size): Add special code to deal with the subtraction of a "negative" value in an... · 396e67d2
      	* gcc-interface/utils.c (max_size) <tcc_binary>: Add special code to
      	deal with the subtraction of a "negative" value in an unsigned type.
      
      From-SVN: r223837
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Do not error out on a return type which has a size… · afd6f702
      decl.c (gnat_to_gnu_entity): Do not error out on a return type which has a size that overflows if...
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Do
      	not error out on a return type which has a size that overflows if the
      	return is done by invisible reference.
      
      From-SVN: r223836
      Eric Botcazou committed
    • utils.c (gnat_pushdecl): Reunify the handling of array and pointer types wrt… · 79714815
      utils.c (gnat_pushdecl): Reunify the handling of array and pointer types wrt DECL_ORIGINAL_TYPE and...
      
      	* gcc-interface/utils.c (gnat_pushdecl): Reunify the handling of array
      	and pointer types wrt DECL_ORIGINAL_TYPE and adjust left and right.
      
      From-SVN: r223835
      Eric Botcazou committed
    • gigi.h (gnat_stabilize_reference): Adjust. · fc7a823e
      	* gcc-interface/gigi.h (gnat_stabilize_reference): Adjust.
      	(rewrite_fn): Remove third parameter.
      	(type_is_padding_self_referential): New inline predicate.
      	(return_type_with_variable_size_p): Likewise.
      	* gcc-interface/decl.c (allocatable_size_p): More around.
      	(cannot_be_superflat_p): Rename into...
      	(cannot_be_superflat ): ...this.
      	(initial_value_needs_conversion): New predicate.
      	(gnat_to_gnu_entity): Invoke type_is_padding_self_referential,
      	initial_value_needs_conversion and adjust to above renaming.
      	For a renaming, force the materialization if the inner expression
      	is compound.  Adjust calls to elaborate_reference and build a
      	compound expression if needed.
      	(struct er_dat): Add N field.
      	(elaborate_reference_1): Remove N parameter and adjust.
      	(elaborate_reference): Add INIT parameter and pass it in the call to
      	gnat_rewrite_reference.  Adjust initial expression.
      	* gcc-interface/trans.c (Call_to_gnu): Treat renamings the same way as
      	regular object declarations when it comes to creating a temporary.
      	Adjust call to gnat_stabilize_reference and build a compound expression
       	if needed.  Invoke return_type_with_variable_size_p.
      	(gnat_to_gnu): Invoke type_is_padding_self_referential.  In case #4,
      	return a call to a function unmodified if it returns with variable size
       	and is also the initial expression in an object declaration.
      	* gcc-interface/utils2.c (build_binary_op) <INIT_EXPR>: Use the RHS'
      	type if it is a call to a function that returns with variable size.
      	(build_unary_op): Invoke type_is_padding_self_referential.
      	(gnat_stabilize_reference_1): Remove N parameter and adjust.
      	(gnat_stabilize_reference): Add INIT parameter and pass it in the call
      	to gnat_rewrite_reference.
      	(gnat_rewrite_reference):  Remove N, add INIT parameter and adjust.
      	<COMPOUND_EXPR>: New case.
      
      From-SVN: r223834
      Eric Botcazou committed
    • configure: fix vtable help · 318a4e6d
      Spacing is off causing --help to not line up.  Use the standard
      AS_HELP_STRING like all the other options.
      
      From-SVN: r223833
      Mike Frysinger committed
    • nios2-linux: add missing cpp specs · 52d0089e
      Define CPP_SPEC for nios2 linux targets so that -posix & -pthread work
      like on all other linux targets.
      
      Discovered via Gentoo bug https://bugs.gentoo.org/543114
      
      From-SVN: r223823
      Mike Frysinger committed
    • microblaze-linux: add missing cpp specs · 148f65a3
      Define CPP_SPEC for microblaze linux targets so that -posix & -pthread
      work like on all other linux targets.
      
      Discovered via Gentoo bug https://bugs.gentoo.org/543114
      
      From-SVN: r223822
      Mike Frysinger committed
    • futex.h (sys_futex0): Remove function. · bb3caa35
      	* config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
      	(futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
      	(futex_wake) [!__x86_64__]: Ditto.
      
      From-SVN: r223821
      Uros Bizjak committed
    • hppa-linux: add missing cpp specs · de0e921c
      Define CPP_SPEC for parisc linux targets so that -posix & -pthread work
      like on all other linux targets.
      
      Discovered via Gentoo bug https://bugs.gentoo.org/543114
      
      From-SVN: r223820
      Mike Frysinger committed
    • tree-vect-loop.c (vect_fixup_reduc_chain): New function. · 14a61437
      2015-05-28  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-loop.c (vect_fixup_reduc_chain): New function.
      	(vect_fixup_scalar_cycles_with_patterns): Likewise.
      	(vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
      	after pattern recog.
      	(vect_create_epilog_for_reduction): Properly handle reductions
      	with patterns.
      	(vectorizable_reduction): Likewise.
      	* tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
      	reduction chains.
      	(vect_get_constant_vectors): Create the correct number of
      	initial values for reductions.
      	(vect_schedule_slp_instance): Handle reduction chains that are
      	type changing properly.
      	* tree-vect-stmts.c (vect_analyze_stmt): Adjust.
      
      	* gcc.dg/vect/slp-reduc-sad.c: New testcase.
      
      From-SVN: r223818
      Richard Biener committed
    • [multiple changes] · 22872224
      2015-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Is_Visible_Component): Component is visible
      	in a derived type if inherited through an ancestor that has a
      	partial view of the original type holding the component, if the
      	full view of that original type is in scope.
      	* sem_util.ads (Get_Body_From_Stub): Works for all kinds of stubs.
      
      2015-05-28  Bob Duff  <duff@adacore.com>
      
      	* sem_util.adb (Requires_Transient_Scope): For definite untagged
      	subtypes, we should never have to use the secondary stack. This moves
      	toward that goal. But there are still cases that don't work.
      	Here, we move the check for Is_Definite first, but add a
      	special-purpose check for Has_Discrim_Dep_Array.
      
      From-SVN: r223817
      Arnaud Charlet committed
    • re PR tree-optimization/66142 (Loop is not vectorized because not sufficient… · e65757f3
      re PR tree-optimization/66142 (Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE)
      
      2015-05-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/66142
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
      	values better in memcpy destination handling.  Handle non-aliasing
      	we discover here.
      
      	* gcc.dg/tree-ssa/ssa-fre-44.c: Fixup.
      
      From-SVN: r223816
      Richard Biener committed
    • sem_util.adb (Requires_Transient_Scope): Avoid returning function results on the… · d3b1cbdd
      sem_util.adb (Requires_Transient_Scope): Avoid returning function results on the secondary stack in so many cases.
      
      2015-05-28  Bob Duff  <duff@adacore.com>
      
      	* sem_util.adb (Requires_Transient_Scope): Avoid returning
      	function results on the secondary stack in so many cases.
      
      From-SVN: r223814
      Bob Duff committed
    • re PR target/63810 (gcc sets incorrect macro for OS X deployment targets) · 98fc3d49
      2015-05-28  Lawrence Velázquez  <vq@larryv.me>
      
      	PR target/63810
      	* config/darwin-c.c (version_components): New global enum.
      	(parse_version, version_as_legacy_macro)
      	(version_as_modern_macro, macosx_version_as_macro): New functions.
      	(version_as_macro): Remove.
      	(darwin_cpp_builtins): Use new function.
      
      testsuite:
      	PR target/63810
      	* gcc.dg/darwin-minversion-3.c: Update testcase.
      	* gcc.dg/darwin-minversion-4.c: Ditto.
      	* gcc.dg/darwin-minversion-5.c: New testcase.
      	* gcc.dg/darwin-minversion-6.c: Ditto.
      	* gcc.dg/darwin-minversion-7.c: Ditto.
      	* gcc.dg/darwin-minversion-8.c: Ditto.
      	* gcc.dg/darwin-minversion-9.c: Ditto.
      	* gcc.dg/darwin-minversion-10.c: Ditto.
      	* gcc.dg/darwin-minversion-11.c: Ditto.
      	* gcc.dg/darwin-minversion-12.c: Ditto.
      
      From-SVN: r223808
      Lawrence Velázquez committed
    • re PR libstdc++/65352 (array<T,0>::begin()/end() etc. forms a null reference and… · 6a344b95
      re PR libstdc++/65352 (array<T,0>::begin()/end() etc. forms a null reference and breaks on clang+ubsan)
      
      	PR libstdc++/65352
      	* include/std/array (__array_traits::_S_ptr): New function.
      	(array::data): Use _S_ptr to avoid creating invalid reference.
      	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
      	dg-error line numbers.
      	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
      	likewise.
      
      From-SVN: r223806
      Jonathan Wakely committed
    • Mark parameters with ATTRIBUTE_UNUSED · f093f5a6
      	* builtins.c (expand_builtin_acc_on_device): Mark parameters
      	with ATTRIBUTE_UNUSED.
      
      From-SVN: r223805
      H.J. Lu committed
    • sem_util.adb (Wrong_Type): In any instance... · 4d6a38a5
      2015-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Wrong_Type): In any instance, do not emit error
      	if type of expression is the partial view of the expected type.
      
      2015-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Actuals): a)  The replacement of formal
      	names in named associations only needs to be done within an
      	instance, on a call to a primitive of a formal derived type,
      	where the actual subprogram may have different formal names than
      	those of the primitive operation of the formal type.
      	b) Defaulted parameters must be taken into account when obtaining
      	the names of the formals of the actual subprogram being called.
      
      From-SVN: r223804
      Ed Schonberg committed
    • oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. · 9fb5fd44
      	* oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
      	function comment. Only call gomp_fatal if new argument is true.
      	(acc_dev_num_out_of_range): New function.
      	(acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
      	acc_dev_num_out_of_range as appropriate.
      	(acc_get_num_devices, acc_set_device_type, acc_get_device_type)
      	(acc_get_device_num, acc_set_device_num): Update calls to resolve_device.
      	* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
      	output.
      
      From-SVN: r223803
      Julian Brown committed
    • re PR libgomp/65742 (Several libgomp.oacc-* failures after r221922.) · 32eaed93
          PR libgomp/65742
      
          gcc/
          * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
          sequence for !ACCEL_COMPILER.
      
          libgomp/
          * oacc-init.c (plugin/plugin-host.h): Include.
          (acc_on_device): Check whether we're in an offloaded region for
          host_nonshm
          plugin. Don't use __builtin_acc_on_device.
          * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
          nonshm_exec flag in thread-local data.
          (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
          data for host_nonshm plugin.
          (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
          for host_nonshm plugin.
          * plugin/plugin-host.h: New.
      
      From-SVN: r223801
      Julian Brown committed
    • [multiple changes] · 7d9880c9
      2015-05-28  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch13.adb, sem_disp.ads: Minor reformatting.
      
      2015-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Set_Debug_Info_Needed): For a private type
      	whose full view is itself a derived private type, set flag on
      	underlying full view as well, for proper gdb display.
      
      2015-05-28  Bob Duff  <duff@adacore.com>
      
      	* exp_tss.ads: Minor comment fix.
      	* exp_ch3.adb (Build_Array_Init_Proc, Build_Record_Init_Proc):
      	Inline init_procs when the type has controlled parts. Remove
      	obsolete comments about those init_procs -- init_procs for
      	such types are no longer complex. A typical init_proc just
      	initializes the 'Tag field, and calls the parent init_proc
      	(e.g. for Limited_Controlled), which calls the grandparent
      	(for Root_Controlled), which does nothing. This all boils down
      	to one instruction when inlined.
      	* exp_ch7.adb (Create_Finalizer): Inline the finalizer.
      
      2015-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Analyze_Selected_Component): If the type to use
      	is a derived type and is a generic actual, the selected component
      	appears within an instance body, and the check over the type
      	has failed, examine ancestor types for the desired component.
      	(Find_Component_In_Instance): If record type is a derived type,
      	examine all ancestors in order to locate desired component.
      
      From-SVN: r223800
      Arnaud Charlet committed
    • rx.c (push_regs): New function. · 55ffa756
      	* config/rx/rx.c (push_regs): New function.  Extracts code from...
      	(rx_expand_prologue): ... here.  Use push_regs to push even small
      	spans of registers.
      	(pop_regs): New function.
      	(rx_expand_epilogue):  Use pop_regs to pop even small spans of
      	registers.
      
      From-SVN: r223799
      Nick Clifton committed
    • tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec member. · 1a4b99c1
      2015-05-28  Richard Biener  <rguenther@suse.de>
      
      	* tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
      	member.
      	(SLP_INSTANCE_BODY_COST_VEC): Remove.
      	(vect_update_slp_costs_according_to_vf): Likewise.
      	(vect_slp_analyze_operations): Update prototype.
      	* tree-vect-loop.c (vect_analyze_loop_2): Remove call to
      	vect_update_slp_costs_according_to_vf, adjust.
      	* tree-vect-slp.c (vect_free_slp_instance): Adjust.
      	(vect_analyze_slp_cost_1): Likewise.
      	(vect_analyze_slp_cost): Likewise.  Properly deal with
      	widening reduction ops.  Commit body costs.
      	(vect_analyze_slp_instance): Adjust.  Do not analyze SLP
      	cost for loops from here.
      	(vect_slp_analyze_operations): But do it from here when
      	the vectorization factor is known and stmts are analyzed.
      	(vect_bb_vectorization_profitable_p): Simplify.
      	(vect_slp_analyze_bb_1): Do not compute SLP cost here.
      	(vect_update_slp_costs_according_to_vf): Remove.
      
      From-SVN: r223798
      Richard Biener committed
    • Add --enable-default-pie option to GCC configure · 428b3812
      Add --enable-default-pie option to configure GCC to generate PIE by
      default.
      
      gcc/
      
      	* Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
      	(BUILD_CFLAGS): Likewise.
      	(BUILD_CXXFLAGS): Likewise.
      	(LINKER): Add @NO_PIE_FLAG@.
      	(BUILD_LDFLAGS): Likewise.
      	(libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
      	--enable-default-pie.
      	* common.opt (fPIE): Initialize to -1.
      	(fpie): Likewise.
      	(no-pie): New option.
      	(pie): Replace "Negative(shared)" with "Negative(no-pie)".
      	* configure.ac: Add --enable-default-pie.
      	(NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
      	(NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
      	* defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
      	* gcc.c (NO_PIE_SPEC): New.
      	(PIE_SPEC): Likewise.
      	(NO_FPIE1_SPEC): Likewise.
      	(FPIE1_SPEC): Likewise.
      	(NO_FPIE2_SPEC): Likewise.
      	(FPIE2_SPEC): Likewise.
      	(NO_FPIE2_SPEC): Likewise.
      	(FPIE_SPEC): Likewise.
      	(NO_FPIE_SPEC): Likewise.
      	(NO_FPIC1_SPEC): Likewise.
      	(FPIC1_SPEC): Likewise.
      	(NO_FPIC2_SPEC): Likewise.
      	(FPIC2_SPEC): Likewise.
      	(NO_FPIC2_SPEC): Likewise.
      	(FPIC_SPEC): Likewise.
      	(NO_FPIC_SPEC): Likewise.
      	(NO_FPIE1_AND_FPIC1_SPEC): Likewise.
      	(FPIE1_OR_FPIC1_SPEC): Likewise.
      	(NO_FPIE2_AND_FPIC2_SPEC): Likewise.
      	(FPIE2_OR_FPIC2_SPEC): Likewise.
      	(NO_FPIE_AND_FPIC_SPEC): Likewise.
      	(FPIE_OR_FPIC_SPEC): Likewise.
      	(LD_PIE_SPEC): Likewise.
      	(LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
      	* opts.c (finish_options): Update opts->x_flag_pie if it is -1.
      	* config/darwin.h (PIE_SPEC): Renamed to ...
      	(DARWIN_PIE_SPEC): This.
      	(LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
      	* config/darwin9.h (PIE_SPEC): Renamed to ...
      	(DARWIN_PIE_SPEC): This.
      	* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
      	PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
      	* config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
      	FPIE2_OR_FPIC2_SPEC.
      	* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
      	* config/m68k/openbsd.h (ASM_SPEC): Likewise.
      	* gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
      	* config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
      	* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
      	* config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
      	* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
      	* config/m32r/m32r.h (ASM_SPEC): Likewise.
      	* config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
      	* config/rs6000/linux64.h (ASM_SPEC32): Likewise.
      	* config/rs6000/sysv4.h (ASM_SPEC): Likewise.
      	* config/sparc/freebsd.h (ASM_SPEC): Likewise.
      	* config/sparc/linux.h (ASM_SPEC): Likewise.
      	* config/sparc/linux64.h (ASM_SPEC): Likewise.
      	* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
      	* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
      	* config/sparc/sp-elf.h (ASM_SPEC): Likewise.
      	* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
      	* config/sparc/sparc.h (ASM_SPEC): Likewise.
      	* config/sparc/sysv4.h (ASM_SPEC): Likewise.
      	* config/sparc/vxworks.h (ASM_SPEC): Likewise.
      	* config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
      	FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
      	* config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
      	* config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
      	NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
      	(ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
      	* config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and
      	NO_FPIC_SPEC.
      	* config/mips/gnu-user.h (NO_SHARED_SPECS): Use
      	NO_FPIE_AND_FPIC_SPEC.
      	* config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
      	* config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
      	* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
      	* config/vax/linux.h (ASM_SPEC): Likewise.
      	* doc/install.texi: Document --enable-default-pie.
      	* doc/invoke.texi: Document -no-pie.
      	* config.in: Regenerated.
      	* configure: Likewise.
      
      gcc/ada/
      
      	* gcc-interface/Makefile.in (TOOLS_LIBS): Add @NO_PIE_FLAG@.
      
      libgcc/
      
      	* Makefile.in (CRTSTUFF_CFLAGS): Add $(NO_PIE_CFLAGS).
      
      From-SVN: r223796
      H.J. Lu committed
    • Fix PR66168 · ddd93587
      From-SVN: r223795
      Thomas Preud'homme committed
    • re PR target/66148 (build/genpreds: Internal error: abort in choose_enum_order, at genpreds.c:1006) · 225f4747
      	PR target/66148
      	* config/pa/pa.c (pa_emit_move_sequence): Correct placement of
      	REG_EQUAL note when doing insert.
      
      From-SVN: r223791
      John David Anglin committed
    • pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of "%d" for 'o' operand. · 34319f9a
      	* config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
      	instead of "%d" for 'o' operand.
      
      From-SVN: r223790
      John David Anglin committed
    • Daily bump. · 854440cc
      From-SVN: r223788
      GCC Administrator committed
  2. 27 May, 2015 11 commits