2002-03-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
for aggregate and TFmode types.
From-SVN: r51591
* config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
* config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
No functional change except ...
* config/t-slibgcc-nolc-override (SHLIB_LC): Override it. New file.
* doc/install.texi (*-*-freebsd*): Document port configuration.
From-SVN: r51574
* g++.dg/dg.exp: Ignore tests in new directories bprob and gcov.
* g++.dg/bprob/bprob.exp: New driver for profile-directed branch
ordering tests.
* g++.dg/bprob/bprob-1.C: New test.
* g++.dg/gcov/gcov.exp: New driver for gcov tests.
* g++.dg/gcov/gcov-1.C: New test.
* g++.dg/gcov/gcov-1.x: New file.
* g++.dg/gcov/gcov-2.C: New test.
* g++.dg/gcov/gcov-3.C: New test.
* g++.dg/gcov/gcov-3.h: New file.
From-SVN: r51572
* include/c_std/std_cmath.h: To prevent problems overloading
g++ builtins, use the double variants from the global namespace
before defining float and long double variants in std::.
PR c++/5998:
* decl.c (cxx_init_decl_processing): Re-enable built-in functions
in the g++ front-end.
(duplicate_decl): Allow redefinition of anticipated built-ins.
Fix inlining problem by over-writing the old DECL_RTL.
(lookup_namespace_name): Fail to find an identifier in the
specified namespace if its still anticipated.
(builtin_function_1): New function split out from builtin_function
to create a builtin in the current namespace with given context.
(builtin_function): Call builtin_function_1 to define the
appropriate builtins in both the std and global namespaces.
(select_decl): Don't test for anticipated decls here.
(unqualified_namespace_lookup): Instead ignore them whilst
searching through scopes and namespaces.
* decl2.c (do_nonmember_using_decl): If a using declaration
specifies an anticipated built-in function, mark it as no longer
anticipated in that scope.
(ambiguous_decl): Avoid resolving to an anticipated decl.
* lex.c (do_scoped_id): Fail to find an identifier in the global
namespace if its still anticipated.
* g++.old-deja/g++.other/builtins5.C: New test.
* g++.old-deja/g++.other/builtins6.C: New test.
* g++.old-deja/g++.other/builtins7.C: New test.
* g++.old-deja/g++.other/builtins8.C: New test.
* g++.old-deja/g++.other/builtins9.C: New test.
From-SVN: r51568
* config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
unwind information when frame_pointer_needed.
(mmix_assemble_integer): Tweak wording in comment.
From-SVN: r51562
* combine.c (set_nonzero_bits_and_sign_copies): Don't call
nonzero_bits if not needed.
(nonzero_bits) [XOR]: Likewise.
(nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
reg_last_set_mode and mode are both MODE_INT, but not equal.
(record_value_for_reg): Compute reg_last_set_nonzero_bits
in nonzero_bits_mode for MODE_INT modes.
From-SVN: r51551
PR c++/6073
* class.c (finish_struct_1): Update static field's DECL_MODE even
if its type is a variant of t.
* g++.dg/opt/static1.C: New test.
From-SVN: r51549
Paolo Carlini <pcarlini@unitus.it>
* testsuite/22_locale/codecvt_members_unicode_wchar_t.cc
(test01): Protect the test with _GLIBCPP_USE_WCHAR_T;
fix i_lit_base e_lit_base arrays, making them independent
from the endianness of the platform; tweak UCS4 to UCS-4BE.
Co-Authored-By: Paolo Carlini <pcarlini@unitus.it>
From-SVN: r51521
(Remove_Checks): New procedure
* checks.adb:
(Remove_Checks): New procedure
* exp_util.adb:
Use new Duplicate_Subexpr functions
(Duplicate_Subexpr_No_Checks): New procedure
(Duplicate_Subexpr_No_Checks_Orig): New procedure
(Duplicate_Subexpr): Restore original form (checks duplicated)
(Duplicate_Subexpr): Call Remove_Checks
* exp_util.ads:
(Duplicate_Subexpr_No_Checks): New procedure
(Duplicate_Subexpr_No_Checks_Orig): New procedure
Add 2002 to copyright notice
* sem_util.adb: Use new Duplicate_Subexpr functions
* sem_eval.adb:
(Eval_Indexed_Component): This is the place to call
Constant_Array_Ref and to replace the value. We simply merge
the code of this function in here, since it is now no longer
used elsewhere. This fixes the problem of the back end not
realizing we were clever enough to see that this was
constant.
(Expr_Val): Remove call to Constant_Array_Ref
(Expr_Rep_Val): Remove call to Constant_Array_Ref
Minor reformatting
(Constant_Array_Ref): Deal with string literals (patch
suggested by Zack Weinberg on the gcc list)
* exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
Duplicate_Subexpr_Move_Checks.
* exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
Duplicate_Subexpr_Move_Checks.
* sem_eval.adb: (Constant_Array_Ref): Verify that constant
value of array exists before retrieving it (it may a private
protected component in a function).
From-SVN: r51513
* rtlanal.c: Include flags.h
(may_trap_p): Do not mark FP operations if trapping
if !flag_trapping_math
* Makefile.in (rtlanal.o): Add dependency on flag.h
* ifcvt.c (noce_operand_ok): Avoid the lameness.
From-SVN: r51508