Commit Graph

140207 Commits

Author SHA1 Message Date
Paolo Carlini
157177af99 cmath: Revert fix for libstdc++/58625...
2015-08-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/c_global/cmath: Revert fix for libstdc++/58625, no
	longer necessary (__builtin_signbit is now type-generic).

From-SVN: r227006
2015-08-19 13:17:51 +00:00
Jiong Wang
a3957742f3 [AArch64] Cleanup whitespace in aarch64.c
2015-08-19  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
  whitespaces with tab.

From-SVN: r227005
2015-08-19 13:02:19 +00:00
Florian Weimer
4a5dc5994e Make the stack non-executable in GNAT tools
Due to PR67205, the deeply nested instantiations require trampolines,
which in turn requires an executable stack for the GNAT tools on
architectures such as x86_64.

From-SVN: r227004
2015-08-19 15:00:24 +02:00
Uros Bizjak
3bbce100e9 * ChangeLog: Fix corrupted entry.
From-SVN: r227003
2015-08-19 11:19:08 +02:00
Kyrylo Tkachov
eb9137dfe3 [ARM] Use %wd format for lane printing in bounds_check
* config/arm/arm.c (bounds_check): Use %wd print format
	for HOST_WIDE_INT arguments.

From-SVN: r227002
2015-08-19 08:26:43 +00:00
Trevor Saunders
a79683d5f0 remove more useless typedefs
gcc/c-family/ChangeLog:

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* c-ada-spec.h, c-common.c, c-common.h, c-format.c, c-format.h,
	c-objc.h, c-ppoutput.c, c-pragma.c, c-pragma.h: Remove useless
 typedefs.

gcc/c/ChangeLog:

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* c-aux-info.c, c-parser.c, c-tree.h: Remove useless typedefs.

gcc/cp/ChangeLog:

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* call.c, class.c, cp-tree.h, decl.c, except.c, mangle.c,
	method.c, name-lookup.h, parser.c, parser.h, rtti.c,
	semantics.c, typeck2.c: Remove useless typedefs.

gcc/fortran/ChangeLog:

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* dependency.c, dependency.h, gfortran.h, io.c, module.c,
	parse.h, resolve.c, trans-types.h, trans.h: remove useless
typedefs.

gcc/lto/ChangeLog:

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* lto.h: Remove useless typedefs.

gcc/objc/ChangeLog:

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* objc-act.h, objc-next-runtime-abi-02.c, objc-runtime-hooks.h:
	Remove useless typedefs.

gcc/ChangeLog:

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
	dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
	mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
	signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
	tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
	tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
	tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
	tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
typedefs.

From-SVN: r227001
2015-08-19 02:48:48 +00:00
Trevor Saunders
506868500a remove useless typedefs
gcc/ChangeLog:

2015-08-11  trevor Saunders  <tbsaunde@tbsaunde.org>

	* bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
	function.c, graphite-scop-detection.c, haifa-sched.c,
	ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
	tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
	varasm.c: Remove typedefs of structs.

From-SVN: r227000
2015-08-19 02:48:16 +00:00
GCC Administrator
9e110892a3 Daily bump.
From-SVN: r226998
2015-08-19 00:16:12 +00:00
Bill Schmidt
29ec406adc altivec.h (vec_adde): New define.
[gcc]

2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

	* config/rs6000/altivec.h (vec_adde): New define.
	(vec_addec): Likewise.
	(vec_double): Likewise.
	(vec_bperm): Likewise.
	(vec_gb): Likewise.
	* config/rs6000/rs6000-builtin.def (ADDE): New
	BU_ALTIVEC_OVERLOAD_3.
	(ADDEC): Likewise.
	(DOUBLE): New BU_VSX_OVERLOAD_1.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
	entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
	ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
	VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
	ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
	ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
	ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
	P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
	and P8V_BUILTIN_VEC_VBPERMQ.

[gcc/testsuite]

2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

	* gcc.target/powerpc/altivec-35.c: New test.
	* gcc.target/powerpc/p8vector-builtin-8.c: New test.
	* gcc.target/powerpc/vsx-vector-7.c: New test.

From-SVN: r226995
2015-08-18 22:02:46 +00:00
Jason Merrill
7940cae431 * print-tree.c (print_node): Handle TREE_BINFO.
From-SVN: r226994
2015-08-18 17:29:12 -04:00
Jason Merrill
fc40eb7580 re PR c++/66919 (C++14 ICE during error reporting)
PR c++/66919
	* g++.dg/cpp1y/auto-fn27.C: New.

From-SVN: r226993
2015-08-18 17:29:07 -04:00
Jason Merrill
8e43da810d DR 1155
DR 1155
	* pt.c (convert_nontype_argument): Allow internal linkage in C++11
	and up.

From-SVN: r226992
2015-08-18 17:29:01 -04:00
Francois-Xavier Coudert
61717a4593 re PR middle-end/36757 (__builtin_signbit should be type-generic)
PR middle-end/36757

	* builtins.c (expand_builtin_signbit): Add asserts to make sure
	we can expand BUILT_IN_SIGNBIT inline.
	* builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
	* doc/extend.texi: Document the type-generic __builtin_signbit.

	* c-common.c (check_builtin_function_arguments): Add check
	for BUILT_IN_SIGNBIT argument.

	* gcc.dg/builtins-error.c: Add checks for __builtin_signbit.
	* gcc.dg/tg-tests.h: Add checks for __builtin_signbit.

From-SVN: r226990
2015-08-18 20:07:57 +00:00
Richard Sandiford
a1c045caab re PR rtl-optimization/67218 (Combine incorrectly folds (double) (float) (unsigned))
gcc/
	PR rtl-optimization/67218
	* simplify-rtx.c (exact_int_to_float_conversion_p): New function.
	(simplify_unary_operation_1): Use it.

gcc/testsuite/
	PR rtl-optimization/67218
	* gcc.c-torture/execute/ieee/pr67218.c,
	gcc.target/aarch64/fcvt_int_float_double1.c,
	gcc.target/aarch64/fcvt_int_float_double2.c,
	gcc.target/aarch64/fcvt_int_float_double3.c,
	gcc.target/aarch64/fcvt_int_float_double4.c,
	gcc.target/aarch64/fcvt_uint_float_double1.c,
	gcc.target/aarch64/fcvt_uint_float_double2.c,
	gcc.target/aarch64/fcvt_uint_float_double3.c,
	gcc.target/aarch64/fcvt_uint_float_double4.c: New tests.

From-SVN: r226987
2015-08-18 19:04:41 +00:00
Jonathan Wakely
f641b2d6bb re PR c++/67216 (false is still a null pointer constant)
PR c++/67216
	* testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc:
	Fix use of safe-bool idiom that isn't valid in C++11.

From-SVN: r226986
2015-08-18 19:04:48 +01:00
Jonathan Wakely
e92e7c15e1 * include/bits/ptr_traits.h: Include <bits/move.h> for addressof.
From-SVN: r226985
2015-08-18 19:04:42 +01:00
Jonathan Wakely
4c2b10d6a4 re PR libstdc++/67066 (libstdc++-v3/src/filesystem/dir.cc fails to compile with --enable-concept-checks)
PR libstdc++/67066
	* doc/xml/manual/configure.xml (manual.intro.setup.configure): Add
	caveats for --enable-concept-checks. Improve link text.
	* doc/xml/manual/diagnostics.xml (std.diagnostics.concept_checking):
	Clarify caveats.
	* doc/html/*: Regenerate.
	* include/bits/stl_deque.h (deque): Only use concept checks in C++03.
	* include/bits/stl_stack.h (stack): Likewise.
	* include/bits/stl_vector.h (vector): Likewise.

From-SVN: r226984
2015-08-18 19:04:32 +01:00
Matthew Wahab
f6e93c21e7 atomic-comp-swap-release-acquire.c: Adjust dg-options to disable LSE extensions.
* gcc.target/aarch64/atomic-comp-swap-release-acquire.c: Adjust
	dg-options to disable LSE extensions.
	* gcc.target/aarch64/atomic-op-acq_rel.c: Likewise.
	* gcc.target/aarch64/atomic-op-acquire.c: Likewise.
	* gcc.target/aarch64/atomic-op-char.c: Likewise.
	* gcc.target/aarch64/atomic-op-consume.c: Likewise.
	* gcc.target/aarch64/atomic-op-imm.c: Likewise.
	* gcc.target/aarch64/atomic-op-int.c: Likewise.
	* gcc.target/aarch64/atomic-op-long.c: Likewise.
	* gcc.target/aarch64/atomic-op-relaxed.c: Likewise.
	* gcc.target/aarch64/atomic-op-seq_cst.c: Likewise.
	* gcc.target/aarch64/atomic-op-release.c: Likewise.
	* gcc.target/aarch64/atomic-op-short.c: Likewise.
	* gcc.target/aarch64/sync-comp-swap.c: Likewise.
	* gcc.target/aarch64/sync-op-acquire.c: Likewise.
	* gcc.target/aarch64/sync-op-full.c: Likewise.
	* gcc.target/aarch64/sync-op-release.c: Likewise.

From-SVN: r226979
2015-08-18 16:10:10 +00:00
Paolo Carlini
329524f568 re PR c++/67160 (static_assert feature test macro)
c-family/
2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67160
	* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_static_assert value
	in c++1z mode.

testsuite/
2015-08-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67160
	* g++.dg/cpp1z/feat-cxx1z.C: New.

From-SVN: r226972
2015-08-18 14:38:51 +00:00
Marek Polacek
41dd7cf747 re PR middle-end/67222 (ICE in gimple_call_arg with bogus posix_memalign)
PR middle-end/67222
	* gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
	if the call isn't valid.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
	gimple_call_builtin_p.
	(call_may_clobber_ref_p_1): Likewise.
	(stmt_kills_ref_p): Likewise.

	* gcc.dg/torture/pr67222.c: New test.

From-SVN: r226969
2015-08-18 13:41:27 +00:00
Robert Suchanek
ec8a2131b6 [MIPS] Fix register renaming in the interrupt handlers.
gcc/
	* config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
	* config/mips/mips.c (mips_hard_regno_rename_ok): New function.
	(mips_hard_regno_scratch_ok): Likewise.
	(TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
	* config/mips/mips.h (HARD_REGNO_RENAME_OK): New.

gcc/testsuite/
	* gcc.target/mips/interrupt_handler-bug-1.c: New test.

From-SVN: r226968
2015-08-18 12:42:12 +00:00
Bin Cheng
7b008bbc0c tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
* tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
	(determine_value_range): Call refine_value_range_using_guard for
	each loop initial condition to improve value range.

	gcc/testsuite/ChangeLog
	* gcc.dg/tree-ssa/loop-bound-1.c: New test.
	* gcc.dg/tree-ssa/loop-bound-3.c: New test.
	* gcc.dg/tree-ssa/loop-bound-5.c: New test.

From-SVN: r226966
2015-08-18 07:57:54 +00:00
Max Filippov
991995c4e7 xtensa: fix _Unwind_GetCFA
Returning context->cfa in _Unwind_GetCFA makes CFA point one stack frame
higher than what was actually used by code at context->ra. This results
in invalid CFA value in signal frames and premature unwinding completion
in forced unwinding used by uClibc NPTL thread cancellation.
Returning context->sp from _Unwind_GetCFA makes all CFA values valid and
matching code that used them.

2015-08-18  Max Filippov  <jcmvbkbc@gmail.com>
libgcc/
	* config/xtensa/unwind-dw2-xtensa.c (_Unwind_GetCFA): Return
	context->sp instead of context->cfa.

From-SVN: r226964
2015-08-18 01:08:22 +00:00
Max Filippov
0e19db59e2 xtensa: use unwind-dw2-fde-dip instead of unwind-dw2-fde
This allows having exception cleanup code in binaries that don't
register their unwind tables.

2015-08-18  Max Filippov  <jcmvbkbc@gmail.com>
libgcc/
	* config/xtensa/t-windowed (LIB2ADDEH): Replace unwind-dw2-fde
	with unwind-dw2-fde-dip.

From-SVN: r226963
2015-08-18 01:07:10 +00:00
Max Filippov
b6ac5f6231 xtensa: reimplement register spilling
Spilling windowed registers in userspace is much easier, more portable,
less error-prone and equally effective as in kernel. Now that register
spilling syscall is considered obsolete in the xtensa linux kernel
replace it with CALL12 followed by series of ENTRY in libgcc.

2015-08-18  Max Filippov  <jcmvbkbc@gmail.com>
libgcc/
	* config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill): Use
	CALL12 followed by series of ENTRY to spill windowed registers.
	(__xtensa_nonlocal_goto): Call __xtensa_libgcc_window_spill
	instead of making linux spill syscall.

From-SVN: r226962
2015-08-18 01:05:44 +00:00
GCC Administrator
3b6e040122 Daily bump.
From-SVN: r226961
2015-08-18 00:16:16 +00:00
Matthew Fortune
bca0c98129 mips.exp: Redefine isa variable which is referenced in later code.
gcc/testsuite/
	* gcc.target/mips/mips.exp (mips-dg-options): Redefine isa
	which is used in later code.

From-SVN: r226957
2015-08-17 22:35:19 +00:00
Paolo Carlini
5916cfd01b re PR c++/67216 (false is still a null pointer constant)
/cp
2015-08-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67216
	* call.c (null_ptr_cst_p): In C++11 return 'false' for 'false'.

/testsuite
2015-08-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67216
	* g++.dg/cpp0x/nullptr34.C: New.
	* g++.dg/warn/Wconversion2.C: Adjust.
	* g++.dg/warn/Wnull-conversion-1.C: Likewise.
	* g++.old-deja/g++.other/null3.C: Likewise.

	* g++.dg/cpp0x/pr51313.C: Adjust.

From-SVN: r226956
2015-08-17 21:40:07 +00:00
Jason Merrill
b361a15ff6 re PR c++/67244 (internal compiler error: in gimplify_var_or_parm_decl, at gimplify.c:1801)
PR c++/67244
	* pt.c (tsubst_copy_and_build): Call insert_pending_capture_proxies.

From-SVN: r226950
2015-08-17 14:42:09 -04:00
Jason Merrill
ceaaf873e9 re PR c++/67104 (Constant expression factory function initializes std::array with static storage duration strangely)
PR c++/67104
	* constexpr.c (array_index_cmp, find_array_ctor_elt): New.
	(cxx_eval_array_reference, cxx_eval_store_expression): Use them.

From-SVN: r226949
2015-08-17 14:42:04 -04:00
Jason Merrill
c75ce5301b constexpr.c (cxx_eval_store_expression): Don't set CONSTRUCTOR_NO_IMPLICIT_ZERO if we have an enclosing CONSTRUCTOR...
* constexpr.c (cxx_eval_store_expression): Don't set
	CONSTRUCTOR_NO_IMPLICIT_ZERO if we have an enclosing CONSTRUCTOR
	without it.
	(cxx_eval_array_reference): Check it.

From-SVN: r226948
2015-08-17 14:41:59 -04:00
Jason Merrill
5c563482ac * except.c (check_noexcept_r): Assert that fn is POINTER_TYPE_P.
From-SVN: r226947
2015-08-17 14:40:57 -04:00
Joseph Myers
4e1492b7cd * da.po: Update.
From-SVN: r226944
2015-08-17 18:13:16 +01:00
Aldy Hernandez
0e61382e2f * config/i386/i386.c: Remove include of fibheap.h.
From-SVN: r226943
2015-08-17 16:28:13 +00:00
Marek Polacek
4ee55665cd c-pretty-print.c (pp_c_cv_qualifiers): Remove code dealing with whitespaces before qualifier names.
* c-pretty-print.c (pp_c_cv_qualifiers): Remove code dealing
	with whitespaces before qualifier names.

From-SVN: r226939
2015-08-17 14:18:04 +00:00
Richard Biener
28251e2ce1 re PR tree-optimization/67221 (ICE at -Os and above on x86_64-linux-gnu: Segmentation fault (program cc1))
2015-08-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67221
	* tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
	(sccvn_dom_walker::before_dom_children): Mark backedges of
	non-executable blocks as not executable.

	* gcc.dg/torture/pr67221.c: New testcase.

From-SVN: r226938
2015-08-17 14:17:33 +00:00
David Sherwood
6c825cd46b arm.c (neon_element_bits): Replace call to GET_MODE_BITSIZE (GET_MODE_INNER (m)) with...
* config/arm/arm.c (neon_element_bits): Replace call to
        GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
        * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
        (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
        (neon_vdup_lane<mode>): Likewise.
        * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
        (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
        (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
        * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
        * config/spu/spu.c (arith_immediate_p): Likewise.
        * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
        * expr.c (expand_expr_real_2): Likewise.
        * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
        * simplify-rtx.c (simplify_immed_subreg): Likewise.
        * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
        * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
        New variable.
        * fold-const.c (fold_binary_loc): Replace call to
        GET_MODE_PRECISION (GET_MODE_INNER (m)) with
        GET_MODE_UNIT_PRECISION (m).

From-SVN: r226936
2015-08-17 11:06:34 +00:00
Mike Stump
48efbbe8a0 [ARM] arm memcpy of aligned data
2015-08-17  Mike Stump  <mikestump@comcast.net>

	* config/arm/arm.c (arm_block_move_unaligned_straight):
	Emit normal move instead of unaligned load when source or destination
	are appropriately aligned.

2015-08-17 Mike Stump  <mikestump@comcast.net>
           Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* gcc.target/arm/memcpy-aligned-1.c: New test.

Co-Authored-By: Kyrylo Tkachov <kyrylo.tkachov@arm.com>

From-SVN: r226935
2015-08-17 09:39:58 +00:00
Richard Biener
d202f9bdb4 re PR tree-optimization/16107 (missed optimization with some math function builtins)
2015-08-17  Richard Biener  <rguenther@suse.de>
	    Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	PR middle-end/16107
	* match.pd (div (coss (op @0) : New simplifier.


Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>

From-SVN: r226934
2015-08-17 04:47:45 +00:00
GCC Administrator
df2c2c54f6 Daily bump.
From-SVN: r226932
2015-08-17 00:16:14 +00:00
Francois-Xavier Coudert
8c07a5f4b4 re PR fortran/54656 (ICE with software REAL(16) for NORM2)
PR fortran/54656

	* trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Add decl
	for quadruple precision BUILT_IN_SQRT.

	* gfortran.dg/norm_4.f90: Rename to...
	* gfortran.dg/norm2_4.f90: this.
	* gfortran.dg/norm2_5.f90: New test.

From-SVN: r226929
2015-08-16 19:47:02 +00:00
Francois-Xavier Coudert
c541d5217e trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type generic BUILT_IN_SIGNBIT.
* trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type
	generic BUILT_IN_SIGNBIT.
	(conv_intrinsic_ieee_copy_sign): Likewise.
	* f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_ISINF,
	BUILT_IN_ISINF_SIGN, BUILT_IN_SIGNBIT, BUILT_IN_ISLESS,
	BUILT_IN_ISLESSGREATER, BUILT_IN_ISGREATER. Remove non-type generic
	variants of BUILT_IN_SIGNBIT.
	* mathbuiltins.def: Remove SIGNBIT.

From-SVN: r226924
2015-08-16 16:37:18 +00:00
Francois-Xavier Coudert
9f801fd79a re PR libfortran/41387 (OPEN, STATUS='NEW' of a symbolic link to a non-existing file fails.)
PR fortran/41387
	* gfortran.texi: New section "File operations on symbolic links".

From-SVN: r226923
2015-08-16 12:47:15 +00:00
GCC Administrator
2620710ac1 Daily bump.
From-SVN: r226915
2015-08-16 00:16:13 +00:00
Ian Lance Taylor
68bac64063 cp-demangle.c (d_abi_tags): Preserve di->last_name across any ABI tags.
* cp-demangle.c (d_abi_tags): Preserve di->last_name across any
	ABI tags.

From-SVN: r226910
2015-08-15 13:23:30 +00:00
Jason Merrill
60349f15cc re PR c++/65974 (Bogus deprecated-declarations warnings for inline definitions of deprecated virtual methods)
PR c++/65974
	* decl2.c (mark_vtable_entries): Suppress -Wdeprecated.

From-SVN: r226908
2015-08-15 03:59:26 -04:00
GCC Administrator
25a20a1c03 Daily bump.
From-SVN: r226907
2015-08-15 00:16:12 +00:00
Alexandre Oliva
1f9ceff111 [PR64164] Drop copyrename, use coalescible partition as base when optimizing.
for  gcc/ChangeLog

	PR rtl-optimization/64164
	PR bootstrap/66978
	PR middle-end/66983
	PR rtl-optimization/67000
	PR middle-end/67034
	PR middle-end/67035
	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
	* tree-ssa-copyrename.c: Removed.
	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
	-ftree-coalesce-vars.
	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
	* common.opt (ftree-copyrename): Ignore.
	(ftree-coalesce-inlined-vars): Likewise.
	* doc/invoke.texi: Remove the ignored options above.
	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
	* tree-ssa-coalesce.h: ... here.
	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
	headers required by it.
	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
	across variables when flag_tree_coalesce_vars.  Check register
	use and promoted modes to allow coalescing.  Do not coalesce
	maybe-byref parms with SSA_NAMEs of other variables, or
	anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
	with its member functions to tree-ssa-coalesce.c.
	(var_map_base_init): Likewise.  Renamed to
	compute_samebase_partition_bases.
	(partition_view_normal): Drop want_bases parameter.
	(partition_view_bitmap): Likewise.
	* tree-ssa-live.h: Adjust declarations.
	* tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
	default defs at the entry point.
	(dump_part_var_map): New.
	(compute_optimized_partition_bases): New, called by...
	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
	of compute_samebase_partition_bases.  Adjust.
	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
	* cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
	(ssa_default_def_partition): New.
	(get_rtl_for_parm_ssa_default_def): New.
	(align_local_variable, add_stack_var): Support anonymous SSA
	names.
	(defer_stack_allocation): Likewise.  Declare earlier.
	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
	Do no record deferred-allocation marker in
	SA.partition_to_pseudo.
	(expand_stack_vars): Adjust check for the marker in it.
	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
	redundant MEM attr setting.
	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
	from...
	(expand_one_stack_var): ... this.  New wrapper to check and
	skip already expanded SSA partitions.
	(record_alignment_for_reg_var): New, factored out of...
	(expand_one_var): ... this.
	(expand_one_ssa_partition): New.
	(adjust_one_expanded_partition_var): New.
	(expand_one_register_var): Check and skip already expanded SSA
	partitions.
	(expand_used_vars): Don't create DECLs for anonymous SSA
	names.  Expand all SSA partitions, then adjust all SSA names.
	(pass::execute): Replace the loops that set
	SA.partition_to_pseudo from partition leaders and cleared
	DECL_RTL for multi-location variables, and that which used to
	rename vars and set attrs, with one that clears DECL_RTL and
	checks that PARMs and RESULTs default_defs match DECL_RTL.
	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
	* emit-rtl.c: Include stor-layout.h.
	(set_reg_attrs_for_parm): Handle NULL decl.
	(set_reg_attrs_for_decl_rtl): Take mode from expression if
	it's not a DECL.
	* stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
	rather than its possibly-NULL DECL.
	* explow.c (promote_ssa_mode): New.
	* explow.h (promote_ssa_mode): Declare.
	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
	(read_complex_part): Export.
	* expr.h (read_complex_part): Declare.
	* cfgexpand.h (parm_maybe_byref_p): Declare.
	* function.c: Include cfgexpand.h.
	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
	(use_register_for_parm_decl): Wrapper for the above to
	special-case the result_ptr.
	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
	(split_complex_args): Take assign_parm_data_all argument.
	Pass it to rtl_for_parm.  Set up rtl and context for split
	args.  Reset complex parm before fetching its default decl
	rtl.
	(assign_parms_unsplit_complex): Use the default-def complex
	parm rtl if it matches the components.
	(assign_parms_augmented_arg_list): Adjust.
	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
	multiple locations.  Recognize split complex args.
	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
	(assign_parm_setup_block): Prefer SSA-assigned location, and
	fill in its address if the memory location of a maybe-byref
	parm was not assigned by cfgexpand.
	(assign_parm_setup_reg): Likewise.  Adjust its mode as
	needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
	sure passed_pointer parms don't need conversion.  Copy address
	or value as needed.
	(assign_parm_setup_stack): Prefer SSA-assigned location.
	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
	rtl before testing for pointer bounds.  Special-case result_ptr.
	(expand_function_start): Maybe reset DECL_RTL of result.
	Prefer SSA-assigned location for result and static chain.
	Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
	to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
	anonymous SSA names.  Use promote_ssa_mode.
	(get_temp_reg): Likewise.
	(remove_ssa_form): Adjust.
	* stor-layout.c (layout_decl): Don't set mem attributes of
	non-MEMs.
	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
	and get its reg_usage for reg invalidation.
	(compute_bb_dataflow): Pass it insn.
	(emit_notes_in_bb): Likewise.

for  gcc/testsuite/ChangeLog

	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
	* gcc.dg/ssp-1.c: Make counter a register.
	* gcc.dg/ssp-2.c: Likewise.
	* gcc.dg/torture/parm-coalesce.c: New.

From-SVN: r226901
2015-08-14 18:51:50 +00:00
Marek Polacek
d7e90b6653 * tree-core.h (tree_base): Fix typo.
From-SVN: r226900
2015-08-14 17:59:41 +00:00
Ian Lance Taylor
624c7bbf6c compiler: Report unnamed receiver types.
gccgo used to crash when presented with an invalid receiver type in a
    method.  Instead, unnamed receiver types should report an error.
    
    Fixes golang/go#11557.
    
    Reviewed-on: https://go-review.googlesource.com/13245

From-SVN: r226899
2015-08-14 17:26:27 +00:00