1. 02 Aug, 2011 7 commits
    • re PR c++/43886 ([C++0x] name lookup failure on un-used local variable in lambda… · a9a740ba
      re PR c++/43886 ([C++0x] name lookup failure on un-used local variable in lambda compound-statement)
      
      	PR c++/43886
      	* parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p.
      
      From-SVN: r177216
      Jason Merrill committed
    • re PR c++/49577 ([C++0x] narrowing conversion not rejected) · 54e7d7f5
      	PR c++/49577
      	* typeck2.c (check_narrowing): Check unsigned mismatch.
      	* semantics.c (finish_compound_literal): check_narrowing.
      
      From-SVN: r177215
      Jason Merrill committed
    • re PR c++/49593 ([C++0x] cannot use T{t}... as pack expansion) · 326a6455
      	PR c++/49593
      	* pt.c (find_parameter_packs_r): Handle CONSTRUCTOR.
      
      From-SVN: r177214
      Jason Merrill committed
    • re PR c++/49803 ([C++0x] erroneous variant-member initialization in a union… · adc651f3
      re PR c++/49803 ([C++0x] erroneous variant-member initialization in a union containing an anonymous struct)
      
      	PR c++/49803
      	* init.c (sort_mem_initializers): Initialize uses_unions_p here.
      	(build_field_list): Not here.
      
      From-SVN: r177213
      Jason Merrill committed
    • re PR c++/49834 ([C++0x] type deduction in for-each loop in template function) · 2b756fa2
      	PR c++/49834
      	* parser.c (build_range_temp): Split out from...
      	(cp_convert_range_for): ...here.
      	(do_range_for_auto_deduction): New.
      	(cp_parser_range_for): Use it.
      
      From-SVN: r177199
      Jason Merrill committed
    • backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable… · 20906c66
      backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable array in firstprivate clause)
      
      Merge from gomp-3_1-branch branch:
      
      2011-08-02  Jakub Jelinek  <jakub@redhat.com>
      
      gcc/
      	* c-parser.c (enum c_parser_prec): New enum, moved from within
      	c_parser_binary_expression.
      	(c_parser_binary_expression): Add PREC argument.  Stop parsing
      	if operator has lower or equal precedence than PREC.
      	(c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
      	callers.
      	(c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
      	Adjust c_finish_omp_atomic caller.
      	(c_parser_omp_taskyield): New function.
      	(c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
      	(c_parser_omp_clause_name): Handle final and mergeable clauses.
      	(c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
      	functions.
      	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
      	and PRAGMA_OMP_CLAUSE_MERGEABLE.
      	(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
      	(c_parser_omp_clause_reduction): Handle min and max.
      	* c-typeck.c (c_finish_omp_clauses): Don't complain about
      	const qualified predetermined vars in firstprivate clause.
      	andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      	Handle MIN_EXPR and MAX_EXPR.
      	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
      	and OMP_CLAUSE_MERGEABLE.
      	(dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
      	and OMP_ATOMIC_CAPTURE_NEW.
      	* tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
      	OMP_CLAUSE_MERGEABLE.
      	(omp_clause_code_name): Likewise.
      	(walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      	* tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
      	and OMP_CLAUSE_MERGEABLE.
      	(OMP_CLAUSE_FINAL_EXPR): Define.
      	* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
      	OMP_CLAUSE_MERGEABLE.
      	(expand_task_call): Likewise.
      	(expand_omp_atomic_load, expand_omp_atomic_store): New functions.
      	(expand_omp_atomic_fetch_op): Handle cases where old or new
      	value is needed afterwards.
      	(expand_omp_atomic): Call expand_omp_atomic_load resp.
      	expand_omp_atomic_store.
      	* gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
      	OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
      	(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
      	OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      	* tree-nested.c (convert_nonlocal_omp_clauses,
      	convert_local_omp_clauses): Likewise.
      	* tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
      	OMP_ATOMIC_CAPTURE_NEW): New.
      	* gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
      	(gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
      	New inlines.
      	* omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
      	* doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
      	OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      gcc/c-family/
      	* c-common.h (c_finish_omp_atomic): Adjust prototype.
      	(c_finish_omp_taskyield): New prototype.
      	* c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
      	arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
      	OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC.  If LHS1
      	or RHS1 have side-effects, evaluate those too in the right spot,
      	if it is a decl and LHS is also a decl, error out if they
      	aren't the same.
      	(c_finish_omp_taskyield): New function.
      	* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
      	* c-pragma.c (omp_pragmas): Add taskyield.
      	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
      	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
      	PRAGMA_OMP_CLAUSE_MERGEABLE.
      gcc/cp/
      	* cp-tree.h (finish_omp_atomic): Adjust prototype.
      	(cxx_omp_const_qual_no_mutable): New prototype.
      	(finish_omp_taskyield): New prototype.
      	* parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle
      	parsing OpenMP 3.1 atomics.  Adjust finish_omp_atomic caller.
      	(cp_parser_omp_clause_name): Handle final and mergeable clauses.
      	(cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New
      	functions.
      	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
      	and PRAGMA_OMP_CLAUSE_MERGEABLE.
      	(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
      	(cp_parser_omp_taskyield): New function.
      	(cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
      	(cp_parser_omp_clause_reduction): Handle min and max.
      	* pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics.
      	(tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and
      	OMP_CLAUSE_MERGEABLE.
      	* semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
      	arguments.  Handle OpenMP 3.1 atomics.  Adjust c_finish_omp_atomic
      	caller.
      	(finish_omp_clauses): Don't complain about const qualified
      	predetermined vars and static data members in firstprivate clause.
      	Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR
      	and MAX_EXPR.
      	(finish_omp_taskyield): New function.
      	* cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function.
      	(cxx_omp_predetermined_sharing): Use it.
      gcc/fortran/
      	PR fortran/46752
      	* cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
      	* openmp.c (gfc_free_omp_clauses): Free also final_expr.
      	(OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
      	(gfc_match_omp_clauses): Handle parsing final and mergeable
      	clauses.
      	(OMP_TASK_CLAUSES): Allow final and mergeable clauses.
      	(gfc_match_omp_taskyield): New function.
      	(resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
      	Cray pointers in clauses other than REDUCTION.
      	(gfc_match_omp_atomic): Match optional
      	read/write/update/capture keywords after !$omp atomic.
      	(resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
      	* dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
      	print final and mergeable clauses.
      	(show_code_node): Handle EXEC_OMP_TASKYIELD.
      	* trans-openmp.c (gfc_trans_omp_clauses): Handle final and
      	mergeable clauses.
      	(gfc_trans_omp_taskyield): New function.
      	(gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
      	(gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
      	(gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
      	(gfc_omp_predetermined_sharing): Adjust comment.
      	* gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
      	ST_OMP_END_ATOMIC.
      	(gfc_omp_clauses): Add final_expr and mergeable fields.
      	(gfc_exec_op): Add EXEC_OMP_TASKYIELD.
      	(gfc_omp_atomic_op): New enum typedef.
      	(struct gfc_code): Add ext.omp_atomic.
      	* trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
      	* frontend-passes.c (gfc_code_walker): Also walk final_expr.
      	* resolve.c (gfc_resolve_blocks, resolve_code): Handle
      	EXEC_OMP_TASKYIELD.
      	* st.c (gfc_free_statement): Likewise.
      	* match.h (gfc_match_omp_taskyield): New prototype.
      	* parse.c (decode_omp_directive): Handle taskyield directive.
      	Handle !$omp end atomic.
      	(case_executable): Add ST_OMP_TASKYIELD case.
      	(gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
      	(parse_omp_atomic): Return gfc_statement instead of void.
      	For !$omp atomic capture parse two assignments instead of
      	just one and require !$omp end atomic afterwards, for
      	other !$omp atomic forms just allow !$omp end atomic at the
      	end.
      	(parse_omp_structured_block, parse_executable): Adjust
      	parse_omp_atomic callers.
      
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
      	* intrinsic.c (OMP_LIB): Updated openmp_version's
      	value to 201107.
      	* gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
      	* intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
      	remove deleted omp_integer_kind and omp_logical_kind constants.
      gcc/testsuite/
      	PR fortran/46752
      	* gcc.dg/gomp/atomic-5.c: Adjust expected diagnostics.
      	* gcc.dg/gomp/atomic-15.c: New test.
      	* g++.dg/gomp/atomic-5.C: Adjust expected diagnostics.
      	* g++.dg/gomp/atomic-15.C: New test.
      	* g++.dg/gomp/private-1.C: New test.
      	* g++.dg/gomp/sharing-2.C: New test.
      	* gfortran.dg/gomp/crayptr1.f90: Don't expect error
      	about Cray pointer in FIRSTPRIVATE/LASTPRIVATE.
      	* gfortran.dg/gomp/omp_atomic2.f90: New test.
      libgomp/
      	PR fortran/42041
      	PR fortran/46752
      	* omp.h.in (omp_in_final): New prototype.
      	* omp_lib.f90.in (omp_in_final): New interface.
      	(omp_integer_kind, omp_logical_kind): Remove
      	and replace all its uses in the module with 4.
      	(openmp_version): Change to 201107.
      	* omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
      	omp_sched_guided, omp_sched_auto): Use omp_sched_kind
      	kind for the parameters.
      	(omp_in_final): New external.
      	(openmp_version): Change to 201107.
      	* task.c (omp_in_final): New function.
      	(gomp_init_task): Initialize final_task.
      	(GOMP_task): Remove unused attribute from flags.  Handle final
      	tasks.
      	(GOMP_taskyield): New function.
      	(omp_in_final): Return true if if (false) or final (true) task
      	or descendant of final (true).
      	* fortran.c (omp_in_final_): New function.
      	* libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
      	(GOMP_3.0): Export GOMP_taskyield.
      	* env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
      	variables.
      	(parse_unsigned_long_list): New function.
      	(initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
      	with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
      	even if parse_affinity returned false.
      	* config/linux/affinity.c (gomp_init_affinity): Handle
      	gomp_cpu_affinity_len == 0.
      	* libgomp_g.h (GOMP_taskyield): New prototype.
      	* libgomp.h (struct gomp_task): Add final_task field.
      	(gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
      	* team.c (gomp_team_start): Override new task's nthreads_var icv
      	if list form OMP_NUM_THREADS has been used and it has value for
      	the new nesting level.
      
      	* testsuite/libgomp.c/atomic-11.c: New test.
      	* testsuite/libgomp.c/atomic-12.c: New test.
      	* testsuite/libgomp.c/atomic-13.c: New test.
      	* testsuite/libgomp.c/atomic-14.c: New test.
      	* testsuite/libgomp.c/reduction-6.c: New test.
      	* testsuite/libgomp.c/task-5.c: New test.
      	* testsuite/libgomp.c++/atomic-2.C: New test.
      	* testsuite/libgomp.c++/atomic-3.C: New test.
      	* testsuite/libgomp.c++/atomic-4.C: New test.
      	* testsuite/libgomp.c++/atomic-5.C: New test.
      	* testsuite/libgomp.c++/atomic-6.C: New test.
      	* testsuite/libgomp.c++/atomic-7.C: New test.
      	* testsuite/libgomp.c++/atomic-8.C: New test.
      	* testsuite/libgomp.c++/atomic-9.C: New test.
      	* testsuite/libgomp.c++/task-8.C: New test.
      	* testsuite/libgomp.c++/reduction-4.C: New test.
      	* testsuite/libgomp.fortran/allocatable7.f90: New test.
      	* testsuite/libgomp.fortran/allocatable8.f90: New test.
      	* testsuite/libgomp.fortran/crayptr3.f90: New test.
      	* testsuite/libgomp.fortran/omp_atomic3.f90: New test.
      	* testsuite/libgomp.fortran/omp_atomic4.f90: New test.
      	* testsuite/libgomp.fortran/pointer1.f90: New test.
      	* testsuite/libgomp.fortran/pointer2.f90: New test.
      	* testsuite/libgomp.fortran/task4.f90: New test.
      
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
      	* libgomp.texi: Update OpenMP spec references to 3.1.
      	(omp_in_final,OMP_PROC_BIND): New sections.
      	(OMP_NUM_THREADS): Document that the value can be now a list.
      	(GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
      
      From-SVN: r177194
      Jakub Jelinek committed
    • * call.c (build_call_a): Also check at_function_scope_p. · 1e88210d
      From-SVN: r177185
      Jason Merrill committed
  2. 01 Aug, 2011 3 commits
  3. 30 Jul, 2011 1 commit
  4. 29 Jul, 2011 1 commit
  5. 28 Jul, 2011 1 commit
  6. 27 Jul, 2011 1 commit
    • Propagate the source location of a template's function_decl to the template_decl built out of it. · ce77c22f
      Propagate the source location of a template's function_decl to the
      template_decl built out of it.  Without this, specializations
      generated before the template was defined get the location of the
      closing ')' instead of the location of the template's name, which can
      produce inconsistent locations between translation units, which makes
      gold's ODR checker unhappy.
      
      	* gcc/cp/pt.c (build_template_decl): Copy the function_decl's source
      	location to the new template_decl.
      	* gcc/testsuite/g++.old-deja/g++.pt/crash60.C: Updated.
      	* libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Updated.
      
      From-SVN: r176845
      Jeffrey Yasskin committed
  7. 26 Jul, 2011 1 commit
  8. 25 Jul, 2011 3 commits
  9. 23 Jul, 2011 1 commit
  10. 22 Jul, 2011 2 commits
  11. 20 Jul, 2011 3 commits
    • parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]= designated initializer syntax. · 458f8a16
      	* parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]=
      	designated initializer syntax.
      	* decl.c (check_array_designated_initializer): Add index parm.
      	(maybe_deduce_size_from_array_init): Pass it.
      	(reshape_init_array_1): Likewise.
      
      From-SVN: r176530
      Jason Merrill committed
    • changelog tweak · c2919dc8
      From-SVN: r176514
      Jason Merrill committed
    • PR c++/6709 (DR 743) · 34429675
      	PR c++/6709 (DR 743)
      	PR c++/42603 (DR 950)
      gcc/cp/
      	* parser.c (token_is_decltype, cp_lexer_next_token_is_decltype): New.
      	(cp_parser_nested_name_specifier_opt): Allow decltype.
      	(cp_parser_qualifying_entity): Likewise.
      	(cp_parser_decltype): Replace source tokens with CPP_DECLTYPE.
      	(cp_parser_simple_type_specifier): Handle decltype as scope.
      	(cp_parser_base_specifier): Allow decltype.
      	(cp_parser_base_clause): Don't crash on null base.
      	* parser.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move to c-common.h.
      	(CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
      gcc/c-family/
      	* c-common.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move from cp/parser.h.
      	(CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
      	(CPP_DECLTYPE): New.
      	* c-common.c (c_parse_error): Handle CPP_DECLTYPE.
      
      From-SVN: r176513
      Jason Merrill committed
  12. 19 Jul, 2011 2 commits
    • re PR c++/49785 ([C++0x] ICE in coerce_template_parms) · 37457866
      	PR c++/49785
      	* pt.c (coerce_template_parms): Handle non-pack after pack.
      
      From-SVN: r176472
      Jason Merrill committed
    • tree.h (fold_build_pointer_plus_loc): New helper function. · 5d49b6a7
      2011-07-19  Richard Guenther  <rguenther@suse.de>
      
      	* tree.h (fold_build_pointer_plus_loc): New helper function.
      	(fold_build_pointer_plus_hwi_loc): Likewise.
      	(fold_build_pointer_plus): Define.
      	(fold_build_pointer_plus_hwi): Likewise.
      
      	* builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
      	(fold_builtin_memory_op): Likewise.
      	(fold_builtin_stpcpy): Likewise.
      	(fold_builtin_memchr): Likewise.
      	(fold_builtin_strstr): Likewise.
      	(fold_builtin_strchr): Likewise.
      	(fold_builtin_strrchr): Likewise.
      	(fold_builtin_strpbrk): Likewise.
      	(fold_builtin_strcat): Likewise.
      	(expand_builtin_memory_chk): Likewise.
      	(fold_builtin_memory_chk): Likewise.
      	* c-typeck.c (build_unary_op): Likewise.
      	* cgraphunit.c (thunk_adjust): Likewise.
      	* fold-const.c (build_range_check): Likewise.
      	(fold_binary_loc): Likewise.
      	* omp-low.c (extract_omp_for_data): Likewise.
      	(expand_omp_for_generic): Likewise.
      	(expand_omp_for_static_nochunk): Likewise.
      	(expand_omp_for_static_chunk): Likewise.
      	* tree-affine.c (add_elt_to_tree): Likewise.
      	* tree-data-ref.c (split_constant_offset_1): Likewise.
      	* tree-loop-distribution.c (generate_memset_zero): Likewise.
      	* tree-mudflap.c (mf_xform_derefs_1): Likewise.
      	* tree-predcom.c (ref_at_iteration): Likewise.
      	* tree-ssa-address.c (tree_mem_ref_addr): Likewise.
      	(add_to_parts): Likewise.
      	(create_mem_ref): Likewise.
      	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
      	* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
      	(number_of_iterations_le): Likewise.
      	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
      	* tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
      	(vect_create_addr_base_for_vector_ref): Likewise.
      	* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
      	(vect_create_cond_for_alias_checks): Likewise.
      	* tree-vrp.c (extract_range_from_assert): Likewise.
      
      	* config/alpha/alpha.c (alpha_va_start): Likewise.
      	(alpha_gimplify_va_arg_1): Likewise.
      	* config/i386/i386.c (ix86_va_start): Likewise.
      	(ix86_gimplify_va_arg): Likewise.
      	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
      	* config/mep/mep.c (mep_expand_va_start): Likewise.
      	(mep_gimplify_va_arg_expr): Likewise.
      	* config/mips/mips.c (mips_va_start): Likewise.
      	(mips_gimplify_va_arg_expr): Likewise.
      	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
      	* config/rs6000/rs6000.c (rs6000_va_start): Likewise.
      	(rs6000_gimplify_va_arg): Likewise.
      	* config/s390/s390.c (s390_va_start): Likewise.
      	(s390_gimplify_va_arg): Likewise.
      	* config/sh/sh.c (sh_va_start): Likewise.
      	(sh_gimplify_va_arg_expr): Likewise.
      	* config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
      	* config/spu/spu.c (spu_va_start): Likewise.
      	(spu_gimplify_va_arg_expr): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
      	Likewise.
      	(xstormy16_gimplify_va_arg_expr): Likewise.
      	* config/xtensa/xtensa.c (xtensa_va_start): Likewise.
      	(xtensa_gimplify_va_arg_expr): Likewise.
      
      	c-family/
      	* c-common.c (pointer_int_sum): Use fold_build_pointer_plus.
      	* c-omp.c (c_finish_omp_for): Likewise.
      
      	cp/
      	* call.c (build_special_member_call): Use fold_build_pointer_plus.
      	* class.c (build_base_path): Likewise.
      	(convert_to_base_statically): Likewise.
      	(dfs_accumulate_vtbl_inits): Likewise.
      	* cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
      	* except.c (expand_start_catch_block): Likewise.
      	* init.c (expand_virtual_init): Likewise.
      	(build_new_1): Likewise.
      	(build_vec_delete_1): Likewise.
      	(build_vec_delete): Likewise.
      	* rtti.c (build_headof): Likewise.
      	(tinfo_base_init): Likewise.
      	* typeck.c (get_member_function_from_ptrfunc): Likewise.
      	(cp_build_addr_expr_1): Likewise.
      	* typeck2.c (build_m_component_ref): Likewise.
      
      	fortran/
      	* trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
      	(gfc_trans_string_copy): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
      	* trans-types.c (gfc_get_array_descr_info): Likewise.
      	* trans.c (gfc_build_array_ref): Likewise.
      
      	java/
      	* builtins.c (static): Use fold_build_pointer_plus.
      	* class.c (make_class_data): Likewise.
      	(build_symbol_entry): Likewise.
      	* except.c (build_exception_object_ref): Likewise.
      	* expr.c (build_java_arrayaccess): Likewise.
      	(build_field_ref): Likewise.
      	(build_known_method_ref): Likewise.
      	(build_invokevirtual): Likewise.
      
      	objc/
      	* objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
      	Use fold_build_pointer_plus.
      	(objc2_build_ehtype_initializer): Likewise.
      
      From-SVN: r176461
      Richard Guenther committed
  13. 18 Jul, 2011 1 commit
  14. 17 Jul, 2011 2 commits
    • pt.c (tinst_level_tick, [...]): Replace with last_error_tinst_level. · 6573e8a0
      gcc/cp/
      	* pt.c (tinst_level_tick, last_template_error_tick): Replace with
      	last_error_tinst_level.
      	(push_tinst_level, pop_tinst_level): Adjust.
      	(problematic_instantiation_changed): Adjust.
      	(record_last_problematic_instantiation): Adjust.
      	* error.c (cp_print_error_function): Don't print
      	current_function_decl if we're in a template instantiation context.
      	(print_instantiation_full_context): Always print first line.
      gcc/testsuite/
      	* lib/prune.exp (prune_gcc_output): Prune "In substitution" too.
      
      From-SVN: r176366
      Jason Merrill committed
    • re PR c++/45329 (When printing a list of candidate functions, explain why each… · 3d2f6864
      re PR c++/45329 (When printing a list of candidate functions, explain why each function failed to match.)
      
      	PR c++/45329
      	PR c++/48934
      	* cp-tree.h (fn_type_unification): Add `bool' parameter.
      	* pt.c (enum template_base_result): Define.
      	(unify_success, unify_unknown): Define.
      	(unify_parameter_deduction_failure): Define.
      	(unify_invalid, unify_cv_qual_mismatch, unify_type_mismatch): Define.
      	(unify_parameter_pack_mismatch): Define.
      	(unify_parameter_pack_inconsistent): Define.
      	(unify_ptrmem_cst_mismatch, unify_vla_arg): Define.
      	(unify_expression_unequal, unify_inconsistency): Define.
      	(unify_method_type_error, unify_arity): Likewise.
      	(unify_too_many_parameters, unify_too_few_parameters): Define.
      	(unify_arg_conversion, unify_no_common_base): Define.
      	(unify_illformed_ptrmem_cst_expr): Define.
      	(unify_substitution_failure): Define.
      	(unify_inconsistent_template_template_parameters): Define.
      	(unify_template_deduction_failure): Define.
      	(unify_template_argument_mismatch): Define.
      	(unify_overload_resolution_failure): Define.
      	(comp_template_args_with_info): New function, split out from...
      	(comp_template_args): ...here.	Call it.
      	(deduction_tsubst_fntype): Add `complain' parameter'.  Pass it
      	to tsubst.
      	(unify): Add `explain_p' parameter.  Pass to all relevant calls.
      	Call above status functions when appropriate.
      	(resolve_overloaded_unification, try_one_overload): Likewise.
      	(type_unification, type_unification_real): Likewise.
      	(unify_pack_expansion): Likewise.
      	(get_template_base, try_class_unification): Likewise.
      	(get_bindings, more_specialized_fn): Pass false to unification
      	calls.
      	(get_class_bindings, do_auto_deduction): Likewise.
      	(convert_nontype_argument): Likewise.
      	(fn_type_unification): Likewise.  Pass tf_warning_or_error if
      	explain_p.
      	(get_template_base): Add `explain_p' parameter and pass it to
      	try_class_unification.	Return an enum template_base_result.
      	* class.c (resolve_address_of_overloaded_function): Pass false to
      	fn_type_unification.
      	* call.c (enum rejection_reason_code): Add new codes.
      	(struct rejection_reason): Add template_unification field.
      	Add template_instantiation field.
      	(template_unification_rejection): Define.
      	(template_unification_error_rejection): Define.
      	(template_instantiation_rejection): Define.
      	(invalid_copy_with_fn_template_rejection): Define.
      	(add_template_candidate): Pass false to unify.
      	Provide more rejection reasons when possible.
      	(print_template_unification_rejection): Define.
      	(print_arity_rejection): Define, split out from...
      	(print_z_candidate): ...here.  Add cases for new rejection
      	reasons.
      
      Co-Authored-By: Jason Merrill <jason@redhat.com>
      
      From-SVN: r176365
      Nathan Froyd committed
  15. 16 Jul, 2011 1 commit
    • Make-lang.in (check-g++-strict-gc): New. · b6c917ff
      	* Make-lang.in (check-g++-strict-gc): New.
      	(cp/except.o): Depend on gt-cp-except.h
      	* except.c: Include gt-cp-except.h.
      	* config-lang.in (gtfiles): Add cp/except.c.
      	* decl2.c (mark_used): Adjust constexpr condition, set
      	function_depth around template instantiation.
      	* parser.c (cp_parser_lambda_body): Set function_depth.
      	* semantics.c (maybe_add_lambda_conv_op): Likewise.
      
      From-SVN: r176350
      Jason Merrill committed
  16. 15 Jul, 2011 1 commit
    • re PR testsuite/49741 (make -k check-c++0x not multilib aware) · 6feeed06
      	PR testsuite/49741
      gcc/
      	* Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
      	rather than --tool_opts.
      gcc/cp/
      	* Make-lang.in (check-c++0x): Use --extra_opts instead of--tool_opts.
      gcc/testsuite/
      	* lib/g++.exp (${tool}_option_help, ${tool}_option_proc): Restore.
      	Use --extra_opts instead of --additional_options.
      
      	* Makefile.in (check-c++): Move check-gcc-c++0x after
      	check-target-libstdc++-v3.
      
      From-SVN: r176332
      Jason Merrill committed
  17. 13 Jul, 2011 2 commits
    • Also test -std=c++0x mode with 'make check-c++' at top level · e2995714
      Also test -std=c++0x mode with 'make check-c++' at top level
      	* Makefile.in (check-gcc-c++0x): New.
      	(check-c++): Depend on it.
      gcc/
      	* Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
      gcc/cp/
      	* Make-lang.in (check-c++0x): New.
      gcc/testsuite/
      	* lib/g++.exp (${tool}_option_help, ${tool}_option_proc): Remove.
      	* lib/lto.exp (lto_prune_warns): Prune warning about -std=c++0x
      	when compiling C files.
      
      From-SVN: r176250
      Jason Merrill committed
    • tree.h (categorize_ctor_elements): Remove comment. · 953d0c90
      gcc/
      	* tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
      	(count_type_elements): Delete.
      	(complete_ctor_at_level_p): Declare.
      	* expr.c (flexible_array_member_p): New function, split out from...
      	(count_type_elements): ...here.  Make static.  Replace allow_flexarr
      	parameter with for_ctor_p.  When for_ctor_p is true, return the
      	number of elements that should appear in the top-level constructor,
      	otherwise return an estimate of the number of scalars.
      	(categorize_ctor_elements): Replace p_must_clear with p_complete.
      	(categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
      	(complete_ctor_at_level_p): New function, borrowing union logic
      	from old categorize_ctor_elements_1.
      	(mostly_zeros_p): Return true if the constructor is not complete.
      	(all_zeros_p): Update call to categorize_ctor_elements.
      	* gimplify.c (gimplify_init_constructor): Update call to
      	categorize_ctor_elements.  Don't call count_type_elements.
      	Unconditionally prevent clearing for variable-sized types,
      	otherwise rely on categorize_ctor_elements to detect
      	incomplete initializers.
      
      gcc/cp/
      	* typeck2.c (split_nonconstant_init_1): Pass the initializer directly,
      	rather than a pointer to it.  Return true if the whole of the value
      	was initialized by the generated statements.  Use
      	complete_ctor_at_level_p instead of count_type_elements.
      
      gcc/testsuite/
      2011-07-12  Chung-Lin Tang  <cltang@codesourcery.com>
      
      	* gcc.target/arm/pr48183.c: New test.
      
      From-SVN: r176228
      Richard Sandiford committed
  18. 12 Jul, 2011 2 commits
  19. 11 Jul, 2011 3 commits
  20. 10 Jul, 2011 1 commit
  21. 09 Jul, 2011 1 commit