Commit Graph

109684 Commits

Author SHA1 Message Date
Tobias Burnus
fea549356d re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-06-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.h (gfc_check_vardef_context): Update prototype.
        (iso_fortran_env_symbol): Handle derived types.
        (symbol_attribute): Add lock_comp.
        * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
        * interface.c (compare_parameter, gfc_procedure_use): Handle
        LOCK_TYPE.
        (compare_actual_formal): Update
        gfc_check_vardef_context call.
        * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
        * intrinsic.c (check_arglist): Ditto.
        * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire):
        * Ditto.
        * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
        * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
        * module.c (mio_symbol_attribute): Handle lock_comp.
        (create_derived_type): New function.
        (use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
        * parse.c (parse_derived): Add constraint check for LOCK_TYPE.
        * resolve.c (resolve_symbol, resolve_lock_unlock): Add
        * constraint
        checks for LOCK_TYPE.
        (gfc_resolve_iterator, resolve_deallocate_expr,
        resolve_allocate_expr, resolve_code, resolve_transfer): Update
        gfc_check_vardef_context call.
        * trans-stmt.h (gfc_trans_lock_unlock): New prototype.
        * trans-stmt.c (gfc_trans_lock_unlock): New function.
        * trans.c (trans_code): Handle LOCK and UNLOCK.

2011-06-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray_lock_1.f90: Update dg-error.
        * gfortran.dg/coarray_lock_3.f90: New.
        * gfortran.dg/coarray/lock_1.f90: New.

From-SVN: r175228
2011-06-20 23:12:39 +02:00
Bernd Schmidt
998c75b661 regrename.c (scan_rtx_reg): Handle the case where we write to an open chain in a smaller mode without...
* regrename.c (scan_rtx_reg): Handle the case where we write to an
	open chain in a smaller mode without failing the entire block.

From-SVN: r175225
2011-06-20 17:16:10 +00:00
Janis Johnson
222d3b39a6 scandump.exp (scan-dump, [...]): Treat a missing dump file as unresolved and report the reason to the log file.
* lib/scandump.exp (scan-dump, scan-dump-times, scan-dump-not,
	scan-dump-dem, scan-dump-dem-not): Treat a missing dump file as
	unresolved and report the reason to the log file.

From-SVN: r175224
2011-06-20 17:08:37 +00:00
Janis Johnson
b73b50c9eb scanasm.exp (object-size): Move argument processing earlier to report errors before verifying that the...
* lib/scanasm.exp (object-size): Move argument processing earlier
	to report errors before verifying that the file exists.  Report
	problems detected at runtime as unresolved instead of error and
	report their reasons to the log file.

From-SVN: r175223
2011-06-20 17:07:24 +00:00
H.J. Lu
83a8cbdab0 Don't check zero/sign extended hard registers.
2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/47725
	* combine.c (cant_combine_insn_p): Don't check zero/sign
	extended hard registers.

From-SVN: r175222
2011-06-20 10:03:16 -07:00
Alan Modra
3a76978496 rs6000.c (rs6000_cannot_force_const_mem): Match CONST high part large-toc address.
* config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
	CONST high part large-toc address.
	(rs6000_tls_referenced_p): Make static.
	* config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.

From-SVN: r175219
2011-06-21 00:35:05 +09:30
H.J. Lu
d1e32c4a41 Check zero/sign extended hard registers.
2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/47725
	* combine.c (cant_combine_insn_p): Check zero/sign extended
	hard registers.

From-SVN: r175218
2011-06-20 07:53:48 -07:00
Jason Merrill
b028af1164 re PR c++/47080 ([C++0x] explicit conversion function return conversions not restricted to qualifications)
PR c++/47080
	* call.c (rejection_reason_code): Add rr_explicit_conversion.
	(print_z_candidate): Handle it.
	(explicit_conversion_rejection): New.
	(build_user_type_conversion_1): Reject an explicit conversion
	function that requires more than a qualification conversion.

From-SVN: r175217
2011-06-20 10:40:38 -04:00
Jason Merrill
de72139019 re PR c++/47635 ([C++0x] ICE on invalid code in constructor_name_p, at cp/name-lookup.c:1809)
PR c++/47635
	* decl.c (grokdeclarator): Don't set ctype to an ENUMERAL_TYPE.

From-SVN: r175216
2011-06-20 10:40:29 -04:00
Jason Merrill
0532254316 re PR c++/48138 (__attribute__((aligned)) should give an error when applied to a typedef or template parameter, at least in C++0x mode.)
PR c++/48138
	* tree.c (strip_typedefs): Use build_aligned_type.

From-SVN: r175215
2011-06-20 10:40:19 -04:00
Jason Merrill
2602f8fe61 re PR c++/49205 ([C++0x] Default constructor with pack expansion parameter not detected)
PR c++/49205
	* call.c (sufficient_parms_p): Allow parameter packs too.

From-SVN: r175214
2011-06-20 10:40:10 -04:00
Jason Merrill
dd70e080ff re PR c++/37089 ([C++0x] rvalue/lvalue reference collapsing not performed in error ouput thus printing "&&&")
PR c++/37089
	* cp-demangle.c (d_print_comp): Handle reference smashing.

From-SVN: r175213
2011-06-20 10:40:01 -04:00
Jason Merrill
d84572a400 re PR c++/43321 ([c++0x] ICE on valid auto)
PR c++/43321
	* semantics.c (describable_type): Remove.
	* cp-tree.h: Likewise.
	* decl.c (cp_finish_decl): Don't call it.
	* init.c (build_new): Likewise.
	* parser.c (cp_parser_omp_for_loop): Likewise.
	* pt.c (tsubst_decl): Likewise.
	(do_auto_deduction): If we fail in a template, try again
	at instantiation time.

From-SVN: r175212
2011-06-20 10:39:53 -04:00
Jason Merrill
4b7d9ed4a8 re PR c++/43831 ([C++0x] gcc-4.5.0 does not fail invalid lambda captures (against n3092 5.1.2/8))
PR c++/43831
	* parser.c (cp_parser_lambda_introducer): Complain about redundant
	captures.
	* semantics.c (add_capture): Likewise.
	(register_capture_members): Clear IDENTIFIER_MARKED.

From-SVN: r175211
2011-06-20 10:39:44 -04:00
Ramana Radhakrishnan
c2954af926 re PR target/49385 (Invalid RTL intstruction for ARM)
Fix PR target/49385


2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/49385
	* config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
	one of the operands is a register.

From-SVN: r175208
2011-06-20 12:15:58 +00:00
Kai Tietz
a95015b6cd ChangeLog gcc/
2011-06-20  Kai Tietz  <ktietz@redhat.com>

	* fold-const.c (fold_binary_loc): Add missing
	folding for truth-not operations in combination
	with binary and.

ChangeLog gcc/testsuite/

2011-06-20  Kai Tietz  <ktietz@redhat.com>

	* gcc.dg/binop-notand1.c: New test.
	* gcc.dg/binop-notand2.c: New test.
	* gcc.dg/binop-notand3.c: New test.
	* gcc.dg/binop-notand4.c: New test.
	* gcc.dg/binop-notand5.c: New test.
	* gcc.dg/binop-notand6.c: New test.

From-SVN: r175206
2011-06-20 13:49:27 +02:00
Daniel Krugler
6f17ef336c tuple (__conv_types, [...]): Add.
2011-06-20  Daniel Krugler  <daniel.kruegler@googlemail.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple (__conv_types, __one_by_one_convertible,
	__all_convertible): Add.
	(tuple): Use the latter.
	(tuple<_T1>): Remove.
	* testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error
	line number.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r175204
2011-06-20 11:05:45 +00:00
Bernd Schmidt
49a30d001c * regrename.c (do_replace): Don't update notes.
From-SVN: r175203
2011-06-20 10:29:46 +00:00
Pierre Vittet
dfb43cd5bd c-pragma.h (pragma_handler_1arg, [...]): New handler.
2011-06-20  Pierre Vittet  <piervit@pvittet.com>

	* c-pragma.h (pragma_handler_1arg, pragma_handler_2arg): New
	handler.
	(gen_pragma_handler): New union.
	(internal_pragma_handler): New type.
	(c_register_pragma_with_data)
	(c_register_pragma_with_expansion_and_data): New functions.

	* c-pragma.c (registered_pragmas, c_register_pragma_1)
	(c_register_pragma, c_register_pragma_with_expansion)
	(c_invoke_pragma_handler): Changed to work with
	internal_pragma_handler.
	(c_register_pragma_with_data)
	(c_register_pragma_with_expansion_and_data): New functions.

From-SVN: r175202
2011-06-20 08:05:02 +00:00
Alan Modra
3bae1d9865 rs6000.c (create_TOC_reference): Wrap high part of toc-relative address in CONST.
* config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
	of toc-relative address in CONST.
	(rs6000_delegitimize_address): Recognize changed address.
	(rs6000_legitimize_reload_address): Likewise.
	(rs6000_emit_move): Don't force these constants to memory.
	* config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
	toc-relative address in CONST.
	(tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
	(tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.

From-SVN: r175200
2011-06-20 14:42:10 +09:30
GCC Administrator
8fe2f96186 Daily bump.
From-SVN: r175199
2011-06-20 00:18:32 +00:00
Mike Stump
c4a370d20b re PR target/49461 (boehm-gc and gcj incompatible with pie)
PR target/49461
 	* mh-darwin: Turn off -pie on darwin11 and later.

From-SVN: r175192
2011-06-19 17:54:24 +00:00
GCC Administrator
ce08f1fd19 Daily bump.
From-SVN: r175188
2011-06-19 00:18:00 +00:00
H.J. Lu
10937b0c3a Use long long builtins of zero counting for x86-64.
2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>

	* longlong.h (count_leading_zeros): Use long long builtin for
	x86-64.
	(count_trailing_zeros): Likewise.

From-SVN: r175183
2011-06-18 08:35:10 -07:00
Jack Howarth
ffe5104599 re PR target/49461 (boehm-gc and gcj incompatible with pie)
PR target/49461
	* libjava/configure.ac (SYSTEMSPEC): Pass -no_pie for darwin11.
	* libjava/configure: Regenerate.

From-SVN: r175182
2011-06-18 15:06:26 +00:00
H.J. Lu
0c58726088 Properly check if .init_array can be used with .ctors on targets.
2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/49325
	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
	.init_array can be used with .ctors on targets.
	* configure: Regenerated.

From-SVN: r175181
2011-06-18 07:48:14 -07:00
Jakub Jelinek
6e6224c1d0 re PR testsuite/49432 (FAIL: obj-c++.dg/invalid-type-1.mm)
PR testsuite/49432
	* obj-c++.dg/invalid-type-1.mm: Adjust for new error wording.

From-SVN: r175178
2011-06-18 14:56:56 +02:00
Janus Weil
3547d57e35 re PR fortran/49400 ([F08] Proc-pointer declaration in BLOCK construct)
2011-06-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49400
	* decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
	BLOCK constructs.

2011-06-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49400
	* gfortran.dg/proc_ptr_31.f90: New.

From-SVN: r175177
2011-06-18 14:36:45 +02:00
Eric Botcazou
c020c92b12 tree-sra.c (type_internals_preclude_sra_p): Return true if the element type is volatile.
* tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
	if the element type is volatile.
ada/
	* gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
	local variable throughout.  Remove useless call to Base_Type.
	(gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
	Take it also into account for the volatileness of the field.  Set the
	TREE_SIDE_EFFECTS flag as well in this case.  Reorder some warnings.

From-SVN: r175176
2011-06-18 11:02:45 +00:00
Jan Hubicka
10f13f2279 oops, comitted with wrong PR# :( PR lto/48246
oops, comitted with wrong PR# :(
	PR lto/48246
	* lto.c (lto_1_to_1_map): Don't create empty partitions.
	(lto_balanced_map): Likewise.

From-SVN: r175175
2011-06-18 10:51:43 +00:00
Jan Hubicka
7496868da6 re PR lto/48246 (ICE in lto_wpa_write_files)
PR lto/23754
	* lto.c (lto_1_to_1_map): Don't create empty partitions.
	(lto_balanced_map): Likewise.

From-SVN: r175174
2011-06-18 10:48:08 +00:00
Eric Botcazou
96769d3294 trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP on a dereference built for a by-ref object if...
* gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
	on a dereference built for a by-ref object if it has an address clause.

From-SVN: r175172
2011-06-18 10:31:26 +00:00
Eric Botcazou
7e4680c1a2 einfo.ads (Address_Taken): Document use for the second argument of Asm_Input and Asm_Output attributes.
* einfo.ads (Address_Taken): Document use for the second argument of
	Asm_Input and Asm_Output attributes.
	* sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
	argument is an entity name, then set Address_Taken on it.
	<Attribute_Asm_Output>: Likewise.
	* gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
	Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
	(gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
	memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.

From-SVN: r175171
2011-06-18 10:18:38 +00:00
Jan Hubicka
0e27699a8a lto-symtab.c (lto_varpool_replace_node): Remove code handling extra name aliases.
* lto-symtab.c (lto_varpool_replace_node): Remove code handling
	extra name aliases.
	(lto_symtab_resolve_can_prevail_p): Likewise.
	(lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
	* cgraphbuild.c (record_reference): Remove extra body alias code.
	(mark_load): Likewise.
	(mark_store): Likewise.
	* cgraph.h (varpool_node): Remove extra_name filed;
	add alias_of and extraname_alias.
	(varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
	(varpool_alias_aliased_node): New inline function.
	(varpool_variable_node): New function.
	* cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
	* ipa-ref.c (ipa_record_reference): Allow aliases on variables.
	* lto-cgraph.c (lto_output_varpool_node): Update streaming.
	(input_varpool_node): Likewise.
	* lto-streamer-out.c (produce_symtab): Remove extra name aliases.
	(varpool_externally_visible_p): Remove extra body alias code.
	(function_and_variable_visibility): Likewise.
	* tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
	(ipa_pta_execute): Use it.
	* varpool.c (varpool_remove_node): Remove extra name alias code.
	(varpool_mark_needed_node): Likewise.
	(varpool_analyze_pending_decls): Analyze aliases.
	(assemble_aliases): New functoin.
	(varpool_assemble_decl): Use it.
	(varpool_create_variable_alias): New function.
	(varpool_extra_name_alias): Rewrite.
	(varpool_for_node_and_aliases): New function.

From-SVN: r175169
2011-06-18 08:33:47 +00:00
Jan Hubicka
3bd7219042 lto-symtab.c (lto_varpool_replace_node): Remove code handling extra name aliases.
* lto-symtab.c (lto_varpool_replace_node): Remove code handling
	extra name aliases.
	(lto_symtab_resolve_can_prevail_p): Likewise.
	(lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
	* cgraphbuild.c (record_reference): Remove extra body alias code.
	(mark_load): Likewise.
	(mark_store): Likewise.
	* cgraph.h (varpool_node): Remove extra_name filed;
	add alias_of and extraname_alias.
	(varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
	(varpool_alias_aliased_node): New inline function.
	(varpool_variable_node): New function.
	* cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
	* ipa-ref.c (ipa_record_reference): Allow aliases on variables.
	* lto-cgraph.c (lto_output_varpool_node): Update streaming.
	(input_varpool_node): Likewise.
	* lto-streamer-out.c (produce_symtab): Remove extra name aliases.
	(varpool_externally_visible_p): Remove extra body alias code.
	(function_and_variable_visibility): Likewise.
	* tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
	(ipa_pta_execute): Use it.
	* varpool.c (varpool_remove_node): Remove extra name alias code.
	(varpool_mark_needed_node): Likewise.
	(varpool_analyze_pending_decls): Analyze aliases.
	(assemble_aliases): New functoin.
	(varpool_assemble_decl): Use it.
	(varpool_create_variable_alias): New function.
	(varpool_extra_name_alias): Rewrite.
	(varpool_for_node_and_aliases): New function.

From-SVN: r175168
2011-06-18 08:33:10 +00:00
Jan Hubicka
cd35bcf7e8 lto-symtab.c (lto_varpool_replace_node): Remove code handling extra name aliases.
* lto-symtab.c (lto_varpool_replace_node): Remove code handling
	extra name aliases.
	(lto_symtab_resolve_can_prevail_p): Likewise.
	(lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
	* cgraphbuild.c (record_reference): Remove extra body alias code.
	(mark_load): Likewise.
	(mark_store): Likewise.
	* cgraph.h (varpool_node): Remove extra_name filed;
	add alias_of and extraname_alias.
	(varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
	(varpool_alias_aliased_node): New inline function.
	(varpool_variable_node): New function.
	* cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
	* ipa-ref.c (ipa_record_reference): Allow aliases on variables.
	* lto-cgraph.c (lto_output_varpool_node): Update streaming.
	(input_varpool_node): Likewise.
	* lto-streamer-out.c (produce_symtab): Remove extra name aliases.
	(varpool_externally_visible_p): Remove extra body alias code.
	(function_and_variable_visibility): Likewise.
	* tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
	(ipa_pta_execute): Use it.
	* varpool.c (varpool_remove_node): Remove extra name alias code.
	(varpool_mark_needed_node): Likewise.
	(varpool_analyze_pending_decls): Analyze aliases.
	(assemble_aliases): New functoin.
	(varpool_assemble_decl): Use it.
	(varpool_create_variable_alias): New function.
	(varpool_extra_name_alias): Rewrite.
	(varpool_for_node_and_aliases): New function.

From-SVN: r175167
2011-06-18 08:31:03 +00:00
Janne Blomqvist
d3ff9ee468 PR 49296 List directed read of string ending in EOF.
libgfortran ChangeLog entry:

2011-06-18  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/49296
        * io/list_read.c (read_character): Accept EOF as a separator when
        reading string.


testsuite ChangeLog entry:

2011-06-18  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/48296
	* gfortran.dg/read_list_eof_1.f90: New test.

From-SVN: r175166
2011-06-18 10:53:09 +03:00
Jakub Jelinek
c96b410243 re PR target/49411 ([4.6/4.7] ICE: unrecognizable insn with -mxop in _mm_roti_epi8 with negative number)
PR target/49411
	* config/i386/i386.c (ix86_expand_multi_arg_builtins): If
	last_arg_constant and last argument doesn't match its predicate,
	for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
	if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
	(ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
	spelling of error message.
	* config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
	vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
	const_0_to_255_operand instead of const_int_operand.

	Revert:
	2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (blendbits): Remove mode attribute.
	(<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
	instead of const_0_to_<blendbits>_operand for operand 3 predicate.
	Check integer value of operand 3 in insn constraint.

	* gcc.target/i386/testimm-1.c: New test.
	* gcc.target/i386/testimm-2.c: New test.
	* gcc.target/i386/testimm-3.c: New test.
	* gcc.target/i386/testimm-4.c: New test.
	* gcc.target/i386/testimm-5.c: New test.
	* gcc.target/i386/testimm-6.c: New test.
	* gcc.target/i386/testimm-7.c: New test.
	* gcc.target/i386/testimm-8.c: New test.
	* gcc.target/i386/xop-vpermil2px-2.c: New test.
	* gcc.target/i386/xop-rotate1-int.c: New test.
	* gcc.target/i386/xop-rotate2-int.c: New test.

From-SVN: r175165
2011-06-18 08:43:38 +02:00
Jason Merrill
dfe8601ce7 re PR c++/49458 ([C++0x][DR 1328] Obvious candidate for conversion to function lvalue rejected)
PR c++/49458
	* call.c (convert_class_to_reference_1): Allow binding function
	lvalue to rvalue reference.

From-SVN: r175164
2011-06-18 01:58:38 -04:00
GCC Administrator
65e5579c29 Daily bump.
From-SVN: r175163
2011-06-18 00:18:47 +00:00
Jason Merrill
61ca4737a8 re PR c++/43912 ([C++0x] lambda debug info does not describe captured variables)
PR c++/43912
	Generate proxy VAR_DECLs for better lambda debug info.
	* cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): Add lambda operator().
	(LAMBDA_EXPR_PENDING_PROXIES): New.
	(struct tree_lambda_expr): Add pending_proxies.
	* name-lookup.c (pushdecl_maybe_friend_1): Handle capture shadowing.
	(qualify_lookup): Use is_lambda_ignored_entity.
	* parser.c (cp_parser_lambda_expression): Don't adjust field names.
	Call insert_pending_capture_proxies.
	(cp_parser_lambda_introducer): Use this_identifier.
	(cp_parser_lambda_declarator_opt): Call the object parameter
	of the op() "__closure" instead of "this".
	(cp_parser_lambda_body): Call build_capture_proxy.
	* semantics.c (build_capture_proxy, is_lambda_ignored_entity): New.
	(insert_pending_capture_proxies, insert_capture_proxy): New.
	(is_normal_capture_proxy, is_capture_proxy): New.
	(add_capture): Add __ to field names here, return capture proxy.
	(add_default_capture): Use this_identifier, adjust to expect
	add_capture to return a capture proxy.
	(outer_lambda_capture_p, thisify_lambda_field): Remove.
	(finish_id_expression, lambda_expr_this_capture): Adjust.
	(build_lambda_expr): Initialize LAMBDA_EXPR_PENDING_PROXIES.
	* pt.c (tsubst_copy_and_build): Check that LAMBDA_EXPR_PENDING_PROXIES
	is null.

From-SVN: r175158
2011-06-17 16:08:01 -04:00
Jason Merrill
7e7666aed8 name-lookup.c (pushdecl_maybe_friend_1): Do check for shadowing of artificial locals.
* name-lookup.c (pushdecl_maybe_friend_1): Do check for shadowing
	of artificial locals.

From-SVN: r175157
2011-06-17 16:07:53 -04:00
Jason Merrill
806010b9fa parser.c (cp_parser_lambda_expression): Clear LAMBDA_EXPR_THIS_CAPTURE after parsing.
* parser.c (cp_parser_lambda_expression): Clear
	LAMBDA_EXPR_THIS_CAPTURE after parsing.
	* pt.c (tsubst_copy_and_build): Make sure it isn't set.

From-SVN: r175156
2011-06-17 16:07:45 -04:00
Jason Merrill
2cd8d506c4 cp-tree.h (struct tree_lambda_expr): Change common to typed.
* cp-tree.h (struct tree_lambda_expr): Change common to typed.
	Move non-pointers to end of struct.

From-SVN: r175155
2011-06-17 16:07:33 -04:00
Jason Merrill
2b8dfc0700 pushdecl_with_scope comment
From-SVN: r175154
2011-06-17 16:07:26 -04:00
Jason Merrill
f05f61fd73 pt.c (tsubst_decl): Handle DECL_VALUE_EXPR on reference.
* pt.c (tsubst_decl): Handle DECL_VALUE_EXPR on reference.
	* decl.c (check_initializer): Handle DECL_VALUE_EXPR_P.

From-SVN: r175153
2011-06-17 16:07:20 -04:00
Jason Merrill
2516ccfe92 semantics.c (finish_non_static_data_member): Preserve dereference in template.
* semantics.c (finish_non_static_data_member): Preserve dereference
	in template.

From-SVN: r175152
2011-06-17 16:07:13 -04:00
Janus Weil
b53abf71d2 re PR fortran/48699 ([OOP] MOVE_ALLOC inside SELECT TYPE)
2011-06-17  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48699
	* check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
	make sure the vtab is present.

2011-06-17  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48699
	* gfortran.dg/move_alloc_5.f90: New.

From-SVN: r175151
2011-06-17 22:03:04 +02:00
Rainer Orth
f64a6f1ee5 re PR libgcj/49315 (Throw_2 SEGVs on Tru64 UNIX)
PR libgcj/49315
	* include/solaris-signal.h: Rename to ...
	* include/posix-signal.h: ... this.
	(SA_FLAGS): Define.
	(SIGNAL_HANDLER): Handle non-SA_SIGINFO case.
	(sa_signal_handler): Define.
	(_INIT_SIG_HANDLER): New macro.
	(INIT_SEGV, INIT_FPE): Use it.
	* configure.ac (SIGNAL_HANDLER): Use it on alpha*-dec-osf*,
	mips-sgi-irix*, *-*-solaris2*
	* configure: Regenerate.
	* include/aix-signal.h: Refer to AIX.
	* configure.host (alpha*-dec-osf*): Enable can_unwind_signal.
	(mips-sgi-irix6*): Likewise.

From-SVN: r175138
2011-06-17 08:33:13 +00:00
Hans-Peter Nilsson
041efc9a53 re PR rtl-optimization/48542 (unchanged variables in code which calls setjmp may be clobbered (including the return-address))
PR rtl-optimization/48542
	* gcc.dg/torture/pr48542.c: New test.

From-SVN: r175133
2011-06-17 02:20:11 +00:00