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.
Mark Wielaard [Thu, 23 Sep 2004 18:01:46 +0000 (18:01 +0000)]
2004-09-23 Mark Wielaard <mark@klomp.org>
* java/util/Collections.java
(binarySearch(List, Object, Comparator)): Explicitly
reverse direction in list iterator.
(rotate): Just return when list is empty.
Joseph Myers [Thu, 23 Sep 2004 16:11:24 +0000 (17:11 +0100)]
re PR c/16833 (-fno-builtin prevents automatic format checks for standard functions)
PR c/16833
* doc/extend.texi, doc/invoke.texi: Document interaction of
-fno-builtin with format checks. Note that built-in functions
have effects beyond generating code that avoids calls to those
functions.
re PR tree-optimization/17533 (cc1plus crashes on libmudflap test case, verify_dominators())
2004-09-23 Frank Ch. Eigler <fche@redhat.com>
PR tree-optimization/17533
* dominance.c (verify_dominators): Tolerate even more incorrect
dominance data during error message printing.
* tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
and edges more correctly.
* optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
optabs.
(OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
for the new optabs.
(expand_ternary_op): New function.
* genopinit.c (optabs): Handle the new optabs.
* optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
(init_optabs): Initialize vec_realign_load_optab.
(expand_ternary_op): New functions.
* target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
(TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
(TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
(TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
* target.h (struct vectorize): New member for struct gcc_target.
(misaligned_mem_ok): New member for targetm.vectorize.
(builtin_mask_for_load): Likewise.
(builtin_mask_for_store): Likewise.
* targethooks.c (default_vect_misaligned_mem_ok): New function.
* targethooks.h (default_vect_misaligned_mem_ok): New function.
* config/rs6000/altivec.md (build_vector_mask_for_load): New
define_expand.
(vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
(vec_realign_load_v16qi): New define_insn.
* config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
(ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
* config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
(altivec_builtin_mask_for_store): New variables.
(rs6000_builtin_mask_for_load): New function. Implements
TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
(rs6000_builtin_mask_for_store): New function. Implements
TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
(rs6000_expand_builtin): Expand the target builtins
builtin_mask_for_load and builtin_mask_for_store.
(altivec_init_builtins): Initialize the new target builtins.
* config/i386/i386.c (ix86_misaligned_mem_ok): New function.
Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
* tree-vectorizer.c (vect_create_data_ref): Renamed to
vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
(vect_create_addr_base_for_vector_ref): Additional argument (offset).
(vectorizable_store): Call vect_create_data_ref_ptr with additional
arguments, and create an indirect_ref with its return value data_ref.
Check aligned_access_p.
(vectorizable_load): Handle misaligned loads, using software-pipelined
scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
vec_realign_load_optab is supported, or using a scheme without
software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
misaligned_mem_ok is supported.
(vect_finish_stmt_generation): Typo.
(vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
(vect_analyze_data_refs_alignment): Don't fail vectorization in the
presence of misaligned loads.
(vect_analyze_data_ref_access): Add check for constant init.
(vect_get_symbl_and_dr): Remove duplicate line.
* tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
Robert Dewar [Thu, 23 Sep 2004 09:00:08 +0000 (09:00 +0000)]
re PR ada/17540 (Duplicate symbols while building Ada)
2004-09-23 Robert Dewar <dewar@gnat.com>
PR ada/17540
* sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
instead do this at freeze time (we won't do it if there is an address
clause).
Change "pragma inline" to "pragma Inline" in information and error
messages.
Minor reformatting.
* freeze.adb (Check_Address_Clause): Remove previous change, not the
right way of doing things after all.
(Freeze_Entity): For object, set Is_Public for imported entities
unless there is an address clause present.
Jan Hubicka [Thu, 23 Sep 2004 00:50:37 +0000 (02:50 +0200)]
cfgexpand.c (add_reg_br_prob_note): New function.
* cfgexpand.c (add_reg_br_prob_note): New function.
(expand_gimple_cond_expr): Use it.
(tree_expand_cfg): No longer kill the profile.
* cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
only if it is present.
* passes.c (rest_of_handle_loop_optimize): Kill the profile.
* predict.c (combine_predictions_for_insn): Set the probabilities
based on REG_BR_PROB note if present.
* predict.c (branch_prob): Profile is read only with
flag_branch_probabilities.