2007-08-22 Zdenek Dvorak <ook@ucw.cz>
PR tree-optimization/32949
* tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
before failing for ivs with non-constant step.
From-SVN: r127720
2007-08-22 Christopher D. Rickett <crickett@lanl.gov>
PR fortran/33020
* resolve.c (gfc_iso_c_sub_interface): Remove setting of type and
kind for optional SHAPE parameter of C_F_POINTER.
2007-08-22 Christopher D. Rickett <crickett@lanl.gov>
PR fortran/33020
* gfortran.dg/c_f_pointer_shape_tests_2.f03: Update test to
include multiple kinds for SHAPE parameter within a single
namespace.
* gfortran.dg/c_f_pointer_shape_tests_2_driver.c: Ditto.
* gfortran.dg/c_f_pointer_shape_tests_3.f03: New test case.
From-SVN: r127719
2007-08-22 Janus Weil <jaydub66@gmail.com>
* decl.c (match_attr_spec): Pass on errors from gfc_match_bind_c.
(gfc_match_bind_c): Bugfix in check for NAME= with abstract interfaces.
(gfc_match_mopdproc): Bugfix to reject module procedures in
abstract interfaces.
2007-08-22 Janus Weil <jaydub66@gmail.com>
* interface_abstract_1.f90: Extended test case.
* interface_abstract_3.f90: New test.
From-SVN: r127718
PR c++/29365
* pt.c (outermost_tinst_level): New function.
* lex.c (in_main_input_context): New function.
* decl2.c (constrain_class_visibility): Use it to avoid warning
about uses of the anonymous namespace in the main input file.
From-SVN: r127711
* doc/libgcc.texi (Decimal float library routines): Fix formatting
and rearrange floating point conversion functions into different
categories.
From-SVN: r127709
* target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
dfa_post_advance_cycle): New scheduler hooks.
* target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
new hooks.
(TARGET_SCHED): Use them.
* doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
* haifa-sched.c (advance_one_cycle): Invoke new hooks.
* genautomata.c (insn_has_dfa_reservation_p): New DFA interface
function to facilitate debugging.
(INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
(output_insn_has_dfa_reservation_p): New static function to output
insn_has_dfa_reservation_p ().
(write_automata): Use it.
* genattr.c (main): Output declaration for
insn_has_dfa_reservation_p ().
From-SVN: r127707
2007-08-22 Richard Guenther <rguenther@suse.de>
PR middle-end/32563
* tree.c (host_integerp): Treat sizetype as signed as it is
sign-extended.
* g++.dg/torture/pr32563.C: New testcase.
From-SVN: r127688
gcc/
* config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
cases to set eight bytes at a time.
(expand_block_move): Likewise.
gcc/testsuite/
* gcc.target/powerpc/spe-vector-memset.c: New testcase.
* gcc.target/powerpc/spe-vector-memcpy.c: New testcase.
From-SVN: r127670
PR middle-end/32912
* fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
(fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
* gcc.dg/pr32912-1.c: New test.
* gcc.dg/pr32912-2.c: New test.
* gcc.dg/pr32912-3.c: New test.
From-SVN: r127661
2007-08-21 Richard Guenther <rguenther@suse.de>
PR middle-end/33122
* fold-const.c (fold_binary): Remove index +p PTR folding.
Fix types of POINTER_PLUS_EXPR generated by folding of
(PTR +p B) +p A.
* gcc.c-torture/compile/pr33122.c: New testcase.
From-SVN: r127659
* c-common.h (enum rid): Add new enumeration values of RID_SAT,
RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
RID_ONEWAY, so that it can be checked in declspecs_add_type.
(c_common_fixed_point_type_for_size): Declare.
* c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
(c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
(c_token_starts_declspecs): Likewise.
(c_parser_declspecs): Likewise.
(c_parser_attributes): Likewise.
* c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
(c_declspecs): Add saturating_p.
* c-decl.c (build_null_declspecs): Initialize saturating_p.
(declspecs_add_type): Avoid using complex with _Fract, _Accum, or _Sat.
Handle RID_SAT.
Avoid using void, bool, char, int, float, double, _Decimal32,
_Decimal64, _Decimal128, and complex with _Sat.
Handle RID_FRACT and RID_ACCUM.
Make sure _Sat is used with _Fract or _Accum.
(finish_declspecs): Handle cts_fract and cts_accum.
* c-common.c (fixed-value.h): New include.
(constant_expression_warning): Handle FIXED_CST.
(overflow_warning): Likewise.
(warnings_for_convert_and_check): Likewise.
(c_common_fixed_point_type_for_size): New.
(c_common_type_for_mode): Handle fixed-point modes to
return various saturating/non-saturating, signed/unsigned types.
(c_common_signed_or_unsigned_type): Support fixed-point types.
(shorten_compare): Check fixed-point zero.
Handle FIXED_POINT_TYPE.
(c_common_truthvalue_conversion): Handle FIXED_CST.
Handle FIXED_POINT_TYPE.
(c_common_nodes_and_builtins): Record builtin types for fixed-point
types.
(handle_mode_attribute): Handle fixed-point modes. Need to check
if the signness of base type and fixed-point modes are consistent.
(handle_vector_size_attribute): Handle fixed-point modes.
(same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
(warn_for_div_by_zero): Check fixed-point zero.
* c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
a common fixed-point type based on fbit, ibit, sign, and saturation.
(build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
(convert_for_assignment): Support FIXED_POINT_TYPE.
(digest_init): Handle FIXED_POINT_TYPE.
(build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
GE_EXPR, LT_EXPR, GT_EXPR.
* target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
(TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
* target.h (gcc_target): Add fixed_point_supported_p.
* targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
(default_fixed_point_supported_p): Define.
* targhooks.h (default_fixed_point_supported_p): Declare.
* doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
* doc/install.texi (Configuration): Add --enable-fixed-point.
* configure.ac (--enable-fixed-point): New to enable fixed-point
arithmetic extension to C. For mips targets, we enable it by default.
* configure, config.in: Regenerate.
From-SVN: r127652
PR c++/7302
* cp/class.c (finish_struct_1): Warn when a class has virtual
functions and accessible non-virtual destructor.
* doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
* g++.dg/warn/Wnvdtor-2.C: New testcase.
From-SVN: r127649
2007-08-20 Richard Guenther <rguenther@suse.de>
PR c++/22369
PR c++/22451
* call.c (build_new_method_call): Convert initializer to
the basetype.
* init.c (build_aggr_init): Do not fiddle with types.
(build_vec_delete_1): Use correct type for POINTER_PLUS_EXPR.
* except.c (build_throw): Do not drop qualifiers for the
pointer type.
* typeck.c (get_member_function_from_ptrfunc): Do not
fiddle with types, instead convert.
(build_ptrmemfunc1): Convert to the target type for
initialization.
(gfc_trans_allocate): Convert result to target type.
* cp-objcp-common.c (cxx_get_alias_set): Pointers to
pointer-to-member structures shall have alias set zero as well.
From-SVN: r127647
2007-08-20 Richard Guenther <rguenther@suse.de>
* c-typeck.c (convert_for_assignment): Use the type of
the member for the initialization.
From-SVN: r127646