* fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
* gcc.dg/compare8.c: Add an additional test for XOR.
From-SVN: r79979
2004-03-25 Gawain Bolton <gp.bolton@computer.org>
* include/bits/stl_tree.h (_Rb_tree_impl): Add _Node_allocator
default argument in constructors.
(_Rb_tree::_M_empty_initialize): Remove.
2004-03-25 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
* testsuite/23_containers/set/operators/1_neg.cc: Same.
2004-03-25 Dhruv Matani <dhruvbird@gmx.net>
* include/bits/cpp_type_traits.h: Changed __is_pod
completely. Now, it does not use any of the previous type_traits
to detect the pod types, and it also detects function pointers as
POD types.
* include/bits/stl_tree.h: Introduced a new class _Rb_tree_impl,
which encapsulates the internal implementation of an rb_tree. Made
the allocator a base class of this class instead of the rb_tree,
which was not conforming. This _Rb_tree_impl class is also
specialized on whether the _Compare parameter is a POD type or
not. If so, then it maintains the comparison function as a data
member, otherwise it makes the _Compare parameter a base class of
itself. Also, _M_key_compare is now a function instead of a data
member, so that the above trick can work properly. Delegated the
initialization of the other data members to this newly created
class. Also, now other member functions of rb_tree must refer to
_M_key_compare as _M_impl._M_key_compare(). The other data members
(*) can be referenced to as _M_impl.(*), where
(*) includes _M_header, and _M_node_count.
From-SVN: r79977
2004-03-25 Paolo Carlini <pcarlini@suse.de>
* include/ext/mt_allocator.h (__mt_alloc<>::tune):
Add _M_min_bin, the size in bytes of the smallest bin.
(__mt_alloc<>::tune()): Tweak accordingly.
(__mt_alloc<>::tune(size_t, ...)): Likewise.
(__mt_alloc<>::block_record): Change to a union: members next
and thread_id are never used at the same time.
(__mt_alloc<>::allocate): Update consistently.
(__mt_alloc<>::deallocate): Likewise.
(__mt_alloc<>::_S_initialize): Update setups of _S_binmap and
_S_bin_size for the configurable _M_min_size.
From-SVN: r79962
2004-03-25 Dhruv Matani <dhruvbird@gmx.net>
* include/bits/stl_list.h: Created a _List_impl class and made it
derive from the allocator, instead of the list deriving from the
allocator class, which was not conformant. Changed all references
from this->_M_node to this->_M_impl._M_node * bits/list.tcc: Same
as above (changed all references to the concerned variables).
2004-03-25 Dhruv Matani <dhruvbird@gmx.net>
* include/bits/stl_deque.h: Created a _Deque_impl class and made
it derive from the allocator, instead of the deque deriving from
the allocator class, which was not conformant. Changed all
references to the _M_start, _M_finish, _M_map, and _M_map_size to
_M_impl.*.
(_Deque_base<_Tp,_Alloc>::~_Deque_base()): Added this->
qualification in 2 places where it was missing.
(_Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t)): Same as
above.
* include/bits/deque.tcc: Same as above (changed all references to
the concerned variables).
2004-03-25 Dhruv Matani <dhruvbird@gmx.net>
* include/bits/stl_vector.h: Created a _Vector_impl class and made
it derive from the allocator, instead of the _Vector_base class,
deriving from the allocator which was not conformant. Changed all
references to the _M_start, _M_finish, and _M_end_of_storage to
_M_impl.*.
* include/bits/vector.tcc: Same as above (changed all references
to the concerned variables).
2004-03-25 Dhruv Matani <dhruvbird@gmx.net>
* testsuite/23_containers/deque/cons/clear_allocator.cc: New.
* testsuite/23_containers/list/cons/clear_allocator.cc: New.
* testsuite/23_containers/vector/cons/clear_allocator.cc: New.
From-SVN: r79957
PR optimization/9707.
* stmt.c (emit_case_nodes): Emit equality comparisons instead
of recursing if both children are single-valued cases with no
children.
From-SVN: r79954
2004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
* memtrack.adb: Log realloc calls, which are treated as free followed
by alloc.
2004-03-25 Vincent Celier <celier@gnat.com>
* prj-makr.adb (Process_Directories): Detect when a file contains
several units. Do not include such files in the config pragmas or
in the naming scheme.
* prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
Resolve links only when not in Trusted_Mode.
(Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
Do not resolve links for the display names.
* prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
resolve links when computing the display names.
2004-03-25 Thomas Quinot <quinot@act-europe.fr>
* sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
attribute reference does not denote a subtype, it can be any
expression that has a classwide type, potentially after an implicit
dereference. In particular, the prefix can be a view conversion for
a classwide type (for which Is_Object_Reference holds), but it can
also be a value conversion for an access-to-classwide type. In the
latter case, there is an implicit dereference, and the original node
for the prefix does not verify Is_Object_Reference.
* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
conversion of a discriminant-dependent component of a mutable object
is one itself.
2004-03-25 Ed Schonberg <schonberg@gnat.com>
* freeze.adb (Freeze_Entity): When an inherited subprogram is
inherited, has convention C, and has unconstrained array parameters,
place the corresponding warning on the derived type declaration rather
than the original subprogram.
* sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
indication on renaming declaration, if formal has a box and actual
is absent.
* sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
determine whether to generate an implicit or explicit reference to
the renamed entity.
* sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
subprogram renaming comes from a defaulted formal subprogram in an
instance.
2004-03-25 Gary Dismukes <dismukes@gnat.com>
* sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
value expressions to ensure that calls within a component definition
will be checked (since those are evaluated during the record type's
elaboration).
2004-03-25 Arnaud Charlet <charlet@act-europe.fr>
* s-tpobop.adb: Code clean up:
(Requeue_Call): Extract from PO_Service_Entries to remove duplicated
code.
(PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
2004-03-25 Jose Ruiz <ruiz@act-europe.fr>
* Makefile.in: Clean up in the ravenscar run time.
From-SVN: r79953
* config/arm/arm.c (vfp_print_multi): Remove.
(arm_output_fldmx): New function.
(vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
(arm_expand_prologue): Update to match.
(arm_get_vfp_saved_size): New Function.
(arm_get_frame_offsets): Use it.
(arm_output_epilogue): Use new functions.
From-SVN: r79950
* alias.c (alias_invariant, alias_invariant_size): Mark GTY.
(reg_known_value, reg_known_value_size): Likewise; make static.
(reg_known_equiv_p): Make static.
(clear_reg_alias_info): Update for new indexing.
(get_reg_known_value, set_reg_known_value): New.
(get_reg_known_equiv_p, set_reg_known_equiv_p): New.
(canon_rtx): Use them.
(init_alias_analysis): Likewise. Allocate reg_known_value with gc.
Don't play queer offsetting games with reg_known_value and
reg_known_equiv_p.
(end_alias_analysis): Free reg_known_value with gc.
* rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
* sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
(deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
functions instead.
From-SVN: r79945
2004-03-24 Dhruv Matani <dhruvbird@gmx.net>
* ext/malloc_allocator.h: Fixed the construct function to call
global placement new instead of assignment. Added a check after
the return from malloc to check whether returned pointer is NULL,
and if so, throw std::bad_alloc().
* ext/debug_allocator.h: Added a check in the deallocate function
to check whether the user has passed a NULL pointer or not.
From-SVN: r79934
[gcc/ChangeLog]
2004-03-24 Ziemowit Laski <zlaski@apple.com>
* objc/objc-act.c (objc_comptypes): Treat comparisons
between 'Class' and '<class> *' as explicitly invalid.
From-SVN: r79928
2004-03-24 Dhruv Matani <dhruvbird@gmx.net>
* include/ext/bitmap_allocator.h: (_Bit_scan_forward) -> Made this
function call __builtin_ctz instead of the while loop.
(allocate) -> If condition has __builtin_expect.
(deallocate) -> Ditto.
Renamed a few left-over variables and typedefs according to the
C++STYLE mentioned in the documentation.
Protected calls to __gthread* by __gthread_active_p(), whose value
is cached in the local variable __threads_active.
From-SVN: r79924
2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
* Makefile.in (STRICT2_WARN): Reorder.
* configure.ac: Check for -Wold-style-definition, and use it
in strict1_warn if it's available.
* configure: Regnerate.
From-SVN: r79922
2004-03-24 Felix Yen <fwy@alumni.brown.edu>
* testsuite/performance/20_util/allocator/producer_consumer.cc:
Use linear algorithm for producer.
From-SVN: r79920
* configure.ac: Check for -Wno-variadic-macros; don't use
-pedantic (in stage 1 or a simple 'make all') unless it's available,
and if it's available, use it. Also, clean up check for
-Wno-long-long.
* configure: Regenerate.
From-SVN: r79918
* config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
* config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
(MULTILIB_DEFAULTS): Use it.
(MIPS_CPU_STRING_DEFAULT): Remove.
(MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
(DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
EABI64 -mlong32 the default ABI. Enforce the default architecture.
* config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
(MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
(MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
accordingly.
and commit config.gcc hunk.
From-SVN: r79916
* config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
* config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
(MULTILIB_DEFAULTS): Use it.
(MIPS_CPU_STRING_DEFAULT): Remove.
(MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
(DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
EABI64 -mlong32 the default ABI. Enforce the default architecture.
* config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
march=vr4130, march=vr4300 and march=vr5000.
(MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
(MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
accordingly.
From-SVN: r79915
* config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
(TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
(ASM_SPEC): Pass down -mfix-vr4122-bugs.
* config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
(mips_init_libfuncs): Use special functions for divsi3 and modsi3
if TARGET_FIX_VR4122.
* config/mips/mips.md (define_attr length): Account for nops inserted
after macc and dmult when using -mfix-vr4122-bugs.
(umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
* config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
* config/mips/vr4122-div.S: New file.
* doc/invoke.texi: Document -mfix-vr4122-bugs.
Co-Authored-By: Richard Sandiford <rsandifo@redhat.com>
From-SVN: r79912
* reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
if flag_unsafe_math_optimizations.
* config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
and TARGET_80387 expand using truncdfsf2_noop pattern.
(truncxfsf2): Likewise using truncxfsf2_noop.
(truncxfdf2): Likewise using truncxfdf2_noop.
(truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
From-SVN: r79893
* Makefile.tpl (new-bootstrap): Set CC and CC_FOR_BUILD in configure
for stages 2 and 3 as well as in make. As a consequence, remove
OUTPUT_OPTION (now detected by configure) from the flags passed down
to make.
* Makefile.in: Regenerate.
From-SVN: r79892