Roger Sayle [Sun, 26 Sep 2004 14:58:34 +0000 (14:58 +0000)]
re PR middle-end/17112 (Copying of packed bitfields is wrong)
PR middle-end/17112
* stor-layout.c (compute_record_mode): For records with a single
field, only use the field's mode if its size matches what we'd
have choosen for the record ourselves. This forces the use of
BLKmode for packed records that don't completely fill a mode.
* gcc.dg/pr17112-1.c: New test case.
Co-Authored-By: Giovanni Bajo <giovannibajo@gcc.gnu.org>
From-SVN: r88130
re PR tree-optimization/17591 (Ada bootstrap SEGV in stage2 on osint.adb, no SEGV when -fno-ivopts)
PR bootstrap/17591
* tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
with varying offset.
* tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
(idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
ARRAY_REFS.
(expr_invariant_in_loop_p): New function.
(idx_find_step): Handle step and lower bound for ARRAY_REFs. Handle
component_ref_field_offset for COMPONENT_REFs. Do not allow
ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
(add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
MISALIGNED_INDIRECT_REFs.
(idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
(rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
MISALIGNED_INDIRECT_REFs.
* java/util/TimeZone.java (defaultZone): Use VMTimeZone.
(getDefaultTimeZone): Make package private. Check that GMToffset
contains at least one digit.
(getDefaultTimeZoneId, readTimeZoneFile, readtzFile): (Re)Moved to
VMTimeZone.
* util/VMTimeZone.java: New file with above methods.
Proxy.java (getPackage, [...]): Fixed handling of default package.
2004-09-25 Jeroen Frijters <jeroen@frijters.net>
* java/lang/reflect/Proxy.java (getPackage, ClassFactory): Fixed
handling of default package. (generate): Removed confused comments
and code about making Method and Field accessible.
re PR tree-optimization/17474 (Compiling at -01 yields different results)
PR tree-optimization/17474
* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
* config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
* config/s390/s390.c (s390_back_chain_rtx): New function.
* config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
Call anti_adjust_stack.
("restore_stack_block"): Use s390_back_chain_rtx. Enable pattern
only if compiling with back chain.
("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
back chain only if back chain enabled. Use s390_back_chain_rtx.
Ziemowit Laski [Fri, 24 Sep 2004 23:15:33 +0000 (23:15 +0000)]
objc-act.c (init_objc_symtab, [...]): When initializing 'long' fields, ensure that the initializer value is also 'long'.
[gcc/objc/ChangeLog]
2004-09-24 Ziemowit Laski <zlaski@apple.com>
* objc-act.c (init_objc_symtab, init_module_descriptor,
build_shared_structure_initializer): When initializing 'long'
fields, ensure that the initializer value is also 'long'.
objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION throughout.
objc:
* objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
throughout.
(objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
(build_selector_translation_table): Use %J in diagnostic
instead of diddling input_line. Fix spelling.
testsuite:
* objc.dg/proto-lossage-4.m: Use long instead of int to avoid
extra diagnostics on targets with 64-bit pointers.
* objc.dg/selector-1.m: Adjust dg-warning regexp.
Joseph Myers [Fri, 24 Sep 2004 20:29:55 +0000 (21:29 +0100)]
re PR c/12802 (-fms-extensions documentation problem)
PR c/12802
* doc/extend.texi (Unnamed Fields): Remove "." from end of long
title. Document interaction with -fms-extensions.
* doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
section.
Andrew Pinski [Fri, 24 Sep 2004 17:38:36 +0000 (17:38 +0000)]
re PR tree-optimization/16954 (ICE in get_tmt_for with IMA and incomplete structs)
2004-09-24 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/16954
* tree-ssa-copyrename.c (copy_rename_partition_coalesce):
Prevent renaming if the aliasing sets of the type which the
pointer points to are different.
Joseph Myers [Fri, 24 Sep 2004 17:22:20 +0000 (18:22 +0100)]
re PR c/17188 (struct Foo { } redefinition)
PR c/17188
* c-decl.c (diagnose_mismatched_decls): Check for duplicate
declarations of enumerators.
(start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
for redefinition. Check for nested redefinition.
(finish_struct): Don't check for nested redefinition.
(start_enum): Check for nested redefinition.
Tom Tromey [Fri, 24 Sep 2004 15:44:35 +0000 (15:44 +0000)]
re PR java/15656 (ICE segfault in lex.c)
PR java/15656:
* parse.y (class_instance_creation_expression): Set `$$' to NULL
in error parts of rule.
(unary_expression): Don't call error_if_numeric_overflow when $1
is NULL.
Tom Tromey [Fri, 24 Sep 2004 15:39:17 +0000 (15:39 +0000)]
re PR java/16789 (ICE in force_evaluation_order() on valid code)
PR java/16789:
* parse.y (resolve_qualified_expression_name): Set
CAN_COMPLETE_NORMALLY on first call when chaining static calls.
* expr.c (force_evaluation_order): Check for empty argument list
after stripping COMPOUND_EXPR.
Paolo Carlini [Fri, 24 Sep 2004 15:26:35 +0000 (15:26 +0000)]
localename.cc (locale::locale(const char*)): Minor tweaks: rename a variable, move an assignment.
2004-09-24 Paolo Carlini <pcarlini@suse.de>
* src/localename.cc (locale::locale(const char*)): Minor tweaks:
rename a variable, move an assignment.
(locale::_Impl::_Impl(const char*, size_t)): Likewise, minor tweak.
Paolo Bonzini [Fri, 24 Sep 2004 15:23:06 +0000 (15:23 +0000)]
parser.c (cp_parser_expression_stack): Clarify why it is an array of NUM_PREC_VALUES elements.
2004-09-24 Paolo Bonzini <bonzini@gnu.org>
* parser.c (cp_parser_expression_stack): Clarify why it is
an array of NUM_PREC_VALUES elements.
(cp_parser_binary_expression): Clarify why we do not need to
handle stack overflow.
ObjectInputStream.java (readObject): Delegate instantation of Externalizable classes to ObjectStreamClass.
2004-09-24 Jeroen Frijters <jeroen@frijters.net>
* java/io/ObjectInputStream.java (readObject): Delegate instantation
of Externalizable classes to ObjectStreamClass.
* java/io/ObjectStreamClass.java (newInstance): New method to
instantiate Externalizable (while ignoring the accessibility of
the constructor). (constructor): New field to cache the constructor.
Michael Koch [Fri, 24 Sep 2004 06:41:57 +0000 (06:41 +0000)]
PipeImpl.java: Use VMPipe for native stuff.
2004-09-24 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/PipeImpl.java: Use VMPipe for native stuff.
* gnu/java/nio/SelectorImpl.java: Use VMSelector for native stuff.
* gnu/java/nio/VMPipe.java,
gnu/java/nio/VMSelector.java:
New files.
* gnu/java/nio/natPipeImplEcos.cc,
gnu/java/nio/natPipeImplPosix.cc,
gnu/java/nio/natPipeImplWin32.cc:
Ported to VMPipe.
* gnu/java/nio/natSelectorImplEcos.cc,
gnu/java/nio/natSelectorImplPosix.cc,
gnu/java/nio/natSelectorImplWin32.cc:
Ported to VMSelector.
* Makefile.am: Added new files gnu/java/nio/VMPipe.java and
gnu/java/nio/VMSelector.java.
* Makefile.in: Regenerated.
Eric Botcazou [Fri, 24 Sep 2004 06:17:07 +0000 (08:17 +0200)]
config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h if the GNU assembler is used.
* config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
if the GNU assembler is used.
(sparc-*-solaris2*): Likewise.
* dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
(dbxout_function_end): Protect N_ENSYM with it.
(dbxout_begin_prologue): Protect N_BNSYM with it.
* doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
* config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
* config/sparc/sol2-gas.h: New file.
re PR target/17626 (Recent peephole2:s may cause internal compiler errors)
PR target/17626
* config/cris/cris.md (moverside, movemside): Rename variable
"reg" to "otherop". To generate canonical RTX, check that otherop
isn't constant instead of checking that operand 1 is a register.
decl.c (grokfndecl): If ::main is found not to return int, correct it after issuing a diagnostic.
gcc/cp:
* decl.c (grokfndecl): If ::main is found not to return int,
correct it after issuing a diagnostic.
(grokdeclarator): If the incoming type was error_mark_node, do
not complain about declaring something with no type.
(start_function): Change check for ::main not returning int to
an assertion, as grokfndecl now catches this when the user did it.
* init.c (perform_member_init, sort_mem_initializers)
(emit_mem_initializers): Make most diagnostics be issued on
the line of current_function_decl, not whatever the current
input line is.
* parser.c (cp_lexer_peek_token_emit_debug_info): Surround
definition and declaration with #ifdef ENABLE_CHECKING.
Avoid unnecessary use of fprintf.
(cp_lexer_print_token, cp_lexer_debug_stream): Adjust stub
definitions to avoid warnings.
(cp_lexer_new_main): Add assertion that first token is not a
padding token.
(cp_lexer_new_from_token_array): Fold into ...
(cp_lexer_new_from_tokens): ... here. Add assertion that
first token is not a padding token.
(cp_lexer_set_source_position_from_token): Move nearer to callers.
Remove unused lexer argument.
(cp_lexer_peek_token): Just print debugging report (if enabled)
and return lexer->next_token.
(cp_lexer_skip_purged_tokens): Delete.
(cp_lexer_next_token_is, cp_lexer_next_token_is_not): Make
inline, simplify bodies.
(cp_lexer_peek_nth_token): Add debugging report a la
cp_lexer_peek_token.
(cp_lexer_consume_token): Correct commentary. Advance over
purged tokens here. Set current source position here, from
token to be returned. Avoid unnecessary use of fprintf.
(cp_lexer_purge_token): Advance next_token pointer over this and
subsequent purged tokens.
(cp_parser_error): Adjust source position to that of the
peeked token.
(cp_parser_push_lexer_for_tokens, cp_parser_pop_lexer): New functions.
(cp_parser_string_literal): Remove some excessive cleverness.
(cp_parser_enum_specifier): Call start_enum before consuming
the opening brace.
(cp_parser_member_declaration): Make the "extra semicolon"
diagnostic consistently-worded with the other place this is
diagnosed. Explicitly set the diagnostic location to the
location of the offending semicolon.
(cp_parser_enclosed_template_argument_list): Use %</%> quoting
in diagnostics. Do not use cp_parser_require. Set location
of diagnostics about improper use of '>>' to location of
offending token.
(cp_parser_late_parsing_for_member):
Use cp_parser_push_lexer_for_tokens and cp_parser_pop_lexer.
(cp_parser_late_parsing_default_args): Likewise. Manually
move some logic outside the loop.
2004-09-23 Diego Novillo <dnovillo@redhat.com>
Jakub Jelinek <jakub@redhat.com>
* tree-flow.h (find_new_referenced_vars): Add prototype.
* tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
Move to...
* tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
... here.
(mark_new_vars_to_rename): Walk through all operands.
* tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
(execute_fold_all_builtins): Use it.
(pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
* gcc.c-torture/execute/builtins/strcpy-2.c: New test.
* gcc.c-torture/execute/builtins/strcpy-2-lib.c: New.