1. 05 Jun, 2010 16 commits
  2. 04 Jun, 2010 24 commits
    • pt.c (value_dependent_expression_p): Avoid using an uninitialized variable. · aa3bf45c
      	* pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Avoid
      	using an uninitialized variable.
      
      From-SVN: r160300
      Jason Merrill committed
    • cxx-pretty-print.c (pp_cxx_unary_expression): Handle NOEXCEPT_EXPR. · c56ba354
      	* cxx-pretty-print.c (pp_cxx_unary_expression): Handle NOEXCEPT_EXPR.
      	(pp_cxx_expression): Likewise.
      
      From-SVN: r160299
      Jason Merrill committed
    • Implement noexcept-specification (15.4) · 3a55fb4c
      	Implement noexcept-specification (15.4)
      	* parser.c (cp_parser_exception_specification_opt): Parse it.
      	Give -Wdeprecated warning about throw() specs.
      	* pt.c (tsubst_exception_specification): Handle it.
      	* error.c (dump_exception_spec): Handle it.
      	* cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
      	* typeck.c (comp_except_specs): Handle compatibility rules.
      	Change exact parm to take an enum.
      	* typeck2.c (merge_exception_specifiers): Handle noexcept.
      	* except.c (nothrow_spec_p, type_noexcept_p): New fns.
      	(type_throw_all_p, build_noexcept_spec): New fns.
      	* cp-tree.h (TYPE_NOTHROW_P, TYPE_NOEXCEPT_P): Use them.
      	(comp_except_specs): Define ce_derived, ce_normal, ce_exact enums.
      	(cp_tree_index): Add CPTI_NOEXCEPT_TRUE_SPEC, CPTI_NOEXCEPT_FALSE_SPEC.
      	(noexcept_true_spec, noexcept_false_spec): New macros.
      	* name-lookup.c (pushdecl_maybe_friend): Adjust.
      	* search.c (check_final_overrider): Adjust.
      	* decl.c (check_redeclaration_exception_specification): Adjust.
      	(use_eh_spec_block): Use type_throw_all_p.
      	(cxx_init_decl_processing): Set noexcept_false_spec,noexcept_true_spec.
      	Give operator new a noexcept-specification in C++0x mode.
      	* tree.c (build_exception_variant, cxx_type_hash_eq): Adjust.
      	(cp_build_type_attribute_variant): Don't test TYPE_RAISES_EXCEPTIONS.
      
      From-SVN: r160298
      Jason Merrill committed
    • Implement noexcept operator (5.3.7) · 0a766368
      	Implement noexcept operator (5.3.7)
      	* c-common.c (c_common_reswords): Add noexcept.
      	* c-common.h (enum rid): Add RID_NOEXCEPT.
      cp/
      	* cp-tree.def (NOEXCEPT_EXPR): New.
      	* except.c (check_noexcept_r, finish_noexcept_expr): New.
      	* cp-tree.h: Declare finish_noexcept_expr.
      	* parser.c (cp_parser_unary_expression): Parse noexcept-expression.
      	* pt.c (tsubst_copy_and_build): And tsubst it.
      	(type_dependent_expression_p): Handle it.
      	(value_dependent_expression_p): Handle it.
      
      From-SVN: r160297
      Jason Merrill committed
    • call.c (build_conditional_expr): Never fold in unevaluated context. · d8a0d13e
      	* call.c (build_conditional_expr): Never fold in unevaluated context.
      	* tree.c (build_aggr_init_expr): Propagate TREE_NOTHROW.
      	* semantics.c (simplify_aggr_init_expr): Likewise.
      	* typeck.c (merge_types): Call merge_exception_specifiers.
      	* decl.c (duplicate_decls): Check DECL_SOURCE_LOCATION rather than
      	DECL_ANTICIPATED for preferring new type.
      
      From-SVN: r160296
      Jason Merrill committed
    • darwin-driver.c (darwin_default_min_version): Use · bdc6b402
      	* config/darwin-driver.c (darwin_default_min_version): Use
      	* GCC-specific formats in diagnostics.
      	* cppspec.c (lang_specific_driver): Use GCC-specific formats in
      	diagnostics.
      	* gcc.c (translate_options, read_specs, add_sysrooted_prefix,
      	execute, process_command, end_going_arg, do_self_spec, do_spec_1,
      	eval_spec_function, handle_braces, process_brace_body, main,
      	perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
      	getenv_spec_function, compare_version_strings,
      	version_compare_spec_function): Use GCC-specific formats in
      	diagnostics.
      
      cp:
      	* g++spec.c (lang_specific_driver): Use GCC-specific formats in
      	diagnostics.
      
      fortran:
      	* gfortranspec.c (append_arg, lang_specific_driver): Use
      	GCC-specific formats in diagnostics.
      
      java:
      	* jvspec.c (lang_specific_driver): Use GCC-specific formats in
      	diagnostics.
      
      From-SVN: r160292
      Joseph Myers committed
    • re PR c++/44412 (Another bogus set-but-not-used warning) · 2aa64966
      	PR c++/44412
      	* typeck.c (build_class_member_access_expr): Call mark_exp_read
      	on object for static data members.
      
      	* g++.dg/warn/Wunused-var-10.C: New test.
      	* g++.dg/warn/Wunused-var-11.C: New test.
      
      From-SVN: r160290
      Jakub Jelinek committed
    • re PR c++/44362 (Bogus set-but-not-used warning) · 16c82123
      	PR c++/44362
      	* call.c (build_conditional_expr): If both arg2 and arg3 are lvalues
      	with the same type, call mark_lvalue_use on both.
      
      	* c-c++-common/Wunused-var-10.c: New test.
      
      Co-Authored-By: Jason Merrill <jason@redhat.com>
      
      From-SVN: r160289
      Jakub Jelinek committed
    • i386.md (*addhi_1_lea): Assert that operand 0 and operand 1 are equal. · 7d1f0f8a
      	* config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
      	that operand 0 and operand 1 are equal.
      	(*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
      	(*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
      	and operand 1 are equal.
      	<default>: Ditto. Remove ??? comment.
      	(*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
      	and operand 1 are equal.
      	<default>: Ditto. Remove ??? comment.
      	(*adddi_4) <default>:  Remove assert that operand 0 and operand 1
      	are equal.
      	(*add<mode>_4) <default>: Ditto.
      	(*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
      
      From-SVN: r160287
      Uros Bizjak committed
    • i386-protos.h (ix86_print_operand): Declare. · 6b3c42ae
      	* config/i386/i386-protos.h (ix86_print_operand): Declare.
      	* config/i386/i386.c (ix86_print_operand): Make non-static.
      	* config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
      	* output.h (output_operand): Declare.
      	* final.c (output_operand): Make non-static.
      
      From-SVN: r160286
      Nathan Froyd committed
    • re PR rtl-optimization/44013 (VTA produces wrong code) · 39e7207a
      	PR rtl-optimization/44013
      	* sched-deps.c (add_dependence_list_and_free): Don't free lists
      	when processing debug insns.
      
      From-SVN: r160281
      Alexandre Oliva committed
    • re PR debug/41371 (var-tracking is slow and memory hungry) · 0fa43fb7
      	PR debug/41371
      	* var-tracking.c (find_loc_in_1pdv): Mark initial value before
      	recursing.  Check that recursion is bounded.  Rename inner var
      	to avoid hiding incoming argument.
      
      From-SVN: r160280
      Alexandre Oliva committed
    • i386.md (*addqi_2): Do not assert operands[2] == 255 for TYPE_INCDEC operands. · ad1f7916
      	* config/i386/i386.md (*addqi_2): Do not assert operands[2] == 255
      	for TYPE_INCDEC operands.
      	(*addqi_3): Ditto.
      	(*addqi_4): Ditto.
      	(*addqi_5): Ditto.
      	(*addqi_ext_1_rex64): Ditto.
      	(*addqi_ext_1): Ditto.
      
      	(*addqi_4): Check for incdec_operand in QImode.
      
      	(*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
      	using SWI mode iterator.
      	(*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
      	(*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
      	mode iterator.
      	(*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
      	using SWI mode iterator.
      
      From-SVN: r160277
      Uros Bizjak committed
    • re PR c/25880 (improve message of warning for discarding qualifiers) · 49706e39
      2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR c/25880
      	* c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
      	* c-format.c (gcc_diag_flag_specs): Add hash.
      	(gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
      	(gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
      	* c-pretty-print.c (pp_c_cv_qualifier): Rename as
      	pp_c_cv_qualifiers. Handle qualifiers spelling here.
      	(pp_c_type_qualifier_list): Call the function above.
      	* c-pretty-print.h (pp_c_cv_qualifiers): Declare.
      	* c-typeck.c (handle_warn_cast_qual): Print qualifiers.
      	(WARN_FOR_QUALIFIERS): New macro.
      	(convert_for_assignment): Use it.
      testsuite/
      	* gcc.dg/assign-warn-2.c: Update.
      	* gcc.dg/cpp/line3.c: Update.
      	* gcc.dg/c99-array-lval-8.c: Update.
      	* gcc.dg/cast-qual-2.c: Update.
      	* gcc.dg/c99-arraydecl-3.c:  Update.
      	* gcc.dg/assign-warn-1.c:  Update.
      	* gcc.dg/format/gcc_diag-1.c:  Update.
      
      From-SVN: r160274
      Manuel López-Ibáñez committed
    • cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'. · b13ea8bd
      2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
      
              * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix
              by '*'.
      
      From-SVN: r160272
      Kai Tietz committed
    • df.h (df_rd_bb_info, [...]): Embedd bitmap_head into the structure. · b33a91c9
      
      	* df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
      	df_byte_lr_bb_info): Embedd bitmap_head into the structure.
      	(DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
      	DF_BYTE_LR_OUT): Update for embedded bitmaps.
      	* fwprop.c (single_def_use_enter_block): Likewise.
      	* ddg.c (create_ddg_dep_from_intra_loop_link,
      	add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
      	* loop-iv.c (latch_dominating_def): Likewise.
      	* df-problems.c (df_rd_free_bb_info, df_rd_alloc,
      	df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
      	df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
      	df_rd_transfer_function, df_rd_top_dump,
      	df_rd_bottom_dump): Update.
      	(df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
      	df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
      	df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
      	df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
      	df_lr_verify_solution_start, df_lr_verify_solution_end,
      	df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
      	df_live_free_bb_info, df_live_alloc, df_live_reset,
      	df_live_bb_local_compute, df_live_init, df_live_transfer_function,
      	df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
      	df_live_verify_solution_start, df_live_verify_solution_end,
      	df_live_verify_transfer_functions, df_chain_create_bb,
      	df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
      	df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
      	df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
      	df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
      	df_byte_lr_confluence_0, df_byte_lr_confluence_n,
      	df_byte_lr_transfer_function, df_byte_lr_top_dump,
      	df_byte_lr_bottom_dump, df_create_unused_note,
      	df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
      	df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
      	df_md_transfer_function, df_md_init, df_md_confluence_0,
      	df_md_confluence_n,
      	df_md_top_dump, df_md_bottom_dump): Update.  (struct df_lr_problem_data):
      	Embedd bitmap headers.
      
      From-SVN: r160268
      Jan Hubicka committed
    • check_jni_methods.sh.in: Don't use diff -U. · fb340c3c
      	libjava/classpath:
      	* scripts/check_jni_methods.sh.in: Don't use diff -U.
      	Adapt grep regex, ignore file and problem message.
      
      	contrib:
      	* test_summary: Don't use diff -u.
      	Adapt egrep regex.
      
      From-SVN: r160264
      Rainer Orth committed
    • re PR rtl-optimization/39871 (Code size increase on ARM due to poor register allocation) · 8ff49c29
      	PR rtl-optimization/39871
      	PR rtl-optimization/40615
      	PR rtl-optimization/42500
      	PR rtl-optimization/42502
      	* ira.c (init_reg_equiv_memory_loc: New function.
      	(ira): Call it twice.
      	* reload.h (calculate_elim_costs_all_insns): Declare.
      	* ira-costs.c: Include "reload.h".
      	(regno_equiv_gains): New static variable.
      	(init_costs): Allocate it.
      	(finish_costs): Free it.
      	(ira_costs): Call calculate_elim_costs_all_insns.
      	(find_costs_and_classes): Take estimated elimination costs
      	into account.
      	(ira_adjust_equiv_reg_cost): New function.
      	* ira.h (ira_adjust_equiv_reg_cost): Declare it.
      	* reload1.c (init_eliminable_invariants, free_reg_equiv,
      	elimination_costs_in_insn, note_reg_elim_costly): New static
      	functions.
      	(elim_bb): New static variable.
      	(reload): Move code out of here into init_eliminable_invariants and
      	free_reg_equiv.  Call them.
      	(calculate_elim_costs_all_insns): New function.
      	(eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
      	all callers changed.  If FOR_COSTS is true, don't call alter_reg,
      	but call note_reg_elim_costly if we turned a valid memory address
      	into an invalid one.
      	* Makefile.in (ira-costs.o): Depend on reload.h.
      
      testsuite/
      	PR rtl-optimization/39871
      	PR rtl-optimization/40615
      	PR rtl-optimization/42500
      	PR rtl-optimization/42502
      	* gcc.target/arm/eliminate.c: New test.
      
      From-SVN: r160260
      Bernd Schmidt committed
    • thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives for pool ranges. · 95c5655c
      	gcc/
      	* config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
      	for pool ranges.
      
      From-SVN: r160259
      Julian Brown committed
    • re PR lto/41584 (WHOPR doesn't grok empty units) · d4c0c9f6
      2010-06-04  Richard Guenther  <rguenther@suse.de>
      
      	PR lto/41584
      	* cgraph.h (struct varpool_node): Add lto_file_data field.
      	* lto-cgraph.c (input_varpool_node): Initialize it.
      
      	lto/
      	* lto.c (lto_1_to_1_map): Use the proper file_data for
      	varpool nodes.
      
      From-SVN: r160258
      Richard Guenther committed
    • gnatlink.adb (gnatlink): Remove support for -fsjlj switch. · addcce04
      	* gnatlink.adb (gnatlink): Remove support for -fsjlj switch.
      	* gcc-interface/lang-specs.h: Likewise.
      
      From-SVN: r160257
      Eric Botcazou committed
    • re PR libfortran/34670 (bounds checking for array intrinsics) · 07fc109c
      2010-06-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR libfortran/34670
      	* intrinsics/date_and_time.c:  Replace assert with runtime_error
      	when VALUE is too small.
      
      From-SVN: r160253
      Thomas Koenig committed
    • predicates.md (pic_symbolic_operand): Remove predicate. · 308e51aa
      	* config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
      	* config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
      	predicate in "type" attribute calculation.
      	(*addsi_1_zext): Ditto.
      	(*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
      	(*addsi_2_zext): Ditto.
      	(*add<mode>_3): Ditto.
      	(*addsi_3_zext): Ditto.
      	(*add<mode>_5): Ditto.
      
      From-SVN: r160252
      Uros Bizjak committed