Andrew Haley [Fri, 23 May 2008 13:04:18 +0000 (13:04 +0000)]
re PR libgcj/35020 (Class.getSimpleName() differs from Sun Java)
2008-05-22 Andrew Haley <aph@redhat.com>
PR libgcj/35020
* java/lang/Class.java (getSimpleName): Replace incorrect use of
String.lastIndexOf(String, int) with String.substring.
* testsuite/libjava.lang/PR35020.java: New file.
* testsuite/libjava.lang/PR35020.out: New file.
testsuite:
* gcc.dg/builtins-error.c: Test __builtin_fpclassify. Also
add tests for all previous type-generic builtins.
* gcc.dg/pr28796-2.c: Add -DUNSAFE flag.
* gcc.dg/tg-tests.h: Test __builtin_fpclassify.
Paolo Carlini [Fri, 23 May 2008 01:39:17 +0000 (01:39 +0000)]
hashtable_policy.h (_Map_base<,, [...]): Add per DR 761.
2008-05-22 Paolo Carlini <paolo.carlini@oracle.com>
* include/tr1_impl/hashtable_policy.h (_Map_base<,,
std::_Select1st<_Pair>, true,>::at): Add per DR 761.
* testsuite/23_containers/unordered_map/dr761.cc: New.
* doc/xml/manual/intro.xml: Add an entry for DR 761.
Richard Guenther [Thu, 22 May 2008 10:32:55 +0000 (10:32 +0000)]
tree-dfa.c (refs_may_alias_p): Exit early if possible.
2008-05-22 Richard Guenther <rguenther@suse.de>
* tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
more cases of offset disambiguation that is possible if
strict-aliasing rules apply.
* tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
for basic offset and type-based disambiguation.
Arnaud Charlet [Thu, 22 May 2008 09:24:10 +0000 (09:24 +0000)]
slice5.adb: New test.
* gnat.dg/slice5.adb: New test.
* gnat.dg/notnot.adb: New test.
* gnat.dg/tf_interface_1.ad[sb]: New test.
* gnat.dg/const1.adb: New test.
* gnat.dg/parameterlessfunc.adb: New test.
* gnat.dg/specs/interface5.ads: New test.
* gnat.dg/specs/cpp_assignment.ads: New test.
Sebastian Pop [Wed, 21 May 2008 23:13:00 +0000 (23:13 +0000)]
re PR middle-end/36286 (ICE with -ftree-loop-linear and -O1 and above)
2008-05-21 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/36286
PR tree-optimization/36287
* lambda-code.c (build_access_matrix): Do not use the loop->num
for computing the number of induction variables: use the loop depth
instead.
Paolo Carlini [Wed, 21 May 2008 20:46:16 +0000 (20:46 +0000)]
bitset (bitset<>::bitset(const char*)): Add per DR 778.
2008-05-21 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/bitset (bitset<>::bitset(const char*)): Add per DR 778.
(bitset<>::_M_copy_from_ptr): Add.
(bitset<>::_M_copy_from_string): Forward to the latter.
* doc/xml/manual/intro.xml: Add an entry for DR 778.
* testsuite/23_containers/bitset/cons/2.cc: Add.
Jakub Jelinek [Wed, 21 May 2008 19:57:06 +0000 (21:57 +0200)]
re PR c++/36023 (ICE with cast to variable-sized object)
PR c++/36023
* cp-tree.h (check_array_initializer): New prototype.
* decl.c (check_array_initializer): New function.
(check_initializer): Call it.
* semantics.c (finish_compound_literal): Call it for ARRAY_TYPEs.
Jakub Jelinek [Wed, 21 May 2008 19:56:03 +0000 (21:56 +0200)]
re PR c++/36023 (ICE with cast to variable-sized object)
PR c++/36023
* cp-tree.h (check_array_initializer): New prototype.
* decl.c (check_array_initializer): New function.
(check_initializer): Call it.
* semantics.c (finish_compound_literal): Call it for ARRAY_TYPEs.
Nathan Sidwell [Wed, 21 May 2008 06:31:37 +0000 (06:31 +0000)]
memops-asm.c: Set inside_main.
* gcc.c-torture/execute/builtins/memops-asm.c: Set inside_main.
* lib/gcc-dg.exp (cleanup-saved-temps): Add optional list of
suffixes not to delete.
* gcc.dg/pch/save-temps-1.c: Don't delete ".s" temp.
* g++.dg/pch/pch.C: Likewise.
* g++.old-deja/g++.pt/static11.C: Replace xfail by target requirement.
* lib/dg-pch.exp (dg-pch): Don't expect .s files if there are
dg-errors expected.
David Daney [Wed, 21 May 2008 03:49:03 +0000 (03:49 +0000)]
re PR libgcj/36252 (OutOfMemoryError on simple text conversion.)
2008-05-20 David Daney <ddaney@avtrex.com>
PR libgcj/36252
* java/lang/natString.ccn: Add
#include <java/io/CharConversionException.h>.
(init (byte[], int, int, String)): Catch and ignore
CharConversionException. Break out of conversion loop
on incomplete input.
* testsuite/libjava.lang/PR36252.java: New test.
* testsuite/libjava.lang/PR36252.out: New file, its expected output.
* testsuite/libjava.lang/PR36252.jar: New file, its pre-compiled
jar file.
Janis Johnson [Wed, 21 May 2008 00:04:45 +0000 (00:04 +0000)]
re PR testsuite/20771 (Duplicate PCH test names)
PR testsuite/20771
* lib/dg-pch.exp: Move a flag in arguments to dg-test to differentiate
compile results for pch test lines in gcc.sum.
* gcc.dg/pch/counter-2.c: Add comments to dg-error directives to
make them unique in gcc.sum.
* gcc.dg/pch/valid-1.c: Ditto.
* gcc.dg/pch/valid-2.c: Ditto.
* gcc.dg/pch/valid-3.c: Ditto.
* gcc.dg/pch/warn-1.c: Same for dg-warning.
* gcc.dg/tree-ssa/ifc-20040816-1.c : signal.h not required.
* gcc.c-torture/execute/ieee/fp-cmp-1.c : Do not include signal.h if SIGNAL_SUPPRESS.
* gcc.c-torture/execute/ieee/fp-cmp-2.c : Ditto.
* gcc.c-torture/execute/ieee/fp-cmp-3.c : Ditto.
Janis Johnson [Tue, 20 May 2008 23:28:34 +0000 (23:28 +0000)]
bitfield-1.mm: XFAIL for ICE...
* obj-c++.dg/bitfield-1.mm: XFAIL for ICE; move dg-options after other
test directives; use dg-prune-output instead of dg-excess-errors for
possible message to ignore; adjust line numbers for messages.
Janis Johnson [Tue, 20 May 2008 23:25:13 +0000 (23:25 +0000)]
try-catch-2.mm: Move dg-options after dg-xfail-if.
* obj-c++.dg/try-catch-2.mm: Move dg-options after dg-xfail-if.
* obj-c++.dg/encode-8.mm: Move dg-options after dg-do.
* obj-c++.dg/bitfield-4.mm: Ditto; use dg-prune-output instead of
dg-excess-errors for possible additional message.
* obj-c++.dg/layout-1.mm: Use dg-prune-output instead of
dg-excess-errors for possible additional message.
David Daney [Tue, 20 May 2008 23:13:13 +0000 (23:13 +0000)]
mips.md (UNSPEC_SYNC_NEW_OP_12, [...]): New define_constants.
2008-05-20 David Daney <ddaney@avtrex.com>
* config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
UNSPEC_SYNC_OLD_OP_12,
UNSPEC_SYNC_EXCHANGE_12): New define_constants.
(UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER,
UNSPEC_SET_GOT_VERSION,
UNSPEC_UPDATE_GOT_VERSION): Renumber.
(optab, insn): Add 'plus' and 'minus' to define_code_attr.
(atomic_hiqi_op): New define_code_iterator.
(sync_compare_and_swap<mode>): Call
mips_expand_atomic_qihi instead of
mips_expand_compare_and_swap_12.
(compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
MIPS_COMPARE_AND_SWAP_12_0. Pass argument to
MIPS_COMPARE_AND_SWAP_12.
(sync_<optab><mode>, sync_old_<optab><mode>,
sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
sync_new_nand<mode>): New define_expands for HI and QI mode
operands.
(sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
(sync_lock_test_and_set<mode>): New define_expand for HI and QI
modes.
(test_and_set_12): New insn.
(sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
sync_new_<optab><mode>, sync_old_nand<mode>,
sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
clobber to operand 0 for SI and DI mode insns.
* config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
mips_gen_fn_4): New typedefs.
(mips_gen_fn_ptrs): Define new union type.
(mips_expand_compare_and_swap_12): Remove declaration.
(mips_expand_atomic_qihi): Declare function.
* config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
(mips_expand_atomic_qihi): ... this. Use new generator function
parameter.
* config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
(MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
(MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
MIPS_SYNC_EXCHANGE_12_ZERO_OP,
MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
Richard Guenther [Tue, 20 May 2008 20:40:23 +0000 (20:40 +0000)]
re PR middle-end/35204 (crash by too deep recursion in DFS tree-ssa-sccvn.c:1898)
2008-05-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/35204
* tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
helper, split out from ...
(DFS): ... here. Make the DFS walk non-recursive.
Jan Sjodin [Tue, 20 May 2008 16:05:09 +0000 (16:05 +0000)]
re PR middle-end/36206 (ice for legal code with -O3)
2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/36206
* tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
FOLD_CONVERSIONS.
(instantiate_scev_1): Rename flags to fold_conversions.
Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
outeside instantiation_loop.
* tree-chrec.h (evolution_function_is_affine_in_loop): New.
(evolution_function_is_affine_or_constant_p): Removed.
* tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
instantiate_scev.
(analyze_siv_subscript): Pass in the loop nest number.
Call evolution_function_is_affine_in_loop instead of
evolution_function_is_affine_p.
(analyze_overlapping_iterations): Pass in the loop nest number.
* tree-chrec.h (chrec_fold_op): New.
* tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR, and
other trees.
* testsuite/gfortran.dg/pr36206.f: New.
Co-Authored-By: Sebastian Pop <sebastian.pop@amd.com>
From-SVN: r135663
Arnaud Charlet [Tue, 20 May 2008 12:52:23 +0000 (14:52 +0200)]
s-winext.ads: Replace representation clause by pragma Pack.
* s-winext.ads: Replace representation clause by pragma Pack. Gives
equivalent representation, but has the advantage of allowing
compilation of this file under 64 bits platforms.
* s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
Bob Duff [Tue, 20 May 2008 12:52:09 +0000 (14:52 +0200)]
2008-05-20 Bob Duff <duff@adacore.com>
* a-rttiev.adb
(Set_Handler): Remove code from both of these that implements
RM-D.15(15/2), because it causes a race condition and potential
deadlock.
(Process_Queued_Events): Add comment explaining "exception when others
=> null". Add clarifying ".all", even though implicit .all is legal
here.
Robert Dewar [Tue, 20 May 2008 12:51:51 +0000 (14:51 +0200)]
vms_data.ads: Add entry for -gnatr Put GNAT SYNC section in proper alpha order Add VMS...
2008-05-20 Robert Dewar <dewar@adacore.com>
Vincent Celier <celier@adacore.com>
* vms_data.ads: Add entry for -gnatr
Put GNAT SYNC section in proper alpha order
Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
* gnat_ugn.texi: Add documentation for new gnatname switch --and
Update the style checks section
Add documentation of -gnatr
Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
subsection the explanation how compiler checks should be disabled for
gnatcheck.
Update the list of Ada 95 reserved words used by in the project language
Add documentation for project qualifiers.
Document that abstract projects may be extended by different projects in
the same project tree.
Add documentation for gnatmake switch -d
Ed Schonberg [Tue, 20 May 2008 12:51:29 +0000 (14:51 +0200)]
2008-05-20 Ed Schonberg <schonberg@adacore.com>
* sprint.adb
(Print_Itype): Do not modify the sloc of the component type of a
(packed) array itype, because it is an unrelated type whose source
location is independent of the point of creation of the itype itself.
Thomas Quinot [Tue, 20 May 2008 12:50:52 +0000 (14:50 +0200)]
sem_dist.ads, [...] (Is_RACW_Stub_Type_Operation): New subprogram.
2008-05-20 Thomas Quinot <quinot@adacore.com>
* sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
subprogram.
* sem_type.adb
(Add_One_Interp): Ignore any interpretation that is a primitive
operation of an RACW stub type (these primitives are only executed
through dispatching, never through static calls).
(Collect_Interps): When only one interpretation has been found, set N's
Entity and Etype to that interpretation, otherwise Entity and Etype may
still refer to an interpretation that was ignored by Add_One_Interp,
in which case would end up with being marked as not overloaded but with
an Entity attribute not pointing to its (unique) correct interpretation.
Ed Schonberg [Tue, 20 May 2008 12:50:43 +0000 (14:50 +0200)]
2008-05-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb
(Note_Redundant_Use): Diagnose a redundant use within a subprogram body
when there is a use clause for the same entity in the context.
(Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
created for a stream attribute of an abstract type or interface type.
Ed Schonberg [Tue, 20 May 2008 12:50:26 +0000 (14:50 +0200)]
2008-05-20 Ed Schonberg <schonberg@adacore.com>
Thomas Quinot <quinot@adacore.com>
* sem_ch4.adb
(Try_Indexed_Call): Handle properly a construct of the form F(S) where
F is a parameterless function that returns an array, and S is a subtype
mark.
(Analyze_Call): Insert dereference when the prefix is a parameterless
function that returns an access to subprogram and the call has
parameters.
Reject a non-overloaded call whose name resolves to denote
a primitive operation of the stub type generated to support a remote
access-to-class-wide type.
Javier Miranda [Tue, 20 May 2008 12:50:03 +0000 (14:50 +0200)]
2008-05-20 Javier Miranda <miranda@adacore.com>
Ed Schonberg <schonberg@adacore.com>
Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb
(Analyze_Object_Declaration): Fix over-conservative condition
restricting use of predefined assignment with tagged types that have
convention CPP.
(Analyze_Object_Declaration): Relax the check regarding deferred
constants declared in scopes other than packages since they can be
completed with pragma Import.
Add missing escaping of all-caps word 'CPP' in error messages.
(Build_Discriminated_Subtype): Do not inherit representation clauses
from parent type if subtype already carries them, because they are
inherited earlier during derivation and already include those that may
come from a partial view.
* sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
Check the declarations of a subprogram body for proper deferred
constant completion.
* sem_ch7.ads, sem_ch7.adb
(Inspect_Deferred_Constant_Completion): Moved to sem_util.
Thomas Quinot [Tue, 20 May 2008 12:49:41 +0000 (14:49 +0200)]
2008-05-20 Thomas Quinot <quinot@adacore.com>
* sem_cat.adb
(Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
the visible part of the spec of a remote types unit.
(Validate_Remote_Access_Object_Type_Declaration):
New local subprogram Is_Valid_Remote_Object_Type, replaces
Is_Recursively_Limited_Private.
(Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
non-controlling formals (and the return type, even though this is not
explicit in the standard) must support external streaming.
(Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
as above for of RAS types and RCI subprograms. (The return type is not
checked yet).
Update comments related to RACWs designating limited interfaces per
ARG ruling on AI05-060.
* sem_util.ads, sem_util.adb
(Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
Is_Remote_Call_Interface to identify RACW types in a stable and
consistent way. We used to rely in this predicate on the privateness of
the designated type and its ancestors, but depending on the currently
visible private parts, this caused false negatives. We now uniformly
rely on checks made at the point where the RACW type is declared.
(Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.