* config/cpu: Atomicity cleanups.
* config/cpu/alpha/bits: New directory.
* config/cpu/arm/bits: New directory.
* config/cpu/generic/bits: New directory.
* config/cpu/i386/bits: New directory.
* config/cpu/powerpc/bits: New directory.
* config/cpu/sparc/sparc32/bits: New directory.
* config/cpu/sparc/sparc32/bits: New directory.
* config/cpu/*/bits: Move atomicity.h files to here.
* dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
is the primary DIE for a member function.
(gen_decl_die): Call set_decl_origin_self here.
* dwarfout.c (output_decl): And here.
* integrate.c (output_inline_function): Not here.
Don't clear DECL_INLINE until after calling rest_of_compilation.
(set_decl_origin_self): No longer static.
* tree.h: Add prototype.
* toplev.c (note_deferral_of_defined_inline_function): Only write
out abstract instance for actual inlines.
* cp/decl.c (finish_function): Don't play games with DECL_INLINE.
aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires INCLUDES to search and does not provide any of its own.
* aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
INCLUDES to search and does not provide any of its own. Also it
now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
parameters. Also it does not call AC_DEFINE.
(gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls
AC_DEFINE and provides for automatic entries for autoheader.
(gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
* configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
so we can pass -I flags and include gansidecl.h/system.h in this
test.
* acconfig.h: Delete all NEED_DECLARATION_* entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
* cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
flags, not CPP_OPEN_PAREN.
* cpplex.c (expand_token_space, init_token_list,
cpp_free_token_list): Put the dummy token at list->tokens[-1].
(_cpp_lex_line, _cpp_lex_file): token list is 0-based.
Richard Kenner [Tue, 25 Apr 2000 12:15:25 +0000 (12:15 +0000)]
stor-layout.c (finalize_record_size): Simplify to use existing functions.
* stor-layout.c (finalize_record_size): Simplify to use existing
functions.
(compute_record_mode): No longer static.
* tree.h (compute_record_mode): New declaration.
* parse.y (lookup_field_wrapper): Search for final local aliases.
(resolve_expression_name): Let lookup_field_wrapper search for
final local aliases. Force the value of `name' if one is found.
(qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
an expression name. Fixed comments.
aclocal.m4 (gcc_AC_HEADER_STRING, [...]): Use the three argument form of AC_DEFINE.
* aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
argument form of AC_DEFINE.
Robert Lipe [Mon, 24 Apr 2000 16:17:04 +0000 (16:17 +0000)]
Respective ChangeLogs for common, cp/, java/
Respective ChangeLogs for common, cp/, java/
* tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
* cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD.
* parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
Jan Hubicka [Mon, 24 Apr 2000 08:23:08 +0000 (08:23 +0000)]
loop.c (strength_reduce): Simplify test to INSN_P.
* loop.c (strength_reduce): Simplify test to INSN_P.
(record_giv): Attempt to simplify the add value, use CONSTANT_P
expressions instead of CONST_INT.
(express_from_1): Likewise.
Mark Mitchell [Mon, 24 Apr 2000 06:41:16 +0000 (06:41 +0000)]
cp-tree.h (lang_decl): Remove pretty_function_p.
* cp-tree.h (lang_decl): Remove pretty_function_p.
(DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the
language-specific node.
* decl.c (cp_make_fname_decl): Use build_decl, not
build_lang_decl, to build the variables.
(grokvardecl): Don't call build_lang_decl for local variables in
templates.
(grokdeclarator): Don't call build_lang_decl for local type
declarations in templates.
* lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated
zero'd memory, rather than calling memset.
* pt.c: Include hashtab.h.
(local_specializations): New variable.
(retrieve_local_specialization): Use it.
(register_local_specialization): Likewise.
(tsubst_decl): Don't assume local variables have
DECL_LANG_SPECIFIC.
(instantiate_decl): Set up local_specializations.
* Makefile.in (HTAB_H): New variable.
* cpphash.c (collect_objlike_expansion): Add sanity check.
(special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If
the buffer is the empty string, return. Mark __DATE__ and
__TIME__ as XCONST nodes, not MCONST.
(_cpp_macroexpand): Avoid pushing an empty buffer.
(funlike_macroexpand): Don't pop token_buffer here.
* config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
(REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
(REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
(REGNO_OK_FOR_BASE_P): Define in terms of them.
(REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
(REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
(REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
cpphash.h (struct definition): Move file, line, col members...
* cpphash.h (struct definition): Move file, line, col members...
(struct hashnode): ... here. Also add 'disabled' flag.
(enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
T_IDENTITY. Remove T_DISABLED.
Update prototypes.
* cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
(collect_expansion): Split into collect_objlike_expansion and
collect_funlike_expansion.
(_cpp_macroexpand): Split out scan_arguments, stringify, and
funlike_macroexpand.
(_cpp_compare_defs): Rename compare_defs, make static.
(_cpp_make_hashnode): Initialize hp->disabled.
(macro_cleanup): Adjust for new token types. Clear
m->disabled.
(_cpp_create_definition): Move code here to determine what
sort of macro it is, and code to check for redefinitions, from
do_define. Implement a few simple cases without creating a
full DEFINITION.
(_cpp_macroexpand, special_symbol, _cpp_dump_definition):
Handle the simple cases.
(push_macro_expansion): Set buf->has_escapes and hp->disabled
here.
* cppinit.c (builtin_array): Change MCONST to XCONST
everywhere.
* cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
fix check for disabled and function-like macros.
* cpplib.c (do_define): Move most logic to
_cpp_create_definition.
(do_undef): Handle new special token types.
cpphash.c (trad_stringify, add_pat): New functions.
* cpphash.c (trad_stringify, add_pat): New functions.
(collect_expansion): Restore support for -traditional syntax.
Use trad_stringify and add_pat.
(_cpp_macroexpand): Restore support for -traditional semantics.
* cpplex.c (_cpp_scan_line): Don't change space_before if we
get a COMMENT token.
(_cpp_lex_token): Provide COMMENT tokens to caller if
traditional and parsing_define_directive.
(skip_comment): Warn about // comments if -Wtraditional.
* cpplib.c (do_define): Fix typo. Create EMPTY nodes with
proper node type.
(do_undef): Don't warn about undefining EMPTY nodes.
predict.c (estimate_probability): Examine both sides of a branch for no exits.
* predict.c (estimate_probability): Examine both sides of
a branch for no exits. Use 90% not 50% for predict taken.
Reorg for one copy of note generation code.
Thu Apr 20 17:41:28 2000 Mo DeJong <mdejong@cygnus.com>
* parse.h (INTERFACE_INNER_MODIFIERS): New macro.
* parse.y (check_class_interface_creation): Fixed comments. Select
permitted modifiers for (inner) interfaces. Changed error message
to report rejected modifiers used with local classes.
* parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
of directly inherited type considered in scope.
* parse.y (do_resolve_class): Search inherited classes for inner
classes.
(This fixes the PR #194 and #197:
http://sourceware.cygnus.com/ml/java-prs/2000-q2/msg00008.html
http://sourceware.cygnus.com/ml/java-prs/2000-q2/msg00011.html)