* intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT.
(add_subroutines): Add LTIME, GMTIME and CHMOD.
* intrinsic.h (gfc_check_access_func, gfc_check_chmod,
gfc_check_chmod_sub, gfc_check_ltime_gmtime, gfc_simplify_rshift,
gfc_simplify_lshift, gfc_resolve_access, gfc_resolve_chmod,
gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub,
gfc_resolve_gmtime, gfc_resolve_ltime): Add prototypes.
* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_ACCESS,
GFC_ISYM_CHMOD, GFC_ISYM_LSHIFT, GFC_ISYM_RSHIFT.
* iresolve.c (gfc_resolve_access, gfc_resolve_chmod,
gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub,
gfc_resolve_gmtime, gfc_resolve_ltime): New functions.
* check.c (gfc_check_access_func, gfc_check_chmod,
gfc_check_chmod_sub, gfc_check_ltime_gmtime): New functions.
* trans-intrinsic.c (gfc_conv_intrinsic_rlshift): New function.
(gfc_conv_intrinsic_function): Add cases for the new GFC_ISYM_*.
* intrinsics/date_and_time.c: Add functions for GMTIME and LTIME.
* intrinsics/access.c: New file.
* intrinsics/chmod.c: New file.
* configure.ac: Add checks for <sys/wait.h>, access, fork,execl
and wait.
* Makefile.am: Add new files intrinsics/access.c and
intrinsics/chmod.c.
* configure: Regenerate.
* config.h.in: Regenerate.
* Makefile.in: Regenerate.
* gcc/testsuite/gfortran.dg/chmod_3.f90: New test.
* gcc/testsuite/gfortran.dg/ltime_gmtime_1.f90: New test.
* gcc/testsuite/gfortran.dg/ltime_gmtime_2.f90: New test.
* gcc/testsuite/gfortran.dg/lrshift_1.f90: New test.
* gcc/testsuite/gfortran.dg/chmod_1.f90: New test.
* gcc/testsuite/gfortran.dg/chmod_2.f90: New test.
Paolo Carlini [Sun, 30 Jul 2006 13:02:58 +0000 (13:02 +0000)]
stl_algo.h (stable_sort): Uglify the buf variable.
2006-07-30 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_algo.h (stable_sort): Uglify the buf variable.
* include/bits/stl_tempbuf.h (_Temporary_buffer<>::
_M_initialize_buffer): Uglify the val parameter.
Gary Benson [Fri, 28 Jul 2006 07:40:17 +0000 (07:40 +0000)]
prims.cc (_Jv_CreateJavaVM): Move setting runtimeInitialized from the start to the end of the function.
2006-07-28 Gary Benson <gbenson@redhat.com>
* prims.cc (_Jv_CreateJavaVM): Move setting runtimeInitialized
from the start to the end of the function. Remove references
to VMThrowable.trace_enabled.
* java/lang/natVMThrowable.cc (fillInStackTrace): Use
runtimeInitialized rather than trace_enabled to decide
whether to inhibit stack trace generation.
* java/lang/VMThrowable.java (trace_enabled): Removed.
* include/tr1/random: Convert std::tr1::_Private to anonymous
namespace.
* include/tr1/random.tcc: Same.
* include/tr1/hashtable: Move ::Internal to std::tr1::detail and
enclose bits that can actually be internal in in anonymous
namespace.
* include/tr1/unordered_set: Adjust explicit qualifications for
namespace changes.
* include/tr1/unordered_map: Same.
* include/tr1/cmath: Convert __gnu_internal to nested detail namespace.
* include/bits/cpp_type_traits.h: Move __type_type into anonymous
namespace.
Roger Sayle [Thu, 27 Jul 2006 14:02:27 +0000 (14:02 +0000)]
builtins.c (fold_fixed_mathfn): When long and long long are the same size...
* builtins.c (fold_fixed_mathfn): When long and long long are the
same size, canonicalize llceil*, llfloor*, llround* and llrint*
functions to their lceil*, lfloor*, lround* and lrint* forms.
* gfortran.dg/mclock.f90: New test.
* gfortran.dg/int_conv_1.f90: New test.
* gfortran.dg/stat_1.f90: New test.
* gfortran.dg/stat_2.f90: New test.
* configure.ac: Check for function clock.
* Makefile.am: Compile new file intrinsics/clock.c.
* intrinsics/clock.c: New file.
* Makefile.in: Regenerate.
* configure: Regenerate.
* config.h.in: Regenerate.
* intrinsics/stat.c: Rename the old stat_i?_sub functions to
helper functions stat_i?_sub_0, and use them for both STAT and
LSTAT.
Roger Sayle [Tue, 25 Jul 2006 23:21:56 +0000 (23:21 +0000)]
re PR middle-end/28473 (with -O, casting result of round(x) to uint64_t produces wrong values for x > INT_MAX)
PR middle-end/28473
* convert.c (convert_to_integer): When transforming (T)foo(x) into
bar(x) check that bar's result type can represent all the values of T.
Nick Clifton [Tue, 25 Jul 2006 15:33:50 +0000 (15:33 +0000)]
ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the size_lookup[] array.
* ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the size_lookup[] array.
(ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
(ggc_pch_count_object): Likewise.
(ggc_pch_alloc_object): Likewise.
(ggc_pch_write_object): Likewise.
(init_ggc): Do not attempt to initialize entries in the size_lookup[] array
for objects whose size is greater than than the length of the array.
dbxout.c (output_used_types_helper): Push queued types on a VEC.
* dbxout.c (output_used_types_helper): Push queued types
on a VEC.
(output_types_sort): New.
(output_used_types): Collect used types on a VEC and sort them
before emission.
Jan Hubicka [Mon, 24 Jul 2006 11:27:53 +0000 (13:27 +0200)]
re PR middle-end/28071 (A file that can not be compiled in reasonable time/space)
PR rtl-optimization/28071
* tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
* tree-iterator.c (tsi_split_statement_list_before): Do not crash when
splitting before first stmt.
Roger Sayle [Sun, 23 Jul 2006 21:13:07 +0000 (21:13 +0000)]
fold-cond-1.c: Increase test case portability by checking that "g ? 1 ...
* gcc.dg/fold-cond-1.c: Increase test case portability by checking
that "g ? 1 : h" doesn't match, instead of checking for "(g | h) != 0"
which may be transformed to "g || h" on some platforms.
Mark Mitchell [Sun, 23 Jul 2006 20:28:26 +0000 (20:28 +0000)]
re PR c++/28025 (multiple template friend compile error)
PR c++/28025
* cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.
* name-lookup.c (unqualified_namespace_lookup): There is no way to
have a hidden name in non-namespace scopes.
* pt.c (tsubst_friend_class): Look for hidden names.
* decl.c (lookup_and_check_tag): Fix typo in comment.
* semantics.c (finish_compound_literal): Fix typo in comment.
PR c++/28025
* g++.dg/template/friend45.C: New test.
Roger Sayle [Sun, 23 Jul 2006 20:14:44 +0000 (20:14 +0000)]
re PR target/28247 (libstdc++ cannot be build with Solaris threads)
PR target/28247
* gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of
the __gthrw form of thr_keycreate.
(__gthread_key_delete): Silence the unused argument warning.
Jerry DeLisle [Sat, 22 Jul 2006 03:14:27 +0000 (03:14 +0000)]
re PR fortran/28339 (gfortran misses a record from a format statement)
2006-07-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/28339
* io/transfer.c (next_record_w): Use next_array_record result to set
END_FILE. (write_block): Test for END_FILE before the next write occurs.
* io/unit.c (get_internal_unit): Initialize iunit->endfile for internal
unit.
Jason Merrill [Fri, 21 Jul 2006 21:00:20 +0000 (17:00 -0400)]
decl2.c (determine_visibility): Don't propagate visibility from type to decl.
* decl2.c (determine_visibility): Don't propagate visibility from
type to decl.
(constrain_class_visibility): Don't warn in system headers.
Don't warn about pointer fields.
Roger Sayle [Fri, 21 Jul 2006 05:31:33 +0000 (05:31 +0000)]
config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file if the target assembler is GNU binutils' gas.
* config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
if the target assembler is GNU binutils' gas.
* config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
whether to pass GNU gas or native as command line options.
Benjamin Kosnik [Thu, 20 Jul 2006 23:37:27 +0000 (23:37 +0000)]
PR libstdc++/19664 round 1
2006-07-20 Benjamin Kosnik <bkoz@redhat.com>
Jakub Jelinek <jakub@redhat.com>
PR libstdc++/19664 round 1
* acinclude.m4 (GLIBCXX_ENABLE_VISIBILITY): Check it.
* configure.ac: Use it.
* configure: Regenerate.
* docs/html/configopts.html: Document it.
* include/Makefile.am: Slip in to c++config.
* include/Makefile.in: Regenerate.
* include/bits/c++config (_GLIBCXX_VISIBILITY): New.
(_GLIBCXX_BEGIN_NAMESPACE): Use it.
(_GLIBCXX_END_NAMESPACE): Use it.
(_GLIBCXX_BEGIN_NESTED_NAMESPACE): Use it.
(_GLIBCXX_END_NESTED_NAMESPACE): Use it.
* src/debug.cc: Mark __gnu_internal namespace with hidden
visibility attribute.
* src/ext-inst.cc: Same.
* src/globals_io.cc: Same.
* src/globals_locale.cc: Same.
* src/ios_init.cc: Same.
* src/locale.cc: Same.
* src/mt_allocator.cc: Same.
* src/pool_allocator.cc: Same.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r115632
Jason Merrill [Thu, 20 Jul 2006 16:02:57 +0000 (12:02 -0400)]
re PR c++/28407 (Issue with anonymous namespace)
PR c++/28407
* cp/decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
const variables with implicit internal linkage.
* cp/tree.c (decl_linkage): Only return lk_external if it's set.
PR c++/28409
* cp/decl2.c (constrain_visibility): Ignore the anonymous namespace
for extern C decls.
(VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
Don't override explicit visibility.
* cp/decl2.c (constrain_visibility): Remove specified and reason
parameters. Don't touch decls that already have explicit visibility.
(determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
template.
(determine_visibility_from_class): Reverse sense of
DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
(constrain_class_visibility): Only complain about member visibility
if the member type is another class. Don't change visibility of the
current class.
* tree.c (remove_attribute): New fn.
* tree.h: Declare it.