Andrew Pinski [Mon, 11 Oct 2004 03:42:09 +0000 (03:42 +0000)]
re PR c++/17554 (crashes in on kopete build (KDE's kdenetwork))
2004-10-10 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/17554
part of c++/17657
middle-end/17703
* semantics.c (maybe_cleanup_point_expr): Call
fold_build_cleanup_point_expr.
(maybe_cleanup_point_expr_void): New function.
(add_decl_expr): Call maybe_cleanup_point_expr_void.
(finish_expr_stmt): Likewise.
(finish_return_stmt): Likewise.
(finish_for_expr): Likewise.
(finish_asm_stmt): Likewise.
* typeck.c (condition_conversion): Call
fold_build_cleanup_point_expr.
2004-10-10 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/17703
part of PR c++/17657
* fold-const.c (fold_build_cleanup_point_expr): New function.
* tree.h (fold_build_cleanup_point_expr): Prototype.
2004-10-10 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/17554
* g++.dg/init/for3.C: New test.
PR c++/17657
* g++.dg/opt/switch2.C: New test.
PR middle-end/17703
* g++.dg/warn/Wreturn-2.C: New test.
Andrew Pinski [Mon, 11 Oct 2004 03:16:47 +0000 (03:16 +0000)]
re PR c++/17907 (ice in optimize_inline_calls, at tree-inline.c)
2004-10-10 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/17907
* semantics.c (add_decl_expr): If the decl has a size which
has side effects then the decl expression needs a cleanup point.
2004-10-10 Andrew Pinski <pinskia@physics.uc.edu>
Joseph Myers [Sun, 10 Oct 2004 19:20:35 +0000 (20:20 +0100)]
re PR c/17881 (Incomplete type warning is issued even for prototypes)
PR c/17881
* c-decl.c (grokparms): Don't warn for parameters of incomplete
type in declarations that are not definitions except for the case
of parameters of void type.
Paolo Carlini [Sun, 10 Oct 2004 17:55:23 +0000 (17:55 +0000)]
monetary_members.cc (_S_construct_pattern): Give __ret a default value, thus avoiding spurious warnings.
2004-10-10 Paolo Carlini <pcarlini@suse.de>
* config/locale/gnu/monetary_members.cc (_S_construct_pattern):
Give __ret a default value, thus avoiding spurious warnings.
* testsuite/performance/27_io/filebuf_sgetn_unbuf.cc: Open either
words or linux.words, otherwise exit.
* testsuite/performance/27_io/ifstream_getline.cc: Slighlty tweak.
Bryce McKinlay [Sun, 10 Oct 2004 16:19:37 +0000 (16:19 +0000)]
Calendar.java (set): Invalidate DST_OFFSET field as a DST boundary may have been crossed.
2004-10-08 Bryce McKinlay <mckinlay@redhat.com>
* java/util/Calendar.java (set): Invalidate DST_OFFSET
field as a DST boundary may have been crossed.
* java/util/GregorianCalendar.java (add): Throw
IllegalArgumentException on attempt to add to DST_OFFSET or
ZONE_OFFSET fields. Update javadoc.
Mark Mitchell [Sun, 10 Oct 2004 05:02:54 +0000 (05:02 +0000)]
re PR c++/17867 ("void" instead of class name in error message)
PR c++/17867
* error.c (dump_expr): Correct handling of AGGR_INIT_EXPRs using a
constructor.
PR c++/17670
* init.c (build_new): Correct comments.
* parser.c (cp_parser_new_expression): Use NULL_TREE for nelts in
the non-array case.
PR c++/17821
* parser.c (cp_parser_postfix_dot_deref_expression): If the
pseduo-destructor-name production does not work, fall back to the
ordinary production.
PR c++/17826
* tree.c (cp_tree_equal): Handle a BASELINK.
PR c++/17687
* g++.dg/parse/error19.C: New test.
PR c++/17670
* g++.dg/init/new11.C: New test.
PR c++/17821
* g++.dg/parse/error20.C: New test.
PR c++/17826
* g++.dg/template/crash24.C: New test.
Joseph Myers [Sun, 10 Oct 2004 00:47:20 +0000 (01:47 +0100)]
re PR c/17189 (bogus warning for struct Foo { int; };)
PR c/17189
* c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
fields a pedwarn. Pedwarn here for unnamed structs/unions if
pedantic.
* c-parse.in (component_decl): Don't pedwarn here for unnamed
fields.
Roger Sayle [Sat, 9 Oct 2004 19:27:55 +0000 (19:27 +0000)]
[multiple changes]
2004-10-09 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/17853
* simplify-rtx.c (simplify_relational_operation): Correct comment.
Reorganize handling of comparison operations with floating point
results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
Likewise, introduce support for comparison operations with vector
result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
* doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
* doc/tm.texi: Likewise.
2004-10-09 Stuart Hastings <stuart@apple.com>
Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/17853
* gcc.dg/i386-mmx-5.c: New testcase.
Mark Mitchell [Sat, 9 Oct 2004 17:33:02 +0000 (17:33 +0000)]
re PR c++/17524 (ICE with initializing a variable of type void)
PR c++/17524
* cp-tree.h (check_var_type): New function.
* decl.c (check_var_type): New function, split out from ...
(grokdeclarator): ... here.
* pt.c (tsubst_decl): Use check_var_type.
PR c++/17685
* decl.c (grokdeclarator): Disallow declarations of operators as
PR c++/17524
* g++.dg/template/static9.C: New test.
PR c++/17685
* g++.dg/parse/operator5.C: New test.
Roger Sayle [Sat, 9 Oct 2004 15:48:24 +0000 (15:48 +0000)]
re PR middle-end/17894 (div/compare folding incorrect)
PR middle-end/17894
* fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
relational comparison operator op needs to be swapped/reversed when
C1 is negative. i.e. X/-10 < 1 becomes X >= -9, not X < -9.
* gcc.c-torture/execute/divcmp-4.c: New test case.
Paolo Carlini [Sat, 9 Oct 2004 08:23:02 +0000 (08:23 +0000)]
std_memory.h (__get_temporary_buffer): Don't use INT_MAX...
2004-10-09 Paolo Carlini <pcarlini@suse.de>
* include/std/std_memory.h (__get_temporary_buffer): Don't use
INT_MAX, prefer numeric_limits<ptrdiff_t>::max(), ok on 64-bit
platforms too.
* testsuite/20_util/memory/auto_ptr/assign_neg.cc: Adjust dg-error
line numbers.
Steven Bosscher [Fri, 8 Oct 2004 22:56:55 +0000 (22:56 +0000)]
cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
* cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
(expand_gimple_cond_expr, expand_gimple_tailcall,
expand_gimple_basic_block): Use it to dump RTL for each stmt.
(tree_expand_cfg): Announce full RTL function dump.
* tree-optimize.c (execute_one_pass): Use normal RTL printing,
not the graph version.
* tree-pretty-print.c (dump_generic_node): Allow empty statements
in the arms of a COND_EXPR for lowered nodes.
Joseph Myers [Fri, 8 Oct 2004 20:25:42 +0000 (21:25 +0100)]
c-lex.c (interpret_float): Give a pedwarn rather than a warning for an out-of-range floating point constant.
* c-lex.c (interpret_float): Give a pedwarn rather than a warning
for an out-of-range floating point constant.
* builtins.c (fold_builtin_inf): Give a pedwarn rather than a
warning if the target format does not support infinities.
testsuite:
* gcc.dg/float-range-1.c, gcc.dg/float-range-2.c: New tests.
* c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
(convert_for_assignment): Handle ic_argpass_nonproto. Add
comments about its relevance to errors.
(c_convert_parm_for_inlining): Use ic_argpass_nonproto.
Kaveh R. Ghazi [Fri, 8 Oct 2004 16:07:56 +0000 (16:07 +0000)]
builtins.c (expand_builtin_mempcpy): Move tree handling code to fold_builtin_mempcpy.
* builtins.c (expand_builtin_mempcpy): Move tree handling code to
fold_builtin_mempcpy. Accept a type parameter. Delete duplicate
code.
(expand_builtin_strcat): Accept a type parameter.
(fold_builtin_mempcpy): Accept a type and endp parameter.
Nathan Sidwell [Fri, 8 Oct 2004 15:09:16 +0000 (15:09 +0000)]
tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert, reverting my 2004-09-07 patch to use build_int_cst.
.: * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
reverting my 2004-09-07 patch to use build_int_cst.
testsuite:
* gcc.c-torture/compile/acc1.c: New.
Eric Botcazou [Fri, 8 Oct 2004 13:34:56 +0000 (13:34 +0000)]
re PR target/17245 (ICE compiling gsl-1.5 statistics/lag1.c)
PR target/17245
* config/sparc/sparc.c (input_operand): Remove redundant code
for handling LO_SUM.
(legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
<LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
Otherwise only accept it for TFmode if quad move insns are available.
Joseph Myers [Fri, 8 Oct 2004 10:21:42 +0000 (11:21 +0100)]
c-typeck.c (enum impl_conv): New.
* c-typeck.c (enum impl_conv): New.
(convert_for_assignment): Use it. Take tree for function called
instead of its name. Handle ObjC selectors for diagnostics at
start of function. Select diagnostic text within the function
using full sentences for diagnsotics. Use %qE to name functions
in diagnostics.
(convert_arguments, build_modify_expr,
c_convert_parm_for_inlining, digest_init, c_finish_return): Update
callers to convert_for_assignment.
(warn_for_assignment): Remove.
Mark Mitchell [Thu, 7 Oct 2004 17:48:36 +0000 (17:48 +0000)]
cp-tree.h (ICS_USER_FLAG): Remove comment about obsolete flag.
* cp-tree.h (ICS_USER_FLAG): Remove comment about obsolete flag.
(DECL_MEMBER_TEMPLATE_P): New macro.
(is_member_template): Remove.
(class_method_index_for_fn): New function.
* pt.c (build_over_call): Use DECL_MEMBER_TEMPLATE_P.
* class.c (finish_struct_methods): Remove out-of-date comment.
* decl.c (copy_fn_p): Use DECL_MBMER_TEMPLATE_P.
* decl2.c (check_classfn): Use DECL_MEMBER_TEMPLATE_P and
class_method_index_for_fn.
* pt.c (is_member_template): Remove.
(is_member_template_class): Likewise.
(optimize_specialization_lookup_p): New function.
(retrieve_specialization): Optimize lookups for members that are
not member templates.
(register_specialization): Adjust accordingly.
(build_template_decl): Add member_template_p parameter. Set
DECL_MEMBER_TEMPLATE_P.
(process_partial_specialization): Adjust call to
retrieve_specialization.
(push_template_decl_real): Determine whether the template is a
member template.
(lookup_template_class): Use retrieve_specialization.
(tsubst_decl): Adjust call to retrieve_specialization.
(tsubst_exception_specification): New function.
(tsubst): Use it.
(tsubst_copy): Use DECL_MEMBER_TEMPLATE_P.
(instantiate_template): Adjust call to retrieve_specialization.
(regenerate_decl_from_template): Do not actually generate a new
DECL.
(instantiate_decl): Adjust call to retrieve_specialization.
(class_method_index_for_fn): New method.