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.
Uros Bizjak [Wed, 11 Feb 2009 11:53:47 +0000 (12:53 +0100)]
re PR target/39118 (x86_64 red zone violation)
PR target/39118
* config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
(memory_blockage): New expander.
(*memory_blockage): New insn pattern.
* config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
instead of general blockage at the end of function prologue when
frame pointer is used to access red zone area. Do not emit blockage
when profiling, it is emitted in generic code.
(ix86_expand_epilogue): Emit memory_blockage at the beginning of
function epilogue when frame pointer is used to access red zone area.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r144101