PR debug/43478
* df-problems.c (struct dead_debug_use, struct dead_debug): New.
(dead_debug_init, dead_debug_finish): New functions.
(dead_debug_add, dead_debug_insert_before): Likewise.
(df_note_bb_compute): Initialize a dead_debug object, add dead
debug uses to it, insert debug bind insns before death insns,
reset debug insns that refer to pending uses at the end.
* rtl.h (make_debug_expr_from_rtl): New prototype.
* varasm.c (make_debug_expr_from_rtl): New function.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r159063
* lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
with body can prevail.
* lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
size.
From-SVN: r159061
* var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
in a temporary instead of invoking the macro multiple times.
(track_expr_p): Likewise.
From-SVN: r159058
2010-05-05 Janus Weil <janus@gcc.gnu.org>
PR fortran/43696
* resolve.c (resolve_fl_derived): Some fixes for class variables.
* symbol.c (gfc_build_class_symbol): Add separate class container for
class pointers.
2010-05-05 Janus Weil <janus@gcc.gnu.org>
PR fortran/43696
* gfortran.dg/class_17.f03: New.
From-SVN: r159056
* tree.c (free_lang_data_in_one_sizepos): New inline function.
(free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
(free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
all decls. Call it on DECL_FIELD_OFFSET of fields.
(find_decls_types_r): Follow DECL_VALUE_EXPR.
(iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
From-SVN: r159039
2010-05-04 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (build_access_from_expr_1): The first parameter type
changed to simple tree.
(build_access_from_expr): Likewise, gsi parameter was eliminated.
(scan_assign_result): Renamed to assignment_mod_result, enum elements
renamed as well.
(build_accesses_from_assign): Removed all parameters except for a
simple gimple statement. Now returns a simple bool.
(scan_function): All non-analysis parts moved to separate functions
sra_modify_function_body and ipa_sra_modify_function_body. Removed all
parameters and updated both callers.
(sra_modify_expr): Removed parameter data.
(sra_modify_function_body): New function.
(perform_intra_sra): Call sra_modify_function_body to modify the
function body.
(replace_removed_params_ssa_names): Parameter data changed into
adjustments vector.
(sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
changed the parameter dont_convert to convert with the opposite
meaning.
(sra_ipa_modify_assign): Parameter data changed into adjustments
vector, return value changed to bool.
(ipa_sra_modify_function_body): New function.
(sra_ipa_reset_debug_stmts): Updated a comment.
(modify_function): Use ipa_sra_modify_function_body to modify function
body.
From-SVN: r159038
gcc/
2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/43671
* alias.c (true_dependence): Handle the same VALUE in x and mem.
(canon_true_dependence): Likewise.
(write_dependence_p): Likewise.
gcc/testsuite/
2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/43671
* gcc.target/i386/pr43671.c: New.
From-SVN: r159033
* Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
* cgraphbuild.c: Include ipa-utils.h
(record_reference_ctx): New struct.
(record_reference): Simplify to work on initializers; not statements.
(mark_address, mark_load, mark_store): New.
(build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
walk PHI nodes too.
(record_references_in_initializer): Update use of record_reference.
(rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
walk PHI nodes too.
From-SVN: r159032
* lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
node will be removed anyway.
(lto_varpool_replace_node): Allow also unanalyzed nodes;
relink aliases of node into prevailing node.
* varpool.c (varpool_remove_node): Remove aliases properly;
when removing node, remove all its aliases too; remove DECL_INITIAL
of removed node; ggc_free the varpool node.
From-SVN: r159031
2010-05-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43879
* tree-ssa-structalias.c (alias_get_name): Use
DECL_ASSEMBLER_NAME if available.
(create_function_info_for): Return the varinfo node.
(ipa_pta_execute): Associate same-body aliases and extra names
with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
* g++.dg/torture/pr43879-1_0.C: New testcase.
* g++.dg/torture/pr43879-1_1.C: Likewise.
From-SVN: r159026
Fix PR c++/43953
gcc/cp/ChangeLog:
PR c++/43953
* pt.c (most_specialized_class): Pretend we are processing
a template decl during the call to coerce_template_parms.
gcc/testsuite/ChangeLog:
PR c++/43953
* g++.dg/other/crash-12.C: New test.
From-SVN: r159019
PR 43839
* testsuite/Makefile.am: Override automake for site.exp creation
and add entry to set libiconv.
* testsuite/Makefile.in: Regenerate.
* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
Add new global variable libiconv to handle alternative libiconv
locations.
From-SVN: r159009
PR c++/43680
gcc:
* c.opt (-fstrict-enums): New.
* doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
gcc/cp:
* decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
from the selected underlying type unless -fstrict-enums. Set
ENUM_UNDERLYING_TYPE to have the restricted range.
* cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
* class.c (check_bitfield_decl): Likewise.
From-SVN: r159006
* config/mips/mips.c (mips_output_division): When GENERATE_DIVIDE_TRAPS,
emit the trap instruction before the divide for TUNE_74K.
Co-Authored-By: James E. Wilson <wilson@codesourcery.com>
From-SVN: r159004
2010-05-03 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/43592
* fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
2010-05-03 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/43592
* gfortran.dg/unexpected_interface.f90: New test.
From-SVN: r158998
PR debug/43972
* config/i386/i386.c (ix86_delegitimize_address): Make sure the
result mode matches original rtl mode.
* gcc.dg/debug/pr43972.c: New test.
From-SVN: r158989