Commit Graph

113407 Commits

Author SHA1 Message Date
Jason Merrill
2c6f792709 re PR c++/986 (g++ misses warning for reference on temporary that invokes undefined behaviour)
PR c++/986
	* call.c (set_up_extended_ref_temp): Warn about references
	bound to non-static reference members.
	* init.c (perform_member_init): Pass in the member.

From-SVN: r181334
2011-11-13 00:09:36 -05:00
Gerald Pfeifer
afe5cf2190 * using.xml: Use GNU/Linux.
From-SVN: r181333
2011-11-13 04:27:22 +00:00
Jason Merrill
d0ad58f94e re PR c++/51060 (Temporary object stack space is not re-used)
PR c++/51060
	* gimplify.c (gimplify_target_expr): Add a clobber to the cleanup.
	(gimplify_modify_expr): Don't try to simplify it.
	* cp/cp-gimplify.c (cp_gimplify_expr): Leave clobbers alone.

From-SVN: r181332
2011-11-12 19:44:39 -05:00
GCC Administrator
f2628dce24 Daily bump.
From-SVN: r181331
2011-11-13 00:18:44 +00:00
Dimitrios Apostolou
c9febe1567 re PR bootstrap/51094 (Bootstrap failure at revision 181279 on non-ELF targets)
PR bootstrap/51094
	* config/elfos.h (STRING_ASM_OP): Define.
	* varasm.c (default_elf_asm_output_limited_string): Use it.

From-SVN: r181327
2011-11-12 16:40:07 -05:00
Dimitrios Apostolou
123cd4632d re PR bootstrap/51094 (Bootstrap failure at revision 181279 on non-ELF targets)
PR bootstrap/51094
	* gcc/configure.ac: Check for stpcpy declaration.
	* system.h: Declare it if not.
	* config.in, configure: Regenerate.

From-SVN: r181326
2011-11-12 16:39:59 -05:00
Richard Henderson
f77dca5d23 ppc-linux: Fix call to _Unwind_SetGRPtr
* config/rs6000/linux-unwind.h (frob_update_context): Properly
        cast the pointer argument to _Unwind_SetGRPtr.

From-SVN: r181325
2011-11-12 09:20:58 -08:00
Richard Henderson
17fd74dde3 rs6000: fix*_trunc insns use nonimmediate_operand
* config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
        nonimmediate_operand for the destination.
        (fixuns_trunc<SFDF>si2_stfiwx): Likewise.

From-SVN: r181324
2011-11-12 09:19:39 -08:00
Richard Henderson
f0409b19f5 builtins.c (expand_builtin_compare_and_swap): If target is const0, don't pass the target to expand_atomic_compare_and_swap.
* builtins.c (expand_builtin_compare_and_swap): If target is const0,
        don't pass the target to expand_atomic_compare_and_swap.
        (expand_builtin_atomic_compare_exchange): Likewise.

From-SVN: r181323
2011-11-12 09:17:54 -08:00
Richard Henderson
dab37c689e sh-linux: Install __sync libfuncs.
* config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
        * config/sh/sh.c (sh_init_sync_libfuncs): New.

From-SVN: r181322
2011-11-12 09:17:45 -08:00
Jonathan Wakely
306133e3d4 re PR libstdc++/51083 (TR1 [tr.c99.cmath.over] and C++11 [cmplx.over] overloads not constrained)
PR libstdc++/51083
	* include/ext/type_traits.h (__promote): Only define __type member
	for integral and floating point types, to prevent math functions
	participating in overload resolution for other types.
	(__promote_2, __promote_3, __promote_4): Use __promote in default
	template argument values, so deduction only succeeds for integral and
	floating point types.
	* testsuite/26_numerics/cmath/51083.cc: New.
	* testsuite/26_numerics/complex/51083.cc: New.
	* testsuite/tr1/8_c_compatibility/cmath/51083.cc: New.
	* testsuite/tr1/8_c_compatibility/complex/51083.cc: New.

From-SVN: r181321
2011-11-12 15:57:03 +00:00
Richard Henderson
33a55f2919 hppa: Install __sync libfuncs for linux.
* config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
        * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
        * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.

From-SVN: r181320
2011-11-12 07:39:44 -08:00
Iain Sandoe
5f41422fc7 Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link s-oscons.ads.
ada:

	* gcc-interface/Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link
	s-oscons.ads.
	(OSCONS_CPP, OSCONS_EXTRACT): New.
	(./bldtools/oscons/xoscons): New Target.
	($(RTSDIR)/s-oscons.ads): New Target.
	(gnatlib): Depend on  $(RTSDIR)/s-oscons.ads.
	* gcc-interface/Make-lang.in (ada/s-oscons.ads) Remove as dependency.
	* Make-generated.in: Remove machinery to generate xoscons and
	ada/s-oscons.ads.

libada:

	Makefile.in: Change dependency on oscons to depend on the generator
	tool.

From-SVN: r181319
2011-11-12 15:06:18 +00:00
Uros Bizjak
0eb5d9c427 gcc-simulate-thread.exp (simulate-thread): Do not run on alpha*-*-linux* targets.
* lib/gcc-simulate-thread.exp (simulate-thread): Do not run on
	alpha*-*-linux* targets.

From-SVN: r181318
2011-11-12 15:35:31 +01:00
Iain Sandoe
173a8c50f1 re PR testsuite/51059 (FAIL: gcc.misc-tests/gcov-14.c (test for excess errors) on *-apple-darwin*)
gcc/testsuite:

	PR testsuite/51059
	* gcc.misc-tests/gcov-14.c (dg-options): Force flat namespace for
	Darwin targets and allow external symbols to be undefined.

From-SVN: r181317
2011-11-12 14:30:45 +00:00
Iain Sandoe
220c688a77 re PR target/45233 (FAIL: gcc.c-torture/compile/pr44707.c)
gcc:

	PR target/45233
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
	Only expand a symbol ref. into an access when the entity is defined
	in the TU.

From-SVN: r181315
2011-11-12 14:12:26 +00:00
Iain Sandoe
76d29410c7 objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality for Objective-C m32.
gcc/obj:

	* objc-next-runtime-abi-01.c (objc_eh_personality): Use gcc personality
	for Objective-C m32.

From-SVN: r181312
2011-11-12 13:54:33 +00:00
Jan Hubicka
c481ae7f87 re PR bootstrap/50822 (Solaris/SPARC bootstrap failure with Sun as: invalid assembler for ios_init.cc)
PR bootstrap/50822
	* cgraphunit.c (output_weakrefs): Output really only weakrefs.

From-SVN: r181311
2011-11-12 13:19:55 +00:00
Andrey Belevantsev
bcf83e0029 MAINTAINERS (Reviewers): Keep the list sorted.
* MAINTAINERS (Reviewers): Keep the list sorted.

From-SVN: r181310
2011-11-12 16:11:39 +04:00
Nathan Sidwell
eeabee0aac gcov.c (struct name_map): New.
* gcov.c (struct name_map): New.
	(names, n_names, a_names): New global vars.
	(print_usage): Adjust usage.
	(generate_results): Canonicalize main file name.
	(release_structures): Adjust.
	(name_search, name_sort): New callbacks.
	(find_source): Look for and create a canonical name.
	(canonicalize_name): New.
	(make_gcov_file_name): Reimplement and fix mangling.
	(mangle_name): New.
	* doc/gcov.texi: Update documentation about path preservation.

	testsuite/
	* gcc.misc-tests/gcov-15.c: New.

From-SVN: r181309
2011-11-12 11:35:42 +00:00
Eric Botcazou
926706f828 Fix recent entry
From-SVN: r181308
2011-11-12 08:57:49 +00:00
David S. Miller
49db0ca8f6 Fix Linux/sparc build after generic asm output optimizations.
* config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
	* config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete.

From-SVN: r181307
2011-11-11 17:05:07 -08:00
GCC Administrator
daf6d24fd0 Daily bump.
From-SVN: r181306
2011-11-12 00:18:00 +00:00
Ian Lance Taylor
34277c5228 Introduce G structure and thread-local global g.
From-SVN: r181301
2011-11-11 21:02:48 +00:00
Jakub Jelinek
292b44341c i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper): New prototype.
* config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper):
	New prototype.
	* config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New
	function.
	(ix86_expand_epilogue): Use it.
	* config/i386/i386.md (return, simple_return): Call it in the
	expanders.

From-SVN: r181300
2011-11-11 20:58:10 +01:00
Jakub Jelinek
bad2545327 re PR tree-optimization/51091 (FAIL: gcc.dg/tree-ssa/stdarg-2.c scan-tree-dump stdarg)
PR tree-optimization/51091
	* tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
	rhs also in the va_list_simple_ptr case.

From-SVN: r181299
2011-11-11 20:57:23 +01:00
Jakub Jelinek
dd34c087ff re PR tree-optimization/51058 (ICE: gimple check: expected gimple_assign(error_mark), have gimple_call() in gimple_assign_rhs_code, at gimple.h:1992)
PR tree-optimization/51058
	* tree-vect-slp.c (vect_remove_slp_scalar_calls): New function.
	(vect_schedule_slp): Call it.
	* tree-vect-stmts.c (vectorizable_call): If slp_node != NULL,
	don't replace scalar calls with setting of their lhs to zero here.

	* gcc.dg/vect/fast-math-vect-call-1.c: Add f4 test.
	* gfortran.dg/vect/pr51058-2.f90: New test.

From-SVN: r181298
2011-11-11 20:56:13 +01:00
Jakub Jelinek
22d8712ac4 re PR tree-optimization/51074 (No constant folding performed for VEC_PERM_EXPR, VEC_INTERLEAVE*EXPR, VEC_EXTRACT*EXPR)
PR tree-optimization/51074
	* fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions.
	(fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR,
	VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and
	VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands.
	(fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or
	CONSTRUCTOR operands.
	* tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary
	expressions.
	* tree-vect-generic.c (lower_vec_perm): Mask sel_int elements
	to 0 .. 2 * elements - 1.

From-SVN: r181297
2011-11-11 20:55:23 +01:00
Richard Henderson
0540978881 Implement omp atomic load and store.
* gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed.
	(dump_gimple_omp_atomic_store): Likewise.
	* optabs.c (can_atomic_exchange_p): New.
	* optabs.h (can_atomic_exchange_p): Declare.
	* omp-low.c (expand_omp_atomic_load): Implement.
	(expand_omp_atomic_store): Likewise.
	(expand_omp_atomic): Update for new arguments to load/store.

From-SVN: r181296
2011-11-11 09:52:11 -08:00
Ed Smith-Rowland
f05eec4a0d re PR c++/50976 ([C++0x] literal operator with unsigned long long parameter not accepted)
PR c++/50976
	* typeck.c (check_literal_operator_args): Reorganize test for string
	operators so size_t search depends on finding string first.

From-SVN: r181292
2011-11-11 11:51:41 -05:00
Rainer Orth
902828f01c Fix SPU libgcc build
* config/spu/t-elf (LIB2ADD): Use LIB2FUNCS_EXCLUDE instead.

From-SVN: r181291
2011-11-11 16:49:22 +00:00
Janne Blomqvist
c492b9d035 PR 51090 Fix r181288 to conform to GNU style
From-SVN: r181290
2011-11-11 18:38:11 +02:00
Eric Botcazou
ba5c3b2448 cprop.c: Adjust outdated comments throughout.
* cprop.c: Adjust outdated comments throughout.
	(hash_scan_set): Rename PAT parameter into SET.
	(cprop_pavloc): Rename into...
	(cprop_avloc): ...this.
	(cprop_absaltered): Rename into...
	(cprop_kill): ...this.
	(alloc_cprop_mem): Adjust for above renaming.
	(free_cprop_mem): Likewise.
	(compute_cprop_data): Likewise.
	(compute_local_properties): Rename TRANSP parameter into KILL and
	adjust throughout.  Rework comments.
	(try_replace_reg): Fix long line.
	(cprop_jump): Likewise.
	(constprop_register): Fix prototype and take INSN last.
	(cprop_insn): Adjust calls to above function.  Fix long lines.
	(bypass_block): Likewise.
	(one_cprop_pass): Likewise.

From-SVN: r181289
2011-11-11 16:34:16 +00:00
Janne Blomqvist
ee66e604c3 PR 51090 Check that getenv result != NULL before proceeding.
2011-11-11  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/51090
	* runtime/main.c (find_addr2line): NULL check before proceeding.

From-SVN: r181288
2011-11-11 18:31:47 +02:00
Uros Bizjak
13ced9bb88 elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.
* config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.
	(ELF_STRING_LIMIT): Rename from STRING_LIMIT.

From-SVN: r181287
2011-11-11 17:24:55 +01:00
Jason Merrill
9a9933834d varasm.c (default_elf_asm_output_limited_string): #ifdef ELF_ASCII_ESCAPES.
* varasm.c (default_elf_asm_output_limited_string): #ifdef
	ELF_ASCII_ESCAPES.
	(default_elf_asm_output_ascii): Likewise.

From-SVN: r181286
2011-11-11 10:27:02 -05:00
Uros Bizjak
5da6a3837f re PR target/50762 (ICE: in extract_insn, at recog.c:2137 (unrecognizable insn))
PR target/50762
	* config/i386/constraints.md (j): New address constraint.
	* config/i386/predicates.md (lea_address_operand): Redefine as
	special predicate.
	* config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
	(*lea_4_zext): Ditto.

From-SVN: r181285
2011-11-11 15:56:00 +01:00
Andrey Belevantsev
3fec7f1028 MAINTAINERS (Selective Scheduling): Add myself as a reviewer.
2011-11-11  Andrey Belevantsev  <abel@ispras.ru>

	* MAINTAINERS (Selective Scheduling): Add myself as a reviewer.

From-SVN: r181284
2011-11-11 13:19:21 +04:00
David S. Miller
2b38137d3d Revert sparc vec_init improvements as they cause 64-bit regressions.
gcc/

	Revert
	2011-11-05  David S. Miller  <davem@davemloft.net>

From-SVN: r181283
2011-11-11 00:23:34 -08:00
Jakub Jelinek
ca3e7c9ffd opts-common.c (generate_canonical_option): Free opt_text it it has been allocated here and not stored anywhere.
* opts-common.c (generate_canonical_option): Free opt_text
	it it has been allocated here and not stored anywhere.

From-SVN: r181282
2011-11-11 09:15:56 +01:00
Jakub Jelinek
d3cfd39e65 tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN vector.
* tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
	vector.
	(vect_create_new_slp_node): Don't allocate node before checking stmt
	type.
	(vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
	free def_stmts vectors and additionally free oprnd_info.
	(vect_build_slp_tree): Adjust callers.  Call it even if
	stop_recursion.  If vect_create_new_slp_node or
	vect_build_slp_tree fails, properly handle freeing memory.
	If it succeeded, clear def_stmts in oprnd_info.

From-SVN: r181281
2011-11-11 09:10:07 +01:00
Jason Merrill
4774d267d3 re PR c++/50372 ([C++0x] pointers to static functions should be valid template parameters)
PR c++/50372
	* pt.c (convert_nontype_argument_function): Allow decls with
	internal linkage in C++11.
	(convert_nontype_argument): Likewise.

From-SVN: r181280
2011-11-10 23:29:04 -05:00
Dimitrios Apostolou
5e3929ed1b final.c, output.h (fprint_whex, [...]): New functions serving as fast replacements for fprintf() integer to string...
* final.c, output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul):
	New functions serving as fast replacements for fprintf() integer
	to string conversions. They were used in the following changes.
	* final.c (sprint_ul_rev): Internal helper for the above.
	(output_addr_const): case CONST_INT: don't use fprintf().
	* elfos.h (ASM_GENERATE_INTERNAL_LABEL): Don't use sprintf("%u"),
	use sprint_ul() and stpcpy() which are much faster.
	(TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
	(ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Are the old ESCAPES and
	STRING_LIMIT macros.
	(ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Macros now just
	call respective functions that provide the same
	functionality. Those are default_elf_asm_output_limited_string()
	and default_elf_asm_output_ascii() in varasm.c.
	* varasm.c: Fixed some whitespace inconsistencies.
	(default_elf_asm_output_limited_string)
	(default_elf_asm_output_ascii): The above macros from elfos.h are
	implemented here as these functions, avoiding superfluous calls to
	fprintf().
	(default_elf_internal_label): Hook for
	targetm.asm_out.internal_label and ASM_OUTPUT_DEBUG_LABEL.
	* i386.c: Don't call fprintf("%u") but fprint_ul() instead.
	* defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL):
	Expanded the macros on multiple lines for readability.
	(ASM_OUTPUT_LABELREF): Have two calls to fputs() instead of one to
	asm_fprintf().
	* dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data)
	(dw2_asm_data_uleb128, dw2_asm_delta_uleb128)
	(dw2_asm_delta_sleb128): Convert fprintf() calls to the new
	faster functions.
	* dwarf2out.c (dwarf2out_source_line): Convert fprintf() calls to
	the new faster functions.

From-SVN: r181279
2011-11-10 23:00:39 -05:00
GCC Administrator
c63ee1b7f0 Daily bump.
From-SVN: r181278
2011-11-11 00:18:44 +00:00
Andrew MacLeod
1aabd05ec0 extend.texi: Document __atomic_test_and_set and __atomic_clear.
2011-11-10  Andrew MacLeod  <amacleod@redhat.com>

	* doc/extend.texi: Document __atomic_test_and_set and __atomic_clear.

From-SVN: r181273
2011-11-10 22:46:25 +00:00
Jason Merrill
99c18869ef re PR c++/50973 ([C++0x] internal compiler error defaulted destructor virtual inheritance)
PR c++/50973
	* decl2.c (mark_used): Defer synthesis of virtual functions.
	* method.c (use_thunk): Make sure the target function has
	DECL_INTERFACE_KNOWN.

From-SVN: r181272
2011-11-10 16:14:42 -05:00
Andrew MacLeod
d660c35ea2 re PR middle-end/51038 (29_atomics/atomic_flag/clear/1.cc test_and_set/explicit.cc implicit.cc)
PR middle-end/51038

	libstdc++-v3
	* include/bits/atomic_base.h (atomic_thread_fence): Call built-in.
	(atomic_signal_fence): Call built-in.
	(test_and_set, clear): Call new atomic built-ins.

	gcc
	* builtins.c (expand_builtin_atomic_clear): New.  Expand atomic_clear.
	(expand_builtin_atomic_test_and_set): New.  Expand atomic test_and_set.
	(expand_builtin): Add cases for test_and_set and clear.
	* sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
	(BUILT_IN_ATOMIC_CLEAR): New.

	testsuite
	* gcc.dg/atomic-invalid.c: Add test for invalid __atomic_clear models.
	* gcc.dg/atomic-flag.c: New.  Test __atomic_test_and_set and
	__atomic_clear.

From-SVN: r181271
2011-11-10 20:38:33 +00:00
Jason Merrill
49fe93f410 PR c++/51079, DR 495
PR c++/51079, DR 495
	* call.c (joust): Check the second conversion sequence
	before checking templates.

From-SVN: r181270
2011-11-10 15:28:16 -05:00
Jason Merrill
c68b1bc7eb re PR debug/50983 (incorrect DW_LNS_negate_stmt)
PR debug/50983
	* dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt
	value in the current line table.

From-SVN: r181269
2011-11-10 15:28:04 -05:00
Eric Botcazou
033ba5bf9c fe.h (Serious_Errors_Detected): New macro.
* fe.h (Serious_Errors_Detected): New macro.
	* gcc-interface/gigi.h (build_atomic_load): Declare.
	(build_atomic_store): Likewise.
	* gcc-interface/trans.c (atomic_sync_required_p): New predicate.
	(call_to_gnu): Add ATOMIC_SYNC parameter.  Use local variable.
	Build an atomic load for an In or In Out parameter if needed.
	Build an atomic store for the assignment of an Out parameter if needed.
	Build an atomic store to the target if ATOMIC_SYNC is true.
	(present_in_lhs_or_actual_p): New predicate.
	(gnat_to_gnu) <N_Identifier>: Build an atomic load if needed.
	<N_Explicit_Dereference>: Likewise.
	<N_Indexed_Component>: Likewise.
	<N_Selected_Component>: Likewise.
	<N_Assignment_Statement>: Adjust call to call_to_gnu.
	Build an atomic store to the LHS if needed.
	<N_Function_Call>:  Adjust call to call_to_gnu.
	* gcc-interface/utils2.c: Include toplev.h.
	(resolve_atomic_size): New static function.
	(build_atomic_load): New function.
	(build_atomic_store): Likewise.
	* gcc-interface/Make-lang.in (ada/utils2.o): Add toplev.h.

From-SVN: r181267
2011-11-10 19:45:17 +00:00