Jerry DeLisle [Sat, 4 Apr 2009 19:04:53 +0000 (19:04 +0000)]
re PR fortran/39528 (repeated entries are not read when using list-directed input)
2009-04-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/39528
* gfortran.dg/read_repeat.f90: New test.
2009-04-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/39528
Backport from trunk.
* io/list_read.c (list_formatted_read_scalar): Move check for read
completion to just after the check for a repeated value.
Jason Merrill [Fri, 3 Apr 2009 18:04:39 +0000 (14:04 -0400)]
PR c++/38030, 38850, 39070
PR c++/38030, 38850, 39070
* pt.c (type_dependent_expression_p_push): New fn.
(tsubst_copy_and_build) [CALL_EXPR]: Only do arg-dep lookup when the
substitution makes the call non-dependent. Preserve koenig_p.
* parser.c (cp_parser_postfix_expression): Only do arg-dep lookup
for non-dependent calls.
* semantics.c (finish_call_expr): Revert earlier changes.
* cp-tree.h: Revert change to finish_call_expr prototype.
Jason Merrill [Fri, 3 Apr 2009 17:31:38 +0000 (13:31 -0400)]
revert: re PR c++/9634 ([DR224] Injected class name as qualifier should not make the name dependent)
Revert:
PR c++/9634
PR c++/29469
PR c++/29607
Implement DR 224.
* decl.c (make_typename_type): Do look inside currently open classes.
* parser.c (cp_parser_lookup_name): Likewise.
(cp_parser_template_name): Likewise.
* pt.c (dependent_scope_p): New function.
* cp-tree.h: Declare it.
* class.c (currently_open_class): Return fast if T isn't a class.
David Ayers [Thu, 2 Apr 2009 12:40:48 +0000 (12:40 +0000)]
re PR objc/27377 (false compiler warnings generated in Objective-C code)
gcc/
2009-03-29 David Ayers <ayers@fsfe.org>
PR objc/27377
* c-typeck.c (build_conditional_expr): Emit ObjC warnings
by calling objc_compare_types and surpress warnings about
incompatible C pointers that are compatible ObjC pointers.
gcc/testsuite/
2009-03-29 David Ayers <ayers@fsfe.org>
PR objc/27377
* objc.dg/conditional-1.m: New tests.
Eric Botcazou [Wed, 1 Apr 2009 20:48:33 +0000 (20:48 +0000)]
re PR rtl-optimization/39588 (internal compiler error: in trunc_int_for_mode, at explow.c:55)
PR rtl-optimization/39588
* combine.c (merge_outer_ops): Do not set the constant when this
is not necessary.
(simplify_shift_const_1): Do not modify it either in this case.
Ben Elliston [Wed, 25 Mar 2009 22:05:08 +0000 (22:05 +0000)]
backport: re PR target/39175 (ICE while compiling qt-4.5.0-rc1)
Backport from mainline:
2009-02-19 Jakub Jelinek <jakub@redhat.com>
PR target/39175
* c-common.c (c_determine_visibility): If visibility changed and
DECL_RTL has been already set, call make_decl_rtl to update symbol
flags.
cp/
* decl2.c (determine_visibility): If visibility changed and
DECL_RTL has been already set, call make_decl_rtl to update symbol
flags.
testsuite/
* gcc.dg/visibility-20.c: New test.
* g++.dg/ext/visibility/visibility-11.C: New test.
Uros Bizjak [Mon, 23 Mar 2009 11:19:41 +0000 (12:19 +0100)]
backport: re PR target/39482 (ICE in inline_secondary_memory_needed, at config/i386/i386.c:25478)
Backport from mainline:
2009-03-17 Uros Bizjak <ubizjak@gmail.com>
PR target/39482
* config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
from different units in a single alternative.
(*truncdfsf_i387): Ditto.
(*truncxfsf2_mixed): Ditto.
(*truncxfdf2_mixed): Ditto.
testsuite/ChangLog:
Backport from mainline:
2009-03-17 Uros Bizjak <ubizjak@gmail.com>
PR target/39482
* gcc.target/i386/pr39482.c: New test.
Paul Thomas [Sat, 7 Mar 2009 15:58:49 +0000 (15:58 +0000)]
re PR fortran/39295 (Too strict interface conformance check)
2009-03-07 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39295
* interface.c (compare_type_rank_if): Return 1 if the symbols
are the same and deal with external procedures where one is
identified to be a function or subroutine by usage but the
other is not.
2009-03-07 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39295
* gfortran.dg/interface_25.f90: New test.
* gfortran.dg/interface_26.f90: New test.
Jason Merrill [Wed, 4 Mar 2009 19:37:43 +0000 (14:37 -0500)]
re PR c++/9634 ([DR224] Injected class name as qualifier should not make the name dependent)
PR c++/9634
PR c++/29469
PR c++/29607
Implement DR 224.
* decl.c (make_typename_type): Do look inside currently open classes.
* parser.c (cp_parser_lookup_name): Likewise.
(cp_parser_template_name): Likewise.
* pt.c (dependent_scope_p): New function.
* cp-tree.h: Declare it.
* class.c (currently_open_class): Return fast if T isn't a class.
Co-Authored-By: Giovanni Bajo <giovannibajo@gcc.gnu.org>
From-SVN: r144621
Martin Jambor [Sat, 28 Feb 2009 18:33:27 +0000 (19:33 +0100)]
backport: re PR middle-end/37861 (Bogus array bounds warning)
2009-02-28 Martin Jambor <mjambor@suse.cz>
Backport from mainline:
2008-12-02 Martin Jambor <mjambor@suse.cz>
PR middle-end/37861
* tree-ssa-forwprop.c
(forward_propagate_addr_into_variable_array_index): Check that the
offset is not computed from a MULT_EXPR if element size is one.
Uros Bizjak [Thu, 26 Feb 2009 07:06:48 +0000 (08:06 +0100)]
backport: re PR inline-asm/39058 (ICE with double in inline-asm)
Backport from mainline:
2009-02-02 Jakub Jelinek <jakub@redhat.com>
PR inline-asm/39058
* recog.h (asm_operand_ok): Add constraints argument.
* recog.c (asm_operand_ok): Likewise. If it is set, for digits
recurse on matching constraint.
(check_asm_operands): Pass constraints as 3rd argument to
asm_operand_ok. Don't look up matching constraint here.
* stmt.c (expand_asm_operands): Pass NULL as 3rd argument
to asm_operand_ok.
testsuite/ChangeLog:
Backport from mainline:
2009-02-02 Jakub Jelinek <jakub@redhat.com>
PR inline-asm/39058
* gcc.target/i386/pr39058.c: New test.
Janis Johnson [Wed, 25 Feb 2009 22:08:55 +0000 (22:08 +0000)]
backport: re PR middle-end/36578 (cast to long double not taken into account when result stored to a double)
2009-02-25 Janis Johnson <janis187@us.ibm.com>
gcc/
Backport from mainline:
2008-10-29 Joseph Myers <joseph@codesourcery.com>
PR middle-end/36578
* convert.c (convert_to_real): Do not optimize conversions of
binary arithmetic operations between binary and decimal
floating-point types. Consider mode of target type in determining
decimal type for arithmetic. Unless
flag_unsafe_math_optimizations, do not optimize binary conversions
where this may change rounding behavior.
* real.c (real_can_shorten_arithmetic): New.
* real.h (real_can_shorten_arithmetic): Declare.
gcc/testsuite/
Backport from mainline:
2008-10-29 Joseph Myers <joseph@codesourcery.com>
PR middle-end/36578
* gcc.dg/dfp/convert-bfp-13.c, gcc.dg/dfp/convert-bfp-14.c,
gcc.dg/dfp/convert-dfp-fold-2.c, gcc.target/i386/pr36578-1.c,
gcc.target/i386/pr36578-2.c: New tests.
Uros Bizjak [Sat, 21 Feb 2009 11:08:24 +0000 (12:08 +0100)]
backport: calls.c (emit_library_call_value_1): Use slot_offset instead of offset when calculating bounds for indexing...
Backport from mainline:
2009-02-20 Jaka Mocnik <jaka@xlab.si>
* calls.c (emit_library_call_value_1): Use slot_offset instead of
offset when calculating bounds for indexing stack_usage_map. Fixes
a buffer overflow with certain target setups.
Uros Bizjak [Thu, 19 Feb 2009 12:44:40 +0000 (13:44 +0100)]
re PR target/39228 (387 optimised __builtin_isinf() gives incorrect result)
PR target/39228
* config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
(UNSPEC_FXAM_MEM): New unspec.
(fxam<mode>2_i387_with_temp): New insn and split pattern.
(isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
memory using fxam<mode>2_i387_with_temp to remove excess precision.
testsuite/ChangeLog:
PR target/39228
* gcc.c-torture/execute/pr39228.c: New test.
Paul Thomas [Thu, 19 Feb 2009 06:43:15 +0000 (06:43 +0000)]
re PR fortran/38852 ([4.3] UBOUND fails for negative stride triplets)
2009-02-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38852
PR fortran/39006
* trans-intrinsic.c (gfc_conv_intrinsic_bound): Use the array
descriptor ubound for UBOUND, when the array lbound == 1.
2009-02-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38852
PR fortran/39006
* gfortran.dg/bound_6.f90: New test.