PR c++/36334
PR c++/37646
* tree.c (lvalue_p_1): Handle BASELINK. A COMPONENT_REF to
a function isn't necessarily an lvalue. Take tree, not const_tree.
(lvalue_p, real_lvalue_p): Take tree, not const_tree.
* typeck.c (lvalue_or_else): Likewise.
* cp-tree.h: Adjust prototypes.
From-SVN: r143404
gcc/cp/ChangeLog:
2009-01-13 Dodji Seketeli <dodji@redhat.com>
PR c++/38636
* name-lookup.c (pushtag): Don't create members to types that are not
being created.
gcc/testsuite/ChangeLog:
2009-01-13 Dodji Seketeli <dodji@redhat.com>
PR c++/38636
* g++.dg/parse/crash50.C: New test.
From-SVN: r143392
PR rtl-optimization/38245
* calls.c (expand_call): Add stack arguments to
CALL_INSN_FUNCTION_USAGE even for pure calls (when
ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
in regs and partially in memory or BLKmode arguments.
(emit_library_call_value_1): Add stack arguments to
CALL_INSN_FUNCTION_USAGE even for pure calls (when
ACCUMULATE_OUTGOING_ARGS).
* dce.c: Include tm_p.h.
(find_call_stack_args): New function.
(deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
argument.
(mark_insn): Call find_call_stack_args for CALL_Ps.
(prescan_insns_for_dce): Walk insns backwards in bb rather than
forwards. Allocate and free arg_stores bitmap if needed, pass it
down to deletable_insn_p, don't mark stores set in arg_stores
bitmap, clear the bitmap at the beginning of each bb.
* Makefile.in (dce.o): Depend on $(TM_P_H).
* gcc.dg/pr38245-3.c: New test.
* gcc.dg/pr38245-3.h: New file.
* gcc.dg/pr38245-4.c: New file.
* gcc.dg/pr38364.c: New test.
From-SVN: r143387
2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/38431
* graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
(scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
(gloog): Do not call cleanup_tree_cfg.
(graphite_transform_loops): Call cleanup_tree_cfg after all
scops have been code generated.
From-SVN: r143384
2009-01-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/38826
PR middle-end/38477
* tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
initialization notes only if we actually emitted a warning.
(intra_create_variable_infos): Add constraints for a result decl
that is passed by hidden reference.
(build_pred_graph): Mark all related variables non-direct on
address-taking.
* gcc.dg/Wstrict-aliasing-bogus-pta-1.c: New testcase.
From-SVN: r143374
* ira-conflicts.c: Include addresses.h for the definition of
base_reg_class.
(ira_build_conflicts): Use base_reg_class instead of
BASE_REG_CLASS.
* Makefile.in: Add a dependency of ira-conflicts.o on
addresses.h.
From-SVN: r143365
PR rtl-optimization/38774
* combine.c (simplify_set): When undoing cc_use change, don't do
PUT_CODE on the newly created comparison, but instead put back the
old comparison.
* gcc.dg/torture/pr38774.c: New test.
From-SVN: r143355
PR c++/38795
* tree.c (cp_walk_subtrees): Handle REINTERPRET_CAST_EXPR,
STATIC_CAST_EXPR, CONST_CAST_EXPR and DYNAMIC_CAST_EXPR the same
as CAST_EXPR.
* g++.dg/cpp0x/pr38795.C: New test.
From-SVN: r143351
* gcc.target/powerpc/altivec-consts.c: Run if vmx_hw, compile
otherwise. Do not check for AltiVec at runtime.
* gcc.target/powerpc/altivec-varargs-1.c: Likewise.
* gcc.target/powerpc/altivec-vec-merge.c: Likewise.
* gcc.target/powerpc/altivec-1.c: Likewise.
* gcc.target/powerpc/altivec-3.c: Likewise.
* gcc.target/powerpc/altivec-10.c: Likewise.
* gcc.target/powerpc/altivec-12.c: Likewise.
* gcc.target/powerpc/altivec-24.c: Likewise.
* gcc.target/powerpc/altivec-cell-2.c: Likewise.
* gcc.target/powerpc/altivec-cell-3.c: Likewise.
* gcc.target/powerpc/altivec-cell-4.c: Likewise.
* gcc.target/powerpc/pr35907.c: Likewise.
* gcc.target/powerpc/altivec-cell-8.c: Run if cell_hw, compile
otherwise. Do not check for Cell at runtime.
* gcc.target/powerpc/altivec_check.h: Delete.
* g++.dg/ext/altivec-2.C: Do not check for AltiVec at runtime.
* g++.dg/ext/altivec-3.C: Run if vmx_hw, compile otherwise. Do
not check for AltiVec at runtime.
* g++.dg/ext/altivec-cell-2.C: Likewise.
* g++.dg/ext/altivec-cell-3.C: Likewise.
* g++.dg/ext/altivec-cell-4.C: Likewise.
* g++.dg/eh/simd-2.C: Only use -maltivec if vmx_hw.
* g++.dg/eh/check-vect.h (sig_ill_handler): Remove AltiVec runtime
check.
* g++.dg/ext/altivec_check.h: Delete.
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com>
From-SVN: r143350
2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/38786
* gcc.dg/graphite/pr38786.c: New.
* graphite.c (expand_scalar_variables_ssa_name): New, outlined from
the SSA_NAME case of expand_scalar_variables_expr.
Set the type of an expression to the type of its assign statement.
(expand_scalar_variables_expr): Also gather the scalar computation
used to index the memory access. Do not pass loop_p.
Fix comment. Stop recursion on tcc_constant or tcc_declaration.
(expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
the gimple_stmt_iterator where it inserts new code. Do not pass loop_p.
(copy_bb_and_scalar_dependences): Do not pass loop_p.
(translate_clast): Update call to copy_bb_and_scalar_dependences.
From-SVN: r143341
* config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
relocations of local symbols wider than UNITS_PER_WORD are not valid.
(alpha_legitimize_address): Do not split local symbols wider than
UNITS_PER_WORD into HIGH/LO_SUM parts.
testsuite/ChangeLog:
Revert:
2009-01-05 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/compat/struct-layout-1_generate.c (dg-options): Add -mieee
for alpha*-*-* targets.
* g++.dg/compat/struct-layout-1_generate.c (dg-options): Ditto.
From-SVN: r143332
2009-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/38772
* io/read.c (read_f): Clean up loop conditions for BZ/BN,
allowing proper digit testing. White space fix.
From-SVN: r143327
* lib/target-supports.exp (check_effective_target_powerpc64): New.
* gcc.target/powerpc/darwin-longlong.c: Explicitly require 64-bit
instruction support. Do not check for it at runtime.
From-SVN: r143324