Joseph Myers [Sat, 11 Sep 2004 22:15:14 +0000 (23:15 +0100)]
c-tree.h (enum c_storage_class): New.
* c-tree.h (enum c_storage_class): New.
(struct c_declspecs): Add storage_class, inline_p and thread_p.
* c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
declarations and "auto" or "register" in file scope empty
declarations. Give more specific warnings for other cases of
storage class specifiers in empty declarations.
(grokdeclarator): Update for new structures. Don't check for
multiple storage classes. Diagnose file-scope "register" if
pedantic.
(build_null_declspecs): Update.
(declspecs_add_scspec): Update. Diagnose multiple storage class
specifiers and invalid uses of "__thread".
Joseph Myers [Sat, 11 Sep 2004 21:29:42 +0000 (22:29 +0100)]
c-tree.h (enum c_storage_class): New.
* c-tree.h (enum c_storage_class): New.
(struct c_declspecs): Add storage_class, inline_p and thread_p.
* c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
declarations and "auto" or "register" in file scope empty
declarations. Give more specific warnings for other cases of
storage class specifiers in empty declarations.
(grokdeclarator): Update for new structures. Don't check for
multiple storage classes. Diagnose file-scope "register" if
pedantic.
(build_null_declspecs): Update.
(declspecs_add_scspec): Update. Diagnose multiple storage class
specifiers and invalid uses of "__thread".
tree.c (tree_code_size): New function, bulk of code from tree_size.
* tree.c (tree_code_size): New function, bulk of code from tree_size.
(tree_size, make_node): Use it.
* tree-ssa-pre.c (init_pre): Use it.
* tree.h: Prototype it.
* tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
* tree-dfa.c (compute_immediate_uses, add_immediate_use,
redirect_immediate_use): Use PHI_DF.
* tree-flow-inline.h (stmt_ann): Abort on phi nodes.
(bb_for_stmt): Use PHI_BB.
(get_immediate_uses): Use PHI_DF.
* tree-ssa-dse.c (max_stmt_uid): New variable.
(get_stmt_uid): New function.
(dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
node annotations.
* tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
(max_uid): Renamed to max_stmt_uid.
(get_stmt_uid): New function.
(maybe_queue_var, single_reachable_address, determine_lsm): Do not use
phi node annotations.
* tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
* tree.h (PHI_BB, PHI_DF): New accessor functions.
(struct tree_phi_node): Add bb and df fields.
Jan Hubicka [Sat, 11 Sep 2004 19:50:21 +0000 (21:50 +0200)]
profile.c (BB_TO_GCOV_INDEX): move more to the front.
* profile.c (BB_TO_GCOV_INDEX): move more to the front.
(output_location): Break out from ....
(branch_prob): ... here; handle gcov output on trees.
* toplev.c (process_options): No longer be sorry about coverage for
trees.
Steven Bosscher [Sat, 11 Sep 2004 19:48:58 +0000 (19:48 +0000)]
re PR c++/17412 (tree check failure in fold-const)
PR c++/17412
* fold-const.c (fold): Do not try to fold the operand of a
CLEANUP_POINT_EXPR if that operand does itself not have any
operands.
testsuite/
* g++.dg/parse/break-in-for.C: New test.
PR middle-end/17417
* langhooks.c (lhd_decl_printable_name): Make sure that this
function is called with is a decl node that has an identifier.
* tree-pretty-print.c (dump_function_name): New function to
wrap PRINT_FUNCTION_NAME and dump_decl_name.
(print_call_name): Use it.
re PR libgcj/14751 ([win32] thread creation leaks system handle resources)
PR libgcj/14751
* win32-threads.cc (_Jv_ThreadInitData): Zero out thread
handle in newly-allocated _Jv_Thread_t.
(_Jv_ThreadDestroyData): Close thread handle.
(_Jv_ThreadStart): Remove obsolete comment.
Store handle of newly-created thread in _Jv_Thread_t.
* include/win32-threads.h: #define WIN32_LEAN_AND_MEAN
before including <windows.h>
#define _Jv_HaveCondDestroy
James E Wilson [Sat, 11 Sep 2004 01:49:40 +0000 (01:49 +0000)]
Add CONST1_RTX (vector mode) support.
* emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
Add integer argument named constant. Use const_tiny_rtx instead of
CONST0_RTX.
(gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
and CONST1_RTX.
(init_emit_once): Fix users of gen_const_vector. Set CONST1_RTX for
vector types.
* expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
of gen_rtx_raw_CONST_VECTOR.
* c-tree.h (struct c_declspecs): Remove typedef_decl. Add
typedef_p and typedef_signed_p.
* c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
(grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
Check typedef_p and typedef_signed_p, not typedef_decl.
(grokfield): Check typedef_p, not typedef_decl.
(build_null_declspecs): Initialize typedef_p and typedef_signed_p,
not typedef_decl.
(declspecs_add_type): Set typedef_p and typedef_signed_p, not
typedef_decl.
re PR c++/17386 (libstdc++ iostreams miscompilation)
PR c++/17386
* call.c (build_vfield_ref): Move...
* class.c (build_vfield_ref): ... here. Convert datum to the
primary base containing the vptr.
(make_new_vtable): Simplify build_primary_vtable arguments.
(finish_struct_1): Do not duplicate TYPE_VFIELD.
* typeck.c (build_class_member_access_expr): Don't warn for
null object access to base fields.
* config/darwin.c: Include target.h.
(struct machopic_indirection): Make ptr_name a string.
(machopic_indirection_hash): Update for ptr_name a string.
(machopic_indirection_eq): Likewise.
(machopic_indirection_name): Likewise.
(machopic_output_indirection): Likewise.
(machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
string. Don't expect stub names to be in the identifier hash table.
Do call strip_name_encoding before looking up entry in ID hash table.
* config/t-darwin (darwin.o): Add target.h to dependencies.
Diego Novillo [Fri, 10 Sep 2004 16:52:45 +0000 (16:52 +0000)]
Revert
2004-09-08 Jie Zhang <zhangjie@magima.com.cn>
* tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
memory tag is call clobbered, so are its aliases.
(group_aliases): When two memory tags being grouped, if one is
call clobbered, so are the other and its aliases.
(add_may_alias): Remove call-clobbering stuff.
(replace_may_alias): Likewise.
(merge_pointed_to_info): Merge pt_global_mem
* config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
(maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
pair. Remove match_dup from inputs. Remove masaccs handling.
(mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
(masaccs, mdasaccs): Turn into define_insns.
Michael Koch [Fri, 10 Sep 2004 11:06:38 +0000 (11:06 +0000)]
[multiple changes]
2004-09-10 Dalibor Topic <robilad@kaffe.org>
* gnu/java/net/protocol/file/Connection.java (permission): New field.
(DEFAULT_PERMISSION): New constant.
(Connection): Create a FilePermission with permission to read file.
2004-09-10 Michael Koch <konqueror@gmx.de>
* gnu/java/net/protocol/file/Connection.java
(getLastModified): Moved around.
(getPermission): Return stored permission.
James E Wilson [Fri, 10 Sep 2004 03:51:40 +0000 (03:51 +0000)]
Fix ICE on invalid input, and eliminate confusing error message.
* c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
before calling vector_types_convertible_p.
(digest_init): Check that inside_init has VECTOR_TYPE before calling
vector_types_convertible_p. Don't give another error if
convert_for_assignment returns error_mark_node.
Roger Sayle [Fri, 10 Sep 2004 02:39:18 +0000 (02:39 +0000)]
re PR middle-end/17055 (ICE while folding int/float vectors)
PR middle-end/17055
* fold-const.c (build_zero_vector): New function to construct a
vector (either floating point or integer) of zeros.
(fold_convert): Internally, enable conversions of integer zero
to arbitrary vector types, using the new build_zero_vector.
Roger Sayle [Fri, 10 Sep 2004 02:32:19 +0000 (02:32 +0000)]
i386.c (ix86_expand_ashlsi3_const): New function to expand a left shift by an immediate constant as either an ashl...
* config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
expand a left shift by an immediate constant as either an ashl or
a sequence of additions.
(ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
instead of calling gen_ashlsi3 with a constant directly.
Roger Sayle [Fri, 10 Sep 2004 02:29:57 +0000 (02:29 +0000)]
i386.c (ix86_split_long_move): When optimizing for size...
* config/i386/i386.c (ix86_split_long_move): When optimizing for
size, and the low and high parts of a DImode constant are equal,
copy one register to another instead of loading the same immediate
value twice.
Ziemowit Laski [Thu, 9 Sep 2004 22:53:51 +0000 (22:53 +0000)]
Make-lang.in (cp/typeck.o): Depend on c-common.h.
[gcc/cp/ChangeLog]
2004-09-09 Ziemowit Laski <zlaski@apple.com>
* Make-lang.in (cp/typeck.o): Depend on c-common.h.
* typeck.c: Include c-common.h.
(comptypes): For RECORD_TYPEs, call objc_comptypes() and
return the result if nonnegative.
genattrtab.c (write_insn_cases): New function, split out from write_attr_case.
* genattrtab.c (write_insn_cases): New function, split out from
write_attr_case. Correctly handle define_peepholes when printing
the instruction name.
(write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_ prefixes throughout.
2004-09-09 Matt Austern <austern@apple.com>
Zack Weinberg <zack@codesourcery.com>
* include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
prefixes throughout. Add entry for PRAGMA. Remove
unnecessary "= 0" from EQ.
(enum cpp_ttype): Adjust OP and TK definitions to restore
prefixes, via token-paste.
(CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
Change from #defines to additional cpp_ttype enumerators.
(struct cpp_options): Add defer_pragmas.
(cpp_handle_deferred_pragma): Prototype new interface.
* internal.h (struct cpp_reader): Add directive_result.
* directives.c (struct pragma_entry): Add is_internal field;
give boolean fields type bool.
(start_directive): Initialize pfile->directive_result.type.
(_cpp_do__Pragma): Likewise.
(run_directive): Do not crash if pfile->buffer->prev is NULL.
(insert_pragma_entry): Add 'internal' argument; set new->is_internal
from it.
(register_pragma): New static function, bulk of former
cpp_register_pragma here; add 'internal' argument, pass along
to insert_pragma_entry.
(cpp_register_pragma): Now a wrapper around register_pragma which
always passes false for 'internal' argument.
(_cpp_init_internal_pragmas): Call register_pragma directly, passing
true for 'internal'.
(do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
an internal pragma, save text till the end of the line as a CPP_PRAGMA
token instead of executing the pragma.
(cpp_handle_deferred_pragma): New interface.
* lex.c (token_spellings): Adjust OP and TK definitions to
match changes to cpplib.h.
(_cpp_lex_token): Check for a directive-result token and
return it if present.
(cpp_token_val_index): Handle CPP_PRAGMA.
* macro.c (cpp_builtin_macro_text): Correct comment.
(builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
PR c/17322
* c-typeck.c (valid_compound_expr_initializer): Use only
initializer_constant_valid_p, and not TREE_CONSTANT.
(digest_init): Likewise.
(output_init_element): Likewise.