Commit Graph

100234 Commits

Author SHA1 Message Date
H.J. Lu
75d2d58156 Add -std=c99 to avx-cmpsd-1.c and avx-cmpss-1.c.
2010-05-15  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.target/i386/avx-cmpsd-1.c: Add -std=c99.
	* gcc.target/i386/avx-cmpss-1.c: Likewise.

From-SVN: r159432
2010-05-15 06:54:44 -07:00
Janus Weil
f8dde8af6f re PR fortran/43207 ([OOP] invalid (pointer) assignment to and from abstract non-polymorphic expressions)
2010-05-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43207
	PR fortran/43969
	* gfortran.h (gfc_class_null_initializer): New prototype.
	* expr.c (gfc_class_null_initializer): New function to build a NULL
	initializer for CLASS pointers.
	* symbol.c (gfc_build_class_symbol): Modify internal naming of class
	containers. Remove default NULL initialization of $data component.
	* trans.c (gfc_allocate_array_with_status): Fix wording of an error 
	message.
	* trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
	Use new function 'gfc_class_null_initializer'.
	* trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
	class variables.


2010-05-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/43207
	PR fortran/43969
	* gfortran.dg/class_18.f03: New.
	* gfortran.dg/class_19.f03: New.

From-SVN: r159431
2010-05-15 15:52:33 +02:00
Jan Hubicka
46c3001944 tree.h (memory_identifier_string): Remove.
* tree.h (memory_identifier_string): Remove.
	* ipa-reference.c: Update comment; do not include gt-ipa-reference.h
	(ipa_reference_global_vars_info_d): Remove statics_not_read and
	statics_not_written.
	(ipa_reference_optimization_summary_d): New structure.
	(ipa_reference_optimization_summary_t): New type and vector.
	(ipa_reference_vars_info_d): Embedd structures instead of using
	pointers.
	(reference_vars_to_consider): Remove out of GGC space.
	(module_statics_escape): Remove.
	(global_info_obstack): Rename to ...
	(optimization_summary_obstack): ... this one.
	(initialization_status_t): Remove.
	(memory_identifier_string): Remove.
	(get_reference_vars_info): Fix indenting.
	(set_reference_vars_info): Likewise.
	(get_reference_optimization_summary): New.
	(set_reference_optimization_summary): New.
	(get_global_reference_vars_info): Remove.
	(ipa_reference_get_read_global): Remove.
	(ipa_reference_get_written_global): Remove.
	(ipa_reference_get_not_read_global): Update.
	(ipa_reference_get_not_written_global): Update.
	(is_proper_for_analysis): Outlaw addressable.
	(propagate_bits): Update for new datastructures.
	(analyze_variable): Remove.
	(init_function_info): Update for new datastructures.
	(clean_function_local_data): Remove.
	(clean_function): Remove.
	(copy_global_bitmap): Use optimizations_summary_obstack.
	(duplicate_node_data): Duplicate optimization summary only.
	(remove_node_data): Remove optimization summary only.
	(generate_summary): Do not analyze variables; do not compute
	module_statics_escape; do not prune solutions by it.
	(read_write_all_from_decl): Fix typos in comments.
	(propagate): Doscover readonly and nonaddressable first;
	update for new datastructures; share global bitmaps.
	* ipa-reference.h (ipa_reference_get_read_global,
	ipa_reference_get_written_global): Remove.
	* ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
	* Makefile.in: Remove ipa-refereference from GT files.

From-SVN: r159430
2010-05-15 09:46:55 +00:00
Jakub Jelinek
22bf7d174a re PR debug/44112 (Revision 159354 causes Fortran test failures)
PR debug/44112
	* dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
	for all SYMBOL_REF_DECLs.

	* gcc.dg/debug/dwarf2/const-1.c: Remove.
	* g++.dg/debug/dwarf2/const1.C: Remove.

From-SVN: r159429
2010-05-15 08:01:20 +02:00
Jason Merrill
b33a0480d7 C++ DR 475
C++ DR 475
	* except.c (build_throw): Simplify, adjust for DR 475.

From-SVN: r159428
2010-05-14 22:22:37 -04:00
Joseph Myers
8efab4c82c * fi.po: New.
From-SVN: r159426
2010-05-15 02:06:29 +01:00
GCC Administrator
8123be7aae Daily bump.
From-SVN: r159425
2010-05-15 00:17:02 +00:00
Jan Hubicka
4a444e5816 cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
* cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
	(varpool_all_refs_explicit_p): New inline function.
	* ipa-reference.c: Update comment.
	(module_statics_written): Remove.
	(get_static_decl): Remove.
	(ipa_init): Do not initialize module_statics_written.
	(analyze_function): Likewise.
	(generate_summary): Likewise; do not compute module_statics_readonly
	and do not update variable flags.
	(propagate): Call ipa_discover_readonly_nonaddressable_vars.
	* ipa.c: Inlucde flags.h
	(cgraph_local_node_p): New.
	(cgraph_remove_unreachable_nodes): Return early when not optimizing;
	promote functions to local.
	(ipa_discover_readonly_nonaddressable_vars): New function.
	(function_and_variable_visibility): Use cgraph_local_node_p.
	* varpool.c (varpool_finalize_decl): Set force_output for
	DECL_PRESERVE_P vars.

From-SVN: r159421
2010-05-14 23:39:39 +00:00
Steven G. Kargl
c13af44bcc re PR fortran/44135 (Negative array bounds lead to spurious warning)
2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/44135
	* gfortran.dg/actual_array_interface_2.f90: New test.

2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/44135
	* fortran/interface.c (get_sym_storage_size): Use signed instead of
	unsigned mpz_get_?i routines.

From-SVN: r159415
2010-05-14 21:02:26 +00:00
Nathan Froyd
c4e64f39d9 re PR middle-end/44103 (New Java test failures)
PR 44103
	* java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a
	vector.  Move call to build_constructor...
	(FINISH_RECORD_CONSTRUCTOR): ...here.  Add necessary arguments.  Clear
	TREE_CONSTANT on the constructor.
	(PUSH_SUPER_VALUE): Change first argument to a vector.
	(PUSH_FIELD_VALUE): Likewise.
	* resource.c (compile_resource_data): Update calls to above macros.
	* constants.c (build_constants_constructor): Likewise.
	* class.c (build_utf8_ref): Likewise.
	(make_field_value): Likewise.
	(make_method_value): Likewise.
	(add_table_and_syms): New function.
	(make_class_data): Call it.  Update calls to above macros.
	(build_symbol_table_entry): New function.
	(build_symbol_entry): Call it.  Update calls to above macros.
	(emit_symbol_table): Likewise.
	(make_catch_class_record): Update calls to above macros.
	(build_assertion_table_entry): New function.
	(add_assertion_table_entry): Call it.
	(emit_assertion_table): Likewise.

From-SVN: r159414
2010-05-14 20:47:39 +00:00
Jan Hubicka
bc8ddfe635 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
From-SVN: r159413
2010-05-14 20:38:43 +00:00
Richard Guenther
4d2ab9e36b re PR tree-optimization/44119 (error: SSA name in freelist but still referenced)
2010-05-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44119
	* tree-ssa-pre.c (eliminate): Properly mark replacement of
	a PHI node necessary.

	* gcc.c-torture/compile/pr44119.c: New testcase.

From-SVN: r159412
2010-05-14 20:18:34 +00:00
Eric Botcazou
9e87b84227 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
From-SVN: r159409
2010-05-14 19:27:14 +00:00
Jason Merrill
9bb1a81bb3 re PR c++/44127 (G++ emits unnecessary EH code)
PR c++/44127
gcc:
	* gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
	(gimple_call_set_nothrow): New.
	* gimple.c (gimple_build_call_from_tree): Call it.
	(gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
gcc/cp:
	* except.c (dtor_nothrow): Return nonzero for type with
	trivial destructor.

From-SVN: r159408
2010-05-14 14:55:22 -04:00
Jason Merrill
786f715dc6 re PR c++/44127 (G++ emits unnecessary EH code)
PR c++/44127
gcc:
	* gimplify.c (gimplify_seq_add_stmt): No longer static.
	* gimple.h: Declare it.
	* gimple.c (gimple_build_eh_filter): No ops.
gcc/cp:
	* cp-gimplify.c (gimplify_must_not_throw_expr): Use
	gimple_build_eh_must_not_throw.

From-SVN: r159407
2010-05-14 14:55:10 -04:00
Jan Hubicka
19fb0b860f ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue nodes already in queue.
* ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
	nodes already in queue.
	(cgraph_remove_unreachable_nodes): Cleanup; fix problem with re-enqueueing
	node.

From-SVN: r159405
2010-05-14 18:34:30 +00:00
Jakub Jelinek
88c04a5de2 re PR debug/44136 (ICE in expand_debug_expr with -mno-sse)
PR debug/44136
	* cfgexpand.c (expand_debug_expr): If non-memory op0
	has BLKmode, return NULL.

	* gcc.dg/pr44136.c: New test.

From-SVN: r159400
2010-05-14 20:09:14 +02:00
Harsha Jagasia
1133125eb8 config.gcc: Add support for --with-cpu option for bdver1.
2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config.gcc: Add support for --with-cpu option for bdver1.
	* config/i386/i386.h (TARGET_BDVER1): New macro.
	(ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
	to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
	(ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
	to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
	Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
	(TARGET_CPU_DEFAULT_NAMES): Add bdver1.
	(processor_type): Add PROCESSOR_BDVER1.
	* config/i386/i386.md: Add bdver1 as a new cpu attribute to match
	processor_type in config/i386/i386.h.
	Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
	movaps <reg, reg> instead of movapd <reg, reg> when replacing
	movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
	Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
	to emit packed xor instead of packed double/packed integer
	xor for SSE and AVX when moving a zero value.
	* config/i386/sse.md: Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
	 to emit movaps instead of movapd/movdqa for SSE and AVX.
	Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single
	logical operations i.e and, or and xor instead of packed double logical
	operations for SSE and AVX. 
	* config/i386/i386-c.c: 
	(ix86_target_macros_internal): Add PROCESSOR_BDVER1.
	* config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
	(has_fma4, has_xop): New.
	* config/i386/i386.c (bdver1_cost): New variable.
	(m_BDVER1): New macro.
	(m_AMD_MULTIPLE): Add m_BDVER1.
	(x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
	 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
	 x86_tune_use_simode_fiop, x86_tune_promote_qimode, 
	 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
	 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
	 x86_tune_sse_partial_reg_dependency, x86_tune_sse_unaligned_load_optimal,
	 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
	 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
	 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
	 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
	 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch): 
	Enable/disable for bdver1.
	(processor_target_table): Add bdver1_cost.
	(cpu_names): Add bdver1.
	(override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
	 processor_alias_table.
	(ix86_expand_vector_move_misalign): Change 
	 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
	 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
	 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
	 of movupd/movdqu for SSE and AVX.
	(ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
	(ix86_tune_adjust_cost): Add code for bdver1.
	(standard_sse_constant_opcode): Add check for
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
	of packed double xor for SSE and AVX.

From-SVN: r159399
2010-05-14 17:35:11 +00:00
Pat Haugen
e972cc7e9a tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs() result to unsigned.
* tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
	result to unsigned.

From-SVN: r159397
2010-05-14 15:48:51 +00:00
Tristan Gingold
6a08009670 toplev.c (default_debug_hooks): Remove this variable.
2010-05-14  Tristan Gingold  <gingold@adacore.com>

	* toplev.c (default_debug_hooks): Remove this variable.
	(process_options): Remove assignments to default_debug_hooks.

From-SVN: r159396
2010-05-14 15:42:30 +00:00
Martin Jambor
b5023f3c40 cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef and define.
2010-05-14  Martin Jambor  <mjambor@suse.cz>

	* cp/cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
	and define.

	* langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
	(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
	* langhooks.h (struct lang_hooks_for_decls): Removed field
	fold_obj_type_ref.
	* tree.c (free_lang_data): Remove assignment to
	lang_hooks.fold_obj_type_ref.
	* tree.def (OBJ_TYPE_REF): Update comment.

From-SVN: r159393
2010-05-14 15:08:45 +02:00
Richard Guenther
6141b7db45 re PR tree-optimization/44124 (valgrind reports invalid read while compiling compile/pr34091.c)
2010-05-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44124
	* tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.

From-SVN: r159390
2010-05-14 12:36:28 +00:00
Jakub Jelinek
88e09c797b trans.c (trans_code): Set backend locus early.
* trans.c (trans_code): Set backend locus early.
	* trans-decl.c (gfc_get_fake_result_decl): Use source location
	of the function instead of current input_location.

	* gfortran.dg/gomp/pr44036-1.f90: Adjust.

From-SVN: r159388
2010-05-14 09:40:06 +02:00
Eric Botcazou
c46a5e284e Fix long lines
From-SVN: r159386
2010-05-14 06:23:16 +00:00
Jonathan Wakely
a940d033a1 call.c (build_new_method_call): Change warning text.
2010-05-14  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* call.c (build_new_method_call): Change warning text.
	* typeck2.c (build_functional_cast): Change error text.

From-SVN: r159385
2010-05-14 06:32:48 +01:00
Shujing Zhao
74b80262bc re PR c++/30566 (-Wshadow warns about clashes between nested function parameters in C++)
gcc/cp/
2010-05-14  Shujing Zhao  <pearly.zhao@oracle.com>

        PR c++/30566
        * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
        shadowing the outer parameter or variables by the declaration of
        nested function in nested structure or class. Warn the shadowing by
        the declaration of nested lambda expression.

gcc/testsuite/
2010-05-14  Shujing Zhao  <pearly.zhao@oracle.com>

        PR c++/30566
        * testsuite/g++.dg/warn/Wshadow-4.C: Adjust.
        * testsuite/g++.dg/warn/Wshadow-5.C: New test.
        * testsuite/g++.dg/warn/Wshadow-6.C: New test.

From-SVN: r159383
2010-05-14 03:19:32 +00:00
Alan Modra
e15a8cbe1a re PR target/44075 (__builtin_eh_return miscompiled)
PR target/44075
	* config/rs6000/rs6000.c (struct machine_function): Reorder
	fields for better packing.  Add lr_save_state.
	(rs6000_ra_ever_killed): Return lr_save_state if set.
	(rs6000_emit_eh_reg_restore): Set lr_save_state.

From-SVN: r159382
2010-05-14 10:05:16 +09:30
GCC Administrator
3d8d607efc Daily bump.
From-SVN: r159381
2010-05-14 00:17:10 +00:00
Jason Merrill
3a11c66591 typeck.c (cp_build_array_ref): Factor out from...
* typeck.c (cp_build_array_ref): Factor out from...
	(build_array_ref): ...here.  Drop complain parm.
	(build_new_op): Adjust.
	* class.c (build_vtbl_ref_1): Adjust.
	* decl2.c (grok_array_decl): Adjust.
	* cp-tree.h: Adjust prototypes.

From-SVN: r159377
2010-05-13 16:53:38 -04:00
Jan Hubicka
a2e66caf57 * decl.c (cp_finish_decl): Do not worry about used attribute.
From-SVN: r159372
2010-05-13 17:49:49 +00:00
Jan Hubicka
da405c74af varpool.c (decide_is_variable_needed): Drop code checking TREE_SYMBOL_REFERENCED.
* varpool.c (decide_is_variable_needed): Drop code checking
	TREE_SYMBOL_REFERENCED.

From-SVN: r159371
2010-05-13 17:47:48 +00:00
Jan Hubicka
152464d21e final.c (output_addr_const): Do not call mark_decl_referenced.
* final.c (output_addr_const): Do not call mark_decl_referenced.
	* cgraphunit.c (process_function_and_variable_attributes): Use
	mark_needed_node dirrectly.
	(assemble_thunk): Do not call mark_decl_referenced.

From-SVN: r159370
2010-05-13 17:46:21 +00:00
Anatoly Sokolov
32cbdf00fa * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
From-SVN: r159369
2010-05-13 20:29:00 +04:00
Jeff Law
e4f36d3117 ira-conflicts.c (print_allocno_conflicts): New function broken out from...
* ira-conflicts.c (print_allocno_conflicts): New function broken out
	from...
	(print_conflicts): Call print_allocno_conflicts.

From-SVN: r159368
2010-05-13 08:46:29 -06:00
Jakub Jelinek
1fcebc1100 re PR middle-end/44104 (New test failures)
PR debug/44104
	* dwarf2out.c (modified_type_die): Don't dereference mod_type_die
	if it is NULL.

From-SVN: r159367
2010-05-13 16:24:36 +02:00
Daniel Franke
f2cbd86c34 re PR fortran/35779 (error pointer wrong in PARAMETER)
gcc/fortran/:
2010-05-13  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/35779
        * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
        Updated all usages.
        * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
        * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
        iterators.

gcc/testsuite/:
2010-05-13  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/35779
        * gfortran.dg/initialization_25.f90: New.

From-SVN: r159366
2010-05-13 10:08:05 -04:00
Kai Tietz
917ed77360 config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose t-mingw-w64 or t-mingw-w32 for multilib configuration.
2010-05-13  Kai Tietz  <kai.tietz@onevision.com>

        * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
        t-mingw-w64 or t-mingw-w32 for multilib configuration.
        * config/i386/t-mingw-w32: New.
        * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.

From-SVN: r159364
2010-05-13 14:36:59 +02:00
Martin Jambor
1ae6fe9be5 gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to gimple-fold.c).
2010-05-13  Martin Jambor  <mjambor@suse.cz>

	* gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
	gimple-fold.c).
	* gimple-fold.c (get_base_binfo_for_type): New function.
	(gimple_get_relevant_ref_binfo): Likewise.
	(gimple_fold_obj_type_ref_known_binfo): Likewise.
	(gimple_fold_obj_type_ref): Likewise.
	(fold_gimple_call): Simplify condition for folding virtual calls
	and call gimple_fold_obj_type_ref.
	* gimple.h (gimple_get_relevant_ref_binfo): Declare.
	(gimple_fold_obj_type_ref_known_binfo): Likewise.

	* testsuite/g++.dg/otr-fold-1.C: New test.
	* testsuite/g++.dg/otr-fold-2.C: New test.

From-SVN: r159362
2010-05-13 14:19:02 +02:00
Jakub Jelinek
2b45bf2152 re PR fortran/44036 (I can't declare an external function in an OMP shared statement.)
PR fortran/44036
	* openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
	variable lists.
	* trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
	by reference dummy procedures or non-dummy procedure pointers.
	(gfc_omp_predetermined_sharing): Return
	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.

	* gfortran.dg/gomp/pr44036-1.f90: New test.
	* gfortran.dg/gomp/pr44036-2.f90: New test.
	* gfortran.dg/gomp/pr44036-3.f90: New test.

From-SVN: r159361
2010-05-13 14:02:50 +02:00
Andreas Schwab
78c7cabba9 * config/rs6000/rs6000-protos.h
(rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
* config/rs6000/rs6000.c (rs6000_mode_dependent_address)
(rs6000_debug_mode_dependent_address)
(rs6000_mode_dependent_address_ptr): Likewise.

From-SVN: r159359
2010-05-13 11:39:28 +00:00
Eric Botcazou
6560b67e1a Fix formatting nits
From-SVN: r159358
2010-05-13 11:29:29 +00:00
Jakub Jelinek
823e947359 re PR debug/43983 (var-tracking needlessly throws away location info for SRAed vars)
PR debug/43983
	* var-tracking.c (track_expr_p): Allow tracking of variables optimized
	by SRA.
	* Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
	* tree-sra.c (create_access_replacement): Call unshare_expr before
	passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from
	it.
	* dwarf2out.c: Include tree-flow.h.
	(struct var_loc_node): Rename var_loc_note field to loc, add comment.
	(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
	Handle DW_OP_bit_piece.
	(decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
	construct_piece_list, adjust_piece_list): New functions.
	(add_var_loc_to_decl): Handle SRA optimized variables.
	Adjust for var_loc_note to loc field renaming.
	(dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
	in VAR_LOCATION note.
	(new_loc_descr_op_bit_piece): New function.
	(dw_sra_loc_expr): New function.
	(dw_loc_list): Use it.  Don't handle the last range after the
	loop, handle it inside of the loop.  Adjust for var_loc_note
	to loc field renaming.
	(add_location_or_const_value_attribute): Only special case
	single entry loc lists if loc is NOTE_P.  Adjust for
	var_loc_note to loc field renaming.
	(dwarf2out_var_location): Don't set newloc->var_loc_note
	and newloc->next here.

	* gcc.dg/guality/sra-1.c: New test.

From-SVN: r159357
2010-05-13 12:40:51 +02:00
Andreas Schwab
d20cfbc2af tracebak.c (__gnat_backtrace): Mark top_stack with ATTRIBUTE_UNUSED.
* tracebak.c (__gnat_backtrace): Mark top_stack with
ATTRIBUTE_UNUSED.

From-SVN: r159356
2010-05-13 09:59:29 +00:00
Jan Hubicka
bd3cdcc087 cgraph.c (cgraph_mark_address_taken_node): No longer imply needed flag.
* cgraph.c (cgraph_mark_address_taken_node): No longer imply needed flag.
	* cgraph.h (cgraph_only_called_directly_p,
	cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
	(cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
	* cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
	(assemble
	* ipa.c (cgraph_remove_unreachable_nodes): Use
	cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken flags.
	* tree-inline.c (copy_bb): Check address_taken flag.
	* tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
	externally_visible flag.

	* tree-ssa/unreachable.c: New test.

From-SVN: r159354
2010-05-13 06:13:46 +00:00
Jason Merrill
73647d7519 typeck.c (build_array_ref): Take complain parm.
* typeck.c (build_array_ref): Take complain parm.
	* cp-tree.h: Add it to prototype.
	* call.c (build_new_op): Pass it.
	* class.c (build_vtbl_ref): Pass it.
	* decl2.c (grok_array_decl): Pass it.

From-SVN: r159351
2010-05-13 01:05:21 -04:00
Jason Merrill
5116acc6fe re PR bootstrap/44048 (building without C++ enabled fails)
PR bootstrap/44048
	PR target/44099
gcc/cp:
	* cp-tree.def (NULLPTR_TYPE): Remove.
	* cp-tree.h (NULLPTR_TYPE_P): New.
	(SCALAR_TYPE_P): Use it.
	(nullptr_type_node): New.
	(cp_tree_index): Add CPTI_NULLPTR_TYPE.
	* decl.c (cxx_init_decl_processing): Call record_builtin_type on
	nullptr_type_node.
	* cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
	* cxx-pretty-print.c (pp_cxx_constant): Likewise.
	* error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
	* mangle.c (write_type): Likewise.
	* name-lookup.c (arg_assoc_type): Likewise.
	* typeck.c (build_reinterpret_cast_1): Likewise.
	* rtti.c (typeinfo_in_lib_p): Likewise.
	(emit_support_tinfos): Remove local nullptr_type_node.
gcc:
	* dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
	* sdbout.c (plain_type_1): Likewise.
	* dwarf2out.c (is_base_type): Likewise.
	(gen_type_die_with_usage): Likewise.  Generate
	DW_TAG_unspecified_type for any LANG_TYPE.

From-SVN: r159350
2010-05-13 01:04:46 -04:00
Jason Merrill
fbfc8363a3 cp-tree.h (UNKNOWN_TYPE): Remove.
* cp-tree.h (UNKNOWN_TYPE): Remove.
	* decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
	* error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
	* typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
	* class.c (instantiate_type): Check unknown_type_node rather than
	UNKNOWN_TYPE.
	* name-lookup.c (maybe_push_decl): Likewise.
	* rtti.c (get_tinfo_decl_dynamic): Likewise.
	(get_typeid): Likewise.
	* semantics.c (finish_offsetof): Likewise.

From-SVN: r159349
2010-05-13 01:04:14 -04:00
GCC Administrator
07eea34ee6 Daily bump.
From-SVN: r159348
2010-05-13 00:17:17 +00:00
Uros Bizjak
e66afe476e leak_test.c (main): Declare as int.
* tests/leak_test.c (main): Declare as int.  Return 0.
	* tests/thread_leak_test.c (main): Ditto.
	* tests/trace_test.c (main): Ditto.

From-SVN: r159344
2010-05-13 00:45:35 +02:00
Jan Hubicka
5f902d766c cgraphbuild.c (build_cgraph_edges, [...]): Build indrect edges too.
* cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
	indrect edges too.
	* cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
	(cgraph_clone_edge): Update.
	(cgraph_node_remove_callees): Remove indirect calls too.
	* cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
	(cgraph_create_indirect_edge): Update prototype.
	* ipa-reference.c (has_proper_scope_for_analysis): Rename to
	is_proper_for_analysis.
	(add_new_function, visited_nodes, function_insertion_hook_holder,
	get_local_reference_vars_info, mark_address_taken, mark_address,
	mark_load, mark_store, check_asm_memory_clobber, check_call,
	scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
	(ipa_init): Do not initialize visited_nodes;
	function_insertion_hook_holder.
	(analyze_variable): Rewrite.
	(analyze_function): Rewrite.
	(copy_local_bitmap): Remove.
	(duplicate_node_dat): Do not duplicate local info.
	(generate_summary): Simplify to only walk cgraph.
	(write_node_summary_p, ipa_reference_write_summary,
	ipa_reference_read_summary): Remove.
	(propagate): Do not remove function insertion;
	generate summary.
	(pass_ipa_reference): NULLify summary handling fields.
	* lto-cgraph.c (lto_output_edge): Output ecf_flags.
	(input_edge): Input ecf_flags.
	* ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
	(update_indirect_edges_after_inlining): Ignore edges with unknown
	param.

From-SVN: r159343
2010-05-12 21:32:59 +00:00