Mark Mitchell [Mon, 11 Oct 2004 22:50:00 +0000 (22:50 +0000)]
re PR c++/17936 (Declaration of specialization rejected)
PR c++/17936
* cp-tree.h (CLASSTYPE_TEMPLATE_SPECIALIZATION): Add a comment.
* pt.c (optimize_specialization_lookup_p): Do not optimize lookups
for members of partial or explicit specializations.
PR c++/17936
* g++.dg/template/spec18.C: New test.
Benjamin Kosnik [Mon, 11 Oct 2004 20:26:53 +0000 (20:26 +0000)]
PR libstdc++/16614 continued.
2004-10-11 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/16614 continued.
* include/ext/mt_allocator.h
(__per_type_pool_policy::_S_get_pool): Use saner defaults based on
specific type characteristics.
(__pool_base): Add constructor that takes a _Tune argument.
(__pool): Same.
* testsuite/ext/mt_allocator/tune-2.cc: Adjust default.
* testsuite/ext/mt_allocator/tune-4.cc: Same.
* testsuite/ext/mt_allocator/tune-3.cc: Same.
Roger Sayle [Mon, 11 Oct 2004 16:11:35 +0000 (16:11 +0000)]
re PR middle-end/17657 (ICE in expand_case)
PR middle-end/17657
* stmt.c (add_case_node): Add additional type argument. Declare
as static to match prototype. Convert the upper and lower bounds
to the specified index type. Optimize away case ranges/values
that are outside the index type's bounds. Truncate case ranges
that span the index type's bounds.
(expand_case): Avoid unnessary computation and memory allocation
when index type is error_mark_node. Pass index_type as required
by change to add_case_node API. No need to convert case range
bounds to index_type, this is now done by add_case_node.
* config/frv/frv.md (*adddi3_internal): Change name to...
(adddi3): ...replacing the exisiting define_expand. Combine
alternatives. Fix the range of the constant constraints ('J' instead
of 'NOP'). Remove bogus operands[2] check. Use simplify_gen_subreg
to extract the lower and upper halves of the DImode operands.
Always use addi3_lower and adddi3_upper, not the subdi3 forms.
(adddi3_lower): Fix the range of the constant constraints and
remove the bogus operands[2] check.
(adddi3_upper): Use gpr_or_int10_operand as the predicate for
operand 2. Use addxi to handle constant operands.
(subdi3_lower, subdi3_upper): Don't handle constant operands.
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.