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.
Richard Guenther [Mon, 26 Jun 2006 10:32:26 +0000 (10:32 +0000)]
ggc-page.c (init_ggc): Add missing element to size_lookup table.
2006-06-26 Richard Guenther <rguenther@suse.de>
* ggc-page.c (init_ggc): Add missing element to size_lookup
table.
Revert
2006-06-23 Richard Guenther <rguenther@suse.de>
* ggc-page.c (init_ggc): Do not round up the extra_order_size_table
sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
alignment requests instead. Add verification code.
Add struct tree_function_decl and struct tree_binfo size to
extra_order_size_table. Add missing element to size_lookup
table.
Paul Thomas [Sun, 25 Jun 2006 15:11:02 +0000 (15:11 +0000)]
re PR fortran/25056 (non-PURE function should not be a valid argument)
2006-06-25 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.
PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.
PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of the appearance of constant logical case expressions.
Signal an error is either value appears more than once.
PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.
PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.
PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.
PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.
PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code->expr (ie. the forall mask) is resolved.
This is used to change "block" to "mask" in the non-PURE
error message.
2006-06-25 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.
PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.
PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.
PR fortran/25073
* gfortran.dg/select_7.f90: New test.
PR fortran/27554
* intrinsic_actual_1.f: New test.
PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.
PR fortran/25072
* gfortran.dg/forall_5.f90: New test.
Lee Millward [Sun, 25 Jun 2006 11:07:05 +0000 (11:07 +0000)]
re PR c++/28051 (ICE on invalid conversion operator)
PR c++/28051
* mangle.c (mangle_conv_op_name_for_type): Check for
invalid types.
*name-lookup.c (push_class_level_binding): Robustify.
(do_class_using_decl): Return early if name is error_mark_node.
Paul Thomas [Sat, 24 Jun 2006 13:04:37 +0000 (13:04 +0000)]
re PR fortran/28118 (ICE calling subroutine defined via explicit interface)
2006-06-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28118
* trans-array.c (gfc_conv_expr_descriptor): When building temp,
use the substring reference to calculate the length if the
expression does not have a charlen.
2006-06-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28118
* gfortran.dg/actual_array_substr_1.f90: New test.
Olivier Hainque [Sat, 24 Jun 2006 12:47:48 +0000 (12:47 +0000)]
gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
* gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
(gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
aggregate types.
* tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
ARRAY_REF, so have the callback called for the low bound expression.
* gnat.dg/scalar_mode_agg_compare_loop.adb: New test.
* gnat.dg/scalar_mode_agg_compare.adb: New test.
re PR fortran/28094 (Modulo of real(kind=10) variables doesn't work)
PR fortran/28094
* trans-intrinsic.c (gfc_conv_intrinsic_mod): Support cases where
there is no integer kind equal to the resulting real kind.
* intrinsic.c (add_functions): MODULO is not allowed as an actual
argument.
* Makefile.am: Add _mod_r10.F90 and _mod_r16.F90.
* Makefile.in: Regenerate.
* generated/_mod_r10.F90: New file.
* generated/_mod_r16.F90: New file.
Olivier Hainque [Fri, 23 Jun 2006 16:18:49 +0000 (16:18 +0000)]
tree.c (max_int_size_in_bytes): New function, inspired from code in function.c:assign_temp.
* tree.c (max_int_size_in_bytes): New function, inspired from
code in function.c:assign_temp.
* tree.h (max_int_size_in_bytes): Declare.
* function.c (assign_temp): Use it.
* gimplify.c (create_tmp_var): Relax the assertions on the type
properties, not mandating constant size any more.
(force_constant_size): New static function.
(gimple_add_tmp_var): Use it, forcing variable size to a
constant upper bound if it is not constant on entry.
* ada/misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
not been able to get a constant upper bound from TYPE_SIZE_UNIT.
Volker Reichelt [Fri, 23 Jun 2006 15:59:51 +0000 (15:59 +0000)]
re PR c++/11468 (Deriving from CNI class java::lang::Object causing an ICE)
PR c++/11468
* init.c (build_new_1): Handle error_mark_nodes returned by
build_java_class_ref.
(build_java_class_ref): Do not abort compilation, but return
error_mark_node. Improve error message. Fix indentation.
Danny Smith [Fri, 23 Jun 2006 08:25:33 +0000 (08:25 +0000)]
re PR target/27789 (attribute handling fallout from DECL_INITIAL changes)
PR target/27789
* config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
for initialization and setting of one_only flag to ...
(i386_pe_encode_section_info): ...here.
(i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
Recheck that the symbol has not been defined.
cp
* decl.c (start_decl): Check that dllimports are not initialized.
testsuite
* g++.dg/ext/dllimport4.C. Add more tests for invalid
initialization.
Richard Guenther [Fri, 23 Jun 2006 08:22:12 +0000 (08:22 +0000)]
ggc-page.c (init_ggc): Do not round up the extra_order_size_table sizes to MAX_ALIGNMENT.
2006-06-23 Richard Guenther <rguenther@suse.de>
* ggc-page.c (init_ggc): Do not round up the extra_order_size_table
sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
alignment requests instead. Add verification code.
Add struct tree_function_decl and struct tree_binfo size to
extra_order_size_table. Add missing element to size_lookup
table.
Ben Elliston [Fri, 23 Jun 2006 01:46:00 +0000 (01:46 +0000)]
decNumber.h (decNumberNegate): Remove.
libdecnumber/
* decNumber.h (decNumberNegate): Remove.
gcc/
* dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
negate dn -- manipulate it directly.