* stacktrace.cc (ClassForFrame): Remove commented-out code.
(UnwindTraceFn): Use _Unwind_GetIPInfo and adjust IP
only when needed.
(getLineNumberForFrame): Don't adjust IP here.
* testsuite/libjava.lang/StackTrace.java: New test case.
* testsuite/libjava.lang/StackTrace.out: Ditto.
Paul Eggert [Thu, 6 Jul 2006 23:24:51 +0000 (23:24 +0000)]
Port to hosts whose 'sort' and 'tail' implementations treat operands with leading '+' as file names...
Port to hosts whose 'sort' and 'tail' implementations
treat operands with leading '+' as file names, as POSIX
has required since 2001. However, make sure the code still
works on pre-POSIX hosts.
* ltmain.sh: Don't assume "sort +2" is equivalent to
"sort -k 3", since POSIX 1003.1-2001 no longer requires this.
contrib:
* compare_tests: Don't assume "sort +2" is equivalent to
"sort -k 3", since POSIX 1003.1-2001 no longer requires this.
gcc:
* Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
which says you should use "tail -c +N" rather than "tail +Nc".
Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
re PR fortran/28129 (gfortran -fbounds-check: Shows invalid array out of bounds error)
PR fortran/28129
* trans-array.c (gfc_trans_array_bound_check): Add a locus
argument, and use it in the error messages.
(gfc_conv_array_index_offset): Donc perform bounds checking on
the last dimension of assumed-size arrays.
libgcj.spec.in: Use THREADSTARTFILESPEC to affect the spec for startfile.
* libgcj.spec.in: Use THREADSTARTFILESPEC to affect the spec for
startfile.
* configure.ac: Allow targets to affect the spec for startfile
by specifying a THREADSTARTFILESPEC variable. Define this for
the win32 threads package to include crtmt.o.
* configure: Regenerate.
* win32.cc (_CRT_MT): Remove definition.
(__mingwthr_key_dtor): Likewise.
Co-Authored-By: Danny Smith <dannysmith@users.sourceforge.net>
From-SVN: r115196
Peter O'Gorman [Tue, 4 Jul 2006 20:20:01 +0000 (20:20 +0000)]
ltconfig: chmod 644 before ranlib during install.
ChangeLog:
* ltconfig: chmod 644 before ranlib during install.
libiberty/ChangeLog:
* Makefile.in: chmod 644 before ranlib during install.
gcc/ChangeLog:
* mklibgcc.in: chmod 644 before ranlib during install.
libjava/classpath/ChangeLog:
* ltconfig: chmod 644 before ranlib during install.
Paul Thomas [Tue, 4 Jul 2006 20:15:52 +0000 (20:15 +0000)]
re PR fortran/28174 (Corruption of multiple character arrays when passing array sections)
2006-07-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28174
* trans-array.c (gfc_conv_expr_descriptor): When building temp,
ensure that the substring reference uses a new charlen.
* trans-expr.c (gfc_conv_aliased_arg): Add the formal intent to
the argument list, lift the treatment of missing string lengths
from the above and implement the use of the intent.
(gfc_conv_function_call): Add the extra argument to the call to
the above.
PR fortran/28167
* trans-array.c (get_array_ctor_var_strlen): Treat a constant
substring reference.
* array.c (gfc_resolve_character_array_constructor): Remove
static attribute and add the gfc_ prefix, make use of element
charlens for the expression and pick up constant string lengths
for expressions that are not themselves constant.
* gfortran.h : resolve_character_array_constructor prototype
added.
* resolve.c (gfc_resolve_expr): Call resolve_character_array_
constructor again after expanding the constructor, to ensure
that the character length is passed to the expression.
2006-07-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28174
* gfortran.dg/actual_array_substr_2.f90: New test.
PR fortran/28167
* gfortran.dg/actual_array_constructor_2.f90: New test.
intrinsic.c (add_subroutines): Add ITIME and IDATE.
* intrinsic.c (add_subroutines): Add ITIME and IDATE.
* intrinsic.h (gfc_check_itime_idate,gfc_resolve_idate,
fc_resolve_itime): New protos.
* iresolve.c (gfc_resolve_itime, gfc_resolve_idate): New functions.
* check.c (gfc_check_itime_idate): New function.
* intrinsic.texi: Document the new intrinsics.
* intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8,
idate_i4,idate_i8): New functions.
* gfortran.dg/itime_idate_1.f: New test.
* gfortran.dg/itime_idate_2.f: New test.
Co-Authored-By: Daniel Franke <franke.daniel@gmail.com>
From-SVN: r115173
Eric Botcazou [Tue, 4 Jul 2006 07:52:47 +0000 (09:52 +0200)]
re PR bootstrap/18058 (Bootstrap fails with non-GCC compilers)
PR bootstrap/18058
* configure.in: Add -fkeep-inline-functions to CFLAGS for stage 1
if the bootstrap compiler is a GCC version that supports it.
* configure: Regenerate.
gcc/
* Makefile.in (BUILD_RTL): Add build/vec.o.
(build/gencondmd.o): Filter out -fkeep-inline-functions.
(build/genextract): Delete.
(build/genautomata): Likewise.
Jerry DeLisle [Tue, 4 Jul 2006 01:36:31 +0000 (01:36 +0000)]
re PR libfortran/27704 (Incorrect runtime error on multiple OPEN)
2006-07-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/27704
* runtime/error.c (notify_std): Pass common flags into function. Use
flags to show locus of error or warning.
* libgfortran.h: Add enum try. Add prototype for notify_std.
* io/open.c (edit_modes): Allow status="old" and add extension to
allow status="scratch"
*io/list_read.c (nml_read_obj): Update call to notify_std.
*io/io.h: Remove enum try and prototype for notify_std.
*io/transfer.c (read_sf): Update call to notify_std.
*io/format.c (parse_format_list): Update call to notify_std.
Eric Botcazou [Mon, 3 Jul 2006 20:14:18 +0000 (20:14 +0000)]
tree.c (range_in_array_bounds_p): New predicate.
* tree.c (range_in_array_bounds_p): New predicate.
* tree.h (range_in_array_bounds_p): Declare it.
* tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
return a less conservative answer.
* tree-sra.c (struct sra_elt): Add new pointer field 'groups'
and flag 'is_group'.
(IS_ELEMENT_FOR_GROUP): New macro.
(FOR_EACH_ACTUAL_CHILD): Likewise.
(next_child_for_group): New helper function.
(can_completely_scalarize_p): Take into account groups.
(sra_hash_tree): Handle RANGE_EXPR.
(sra_elt_eq): Likewise.
(lookup_element): Be prepared for handling groups.
(is_valid_const_index): Delete.
(maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
instead of is_valid_const_index.
<ARRAY_RANGE_REF>: New case.
(sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
is_valid_const_index.
<ARRAY_RANGE_REF>: Do not unconditionally punt.
(scan_dump): Dump info for groups too.
(decide_instantiation_1): Likewise.
(decide_block_copy): Assert that the element is not a group.
Propagate decision to groups.
(generate_one_element_ref): Handle RANGE_EXPR.
(mark_no_warning): Iterate over actual childs.
(generate_copy_inout): Likewise.
(generate_element_copy): Likewise.
(generate_element_zero): Likewise.
(generate_element_init_1): Likewise.
(dump_sra_elt_name): Handle RANGE_EXPR.
Paolo Carlini [Mon, 3 Jul 2006 19:27:55 +0000 (19:27 +0000)]
rc_string_base.h (__rc_string_base::_S_max_size): Adjust, take into account rounding in _M_create.
2006-07-03 Paolo Carlini <pcarlini@suse.de>
* include/ext/rc_string_base.h (__rc_string_base::_S_max_size):
Adjust, take into account rounding in _M_create.
(__rc_string_base::_M_create): Add early _S_max_size check.
Paolo Carlini [Mon, 3 Jul 2006 17:31:46 +0000 (17:31 +0000)]
[multiple changes]
2006-07-03 Ian Lance Taylor <ian@airs.com>
Paolo Carlini <pcarlini@suse.de>
* include/ext/rc_string_base.h (__rc_string_base::_S_max_size):
Increase by a factor of two.
* include/ext/sso_string_base.h (__sso_string_base::_S_max_size):
Likewise.
2006-07-03 Paolo Carlini <pcarlini@suse.de>
* include/ext/sso_string_base.h (__sso_string_base::_M_create): Never
allocate a string bigger than _S_max_size.
Roger Sayle [Mon, 3 Jul 2006 14:35:13 +0000 (14:35 +0000)]
re PR tree-optimization/26251 (code size increase with -Os)
PR tree-optimization/26251
* tree-ssa-threadupdate.c (redirection_block_p): New function.
(thread_block): When optimizing for size refuse to thread jumps
that would require duplication of blocks other than redirection
blocks.
Paolo Bonzini [Mon, 3 Jul 2006 07:58:08 +0000 (07:58 +0000)]
re PR other/27063 (Fail to build gcc-core-4.2 snapshots)
2006-07-03 Paolo Bonzini <bonzini@gnu.org>
PR other/27063
* configure.in: Test subdir_requires and give an appropriate
error message.
* configure: Regenerate
gcc:
2006-07-03 Paolo Bonzini <bonzini@gnu.org>
PR other/27063
* configure.ac (for lang...): Simplify nesting of conditionals.
Test subdir_requires for non-enabled languages. Move processing
of lang_opt_files and lang_tree_fiels below that test.
* configure: Regenerate.
* doc/sourcebuild.texi (Front End Config): Document subdir_requires.
gcc/objcp:
2006-07-03 Paolo Bonzini <bonzini@gnu.org>
fortran/
PR fortran/19259
* parse.c (next_free): Error out on line starting with semicolon.
(next_fixed): Fix formatting. Error out on line starting with
semicolon.
testsuite/
PR fortran/19259
* gfortran.dg/semicolon_fixed.c: New.
* gfortran.dg/semicolon_free.c: New.
Jason Merrill [Fri, 30 Jun 2006 01:15:56 +0000 (21:15 -0400)]
re PR c++/26905 (default-visibility class symbol improperly resolved as hidden-visibility)
PR c++/26905
PR c++/26612
PR c++/27000
PR c++/26984
PR c++/19134
* tree.c (build_decl_stat): Don't hande #pragma visibility here.
* c-common.c (c_determine_visibility): Handle it here.
* c-decl.c (finish_decl): Call c_determine_visibility for
functions, too.
* flags.h (enum symbol_visibility): Sort from most to least visibility.
* tree.h: Likewise.
* varasm.c (default_assemble_visibility): Likewise.
* c-common.c (handle_visibility_attribute): Complain about trying
to give visibility to an already defined class, or trying to change
declared visibility. Always attach the attribute.
* cp/decl2.c (determine_visibility): Overhaul.
(determine_visibility_from_class): Likewise.
(min_vis_r, type_visibility, constrain_visibility): New fns.
(constrain_visibility_for_template): Likewise.
(constrain_class_visibility): Likewise.
* cp/decl.c (cp_finish_decl): Call determine_visibility for function
decls, too.
* cp/name-lookup.c (pushtag): Call determine_visibility.
* cp/decl.c (duplicate_decls): Don't copy visibility from template to
specialization.
* cp/pt.c (check_explicit_specialization): Likewise.
(lookup_template_class, tsubst_decl): Call determine_visibility.
* cp/class.c (finish_struct_1): Call constrain_class_visibility.
PR c++/26905
PR c++/21675
PR c++/17470
* cp/parser.c (cp_parser_explicit_instantiation): Pass the attributes
to grokdeclarator.
(cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
(cp_parser_enum_specifier): Likewise.
(cp_parser_elaborated_type_specifier): Apply attributes if this
declares only the class.
(cp_parser_class_specifier): Apply leading attributes immediately.
* cp/semantics.c (begin_class_definition): Add attributes parameter,
apply them to the type.
* attribs.c (decl_attributes): Ignore type-in-place attributes
once the type has been defined.
PR c++/21581
PR c++/25915
* cp/tree.c (decl_anon_ns_mem_p): New function.
* cp/cp-tree.h: Declare it.
* cp/decl2.c (determine_visibility): Make anonymous namespace
members static.
(min_vis_r, constrain_visibility): Likewise.
* cp/rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
pseudo-types.
* cp/decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
global_namespace.
* cp/name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
on anonymous namespaces.
Ranjit Mathew [Thu, 29 Jun 2006 14:57:39 +0000 (14:57 +0000)]
javaprims.h (_Jv_uintptr_t): New typedef similar to uintptr_t in C99.
* gcj/javaprims.h (_Jv_uintptr_t): New typedef similar to uintptr_t in
C99.
* include/java-stack.h: Include stdlib.h.
(_Jv_AddrInfo): New structure to hold address information.
* include/posix.h (_Jv_platform_dladdr): Declare.
* include/win32.h (_Jv_platform_dladdr): Declare.
(backtrace): Remove declaration.
* posix.cc: Include dlfcn.h if available. Include java-stack.h.
(_Jv_platform_dladdr): Define.
* win32.cc: Include string.h. Include java-stack.h.
(backtrace): Remove.
(_Jv_platform_dladdr): Define.
* sysdep/i386/backtrace.h (fallback_backtrace): Check that a potential
frame pointer value is 32-bit word-aligned. Use operand of the CALL
instruction calling the current function to find its starting address.
* stacktrace.cc: Do not include dlfcn.h. Include platform.h.
(_Jv_StackTrace::getLineNumberForFrame): Use _Jv_platform_dladdr()
instead of dladdr().
(_Jv_StackTrace::GetStackTraceElements): Use nCodeMap even for Windows.
(_Jv_StackTrace::GetClassContext): Use fallback_backtrace() for
targets with SJLJ exceptions instead of using _Unwind_Backtrace().
(_Jv_StackTrace::GetFirstNonSystemClassLoader): Likewise.
Roger Sayle [Wed, 28 Jun 2006 19:42:04 +0000 (19:42 +0000)]
genpreds.c (generate_switch_p): New function.
* genpreds.c (generate_switch_p): New function.
(add_mode_tests): Push the new mode test down inside an AND expr
if this allows the switch-suitable MATCH_CODE to be near the root.
(write_match_code_switch): New function to write a MATCH_CODE as
a switch statement.
(write_predicate_stmts): New function to write a predicate RTX
expression as a sequence of statements.
(write_one_predicate_function): Use write_predicate_stmts.
(write_tm_constrs_h): Likewise.
Tom Tromey [Tue, 27 Jun 2006 20:38:10 +0000 (20:38 +0000)]
OutputStreamWriter.java (writeChars): Use a 'do' loop.
* java/io/OutputStreamWriter.java (writeChars): Use a 'do' loop.
Set 'out.count' earlier.
(close): Call setFinished on converter.
(flush): Always write work buffer.
* java/io/PrintStream.java (writeChars): Do 'do' loop.
(close): Call setFinished on converter. Write a 'flush' array.
* java/lang/natString.cc (getBytes): Call setFinished on
converter.
* gnu/gcj/convert/CharsetToBytesAdaptor.java (hasBytes): New
field.
(write): Set hasBytes. Changed 'finished' logic.
(havePendingBytes): Rewrote.
(setFinished): New method.
* gnu/gcj/convert/UnicodeToBytes.java (setFinished): New method.
* testsuite/libjava.lang/RH194522.java: New file.
* testsuite/libjava.lang/RH194522.out: New file.
* testsuite/util/regression/rand/assoc/rand_regression_test.hpp:
Set probability of compare from 1 to 0.25.
* testsuite/util/regression/rand/priority_queue/
rand_regression_test.hpp: Same.