Per Bothner [Wed, 30 Jun 2004 18:11:14 +0000 (11:11 -0700)]
Conditionally compile support for --enable-mapped_location.
* tree-mudflap.c (mf_file_function_line_tree): Take a location_t
rather than a pointer to one. Use expand_location.
(mf_varname_tree): Use expand_location.
* tree-dump.c: Use expand_location on DECL_SOURCE_LOCATION.
* coverage.c: Likewise.
* print-tree.c: Likewise.
* c-aux-info.c (gen_aux_info_record): Likewise.
* c-parse.in: Use SET_EXPR_LOCATION macro.
* gimple-low.c: Likewise.
* tree-mudflap.c: Likewise.
* gimplify.c: Likewise. Also use EXPR_LOCATION and EXPR_HAS_LOCATION.
* c-ppoutput.c: Use new source_location typedef instead of fileline.
* c-semantics.c: Use new macros.
* c-typeck.c: Likewise.
Per Bothner [Wed, 30 Jun 2004 18:05:07 +0000 (11:05 -0700)]
Conditionally compile support for --enable-mapped_location.
* basic-block.h (struct edge_def): Use new source_locus typedef.
* c-common.c (fname_decl): Update save/clear/store of input_location.
(c_do_switch_warnings): Update for USE_MAPPED_LOCATION case.
* c-decl.c: Likewise.
* c-dump.c (dump_stmt): Likewise.
* c-gimplify.c (c-gimplify.c): Generalize using SET_EXPR_LOCATION.
* c-lex.c (cb_line_change): If USE_MAPPED_LOCATION use token's src_loc
to set input_location direction, rather than using linemap_lookup.
(fe_file_change, cb_def_pragma): Again use source_location directly.
* c-opts.c (saved_lineno): Remove static variable.
(c_common_post_options, c_common_init): Don't bothner to save,
clear and restore input_Location - now handled by lang_dependent_init.
* function.c (init_function_start): Use new DECL_IS_BUILTIN macro.
* xcoffout.c (xcoff_assign_fundamental_type_number): Likewise.
Per Bothner [Wed, 30 Jun 2004 17:58:21 +0000 (10:58 -0700)]
Conditionally compile support for --enable-mapped_location.
* input.h: #include line-map.h for source_location typedef.
(BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location,
LOCATION_FILE, LOCATION_LINE): New macros and functions.
(expanded_location, source_locus): New typedefs.
(push_srcloc): Change parameter list if USE_MAPPED_LOCATION.
* rtl.def (NOTE, ASM_OPERANDS): Modify specifcation, if
USE_MAPPED_LOCATION.
* rtl.h (NOTE_DELETED_LABEL_NAME): New macro.
(NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED):
New conditional macros.
(ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE): Replace
by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION.
* tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION,
EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO,
DECL_IS_BUILTIN): New macros, most depending on USE_MAPPED__LOCATION.
(tree_exp): Change type of locus to use new source_locus typedef.
* tree.c (build1_stat): Use SET_EXPR_LOCATION.
(annotate_with_locus, annotate_with_file_line): Conditionalize.
(expand_location): New function.
* toplev.c (unknown_location): New static, when USE_MAPPED_LOCATION.
(push_srcloc, pop_loc): Adjust parameter handling.
(process_options): Don't set input_filename by itself.
(lang_dependent_init): Save, set input_location to <built-in>.
(warn_deprecated_use): Use expand_location.
Roger Sayle [Wed, 30 Jun 2004 13:02:36 +0000 (13:02 +0000)]
combine.c: Include "output.h" to define dump_file.
* combine.c: Include "output.h" to define dump_file.
(uid_insn_cost, last_insn_cost): New global variables.
(combine_insn_cost): New function to estimate cost of an insn.
(combine_validate_cost): New function to determine whether a
try_combine replacement sequence is cheaper than the original.
(combine_instructions): Allocate and populate uid_insn_cost
array at the start of the combine pass, and deallocate it after.
(try_combine): Check combine_validate_cost to determine whether
a "recombination" should be rejected as being more expensive.
* Makefile.in (combine.o): Add dependency upon output.h.
Tobias Schlüter [Wed, 30 Jun 2004 12:48:51 +0000 (14:48 +0200)]
re PR fortran/16161 ([gfortran] IMPLICIT CHARACTER not implemented)
fortran/
PR fortran/16161
* decl.c (gfc_match_type_spec): Rename second argument to
'implicit_flag', reverse meaning. Don't match_char_spec if
'implicit_flag' is set. Rename to ...
(match_type_spec): ... this.
(gfc_match_implicit_none, match_implicit_range): Move here
from match.c.
(gfc_match_implicit): Move here from match.c, try to
match_char_len if match_implicit_range doesn't succeed for
CHARACTER implicits. Call renamed fucntion match_type_spec.
(gfc_match_data_decl, match_prefix): Call renamed function
match_type_spec.
* match.c (gfc_match_implicit_none, match_implicit_range,
gfc_match_implicit): Move to decl.c.
* match.h (gfc_match_implicit_none, gfc_match_implicit):
Move protoypes to section 'decl.c'.
(gfc_match_type_spec): Remove prototype.
testsuite/
PR fortran/16161
* gfortran.fortran-torture/compile/implicit.f90: Add test
for implicit character.
Eric Botcazou [Wed, 30 Jun 2004 10:31:30 +0000 (12:31 +0200)]
RTL prologue/epilogue for SPARC
RTL prologue/epilogue for SPARC
* config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete.
(sparc_skip_caller_unimp): Likewise.
(load_pic_register): Likewise.
(leaf_return_peephole_ok): Likewise.
(compute_frame_size): Rename into sparc_compute_frame_size.
(sparc_expand_prologue): New prototype.
(sparc_expand_epilogue): Likewise.
(output_return): Likewise.
(eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
* config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to
compute_frame_size. Move comment up.
(DELAY_SLOTS_FOR_EPILOGUE): Delete.
(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
(EPILOGUE_USES): Return true for %g1 if the function uses EH return.
* config/sparc/sparc.md (UNSPECV_SAVEW): New constant.
(type attribute): Add 'return' and 'savew'.
(eligible_for_return_delay): New attribute.
(return): New delay_slot.
(sibcall_epilogue): Call sparc_expand_epilogue.
(prologue): Likewise. Move up.
(save_register_window): New expander.
(save_register_windowsi): New pattern.
(save_register_windowdi): Likewise.
(epilogue): New expander.
(return_internal): New pattern.
(Return peepholes): Delete.
* config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro.
(sparc_emitting_epilogue): Delete.
(sparc_skip_caller_unimp): Likewise.
(sparc_sr_alias_set): New global variable.
(frame_base_name): Delete.
(frame_base_reg): New global variable.
(sparc_override_options): Get new alias set for save/restore.
(leaf_return_peephole_ok): Delete.
(eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
Factor out code into eligible_for_restore_insn_delay.
(eligible_for_restore_insn_delay): New function extraced from above.
Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE.
(eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P.
Factor out code into eligible_for_restore_insn_delay.
(load_pic_register): Make static. Remove check.
(save_regs): Delete.
(restore_regs): Likewise.
(compute_frame_size): Rename into sparc_compute_frame_size.
Rename leaf_function into leaf_function_p.
(build_big_number): Delete.
(save_or_restore_regs): New function.
(emit_save_regs): Likewise.
(emit_restore_regs): Likewise.
(emit_stack_pointer_increment ): Likewise.
(emit_stack_pointer_decrement): Likewise.
(sparc_expand_prologue): Likewise.
(sparc_function_prologue): Rename into sparc_asm_function_prologue.
Remove all code to emit instructions.
(sparc_expand_epilogue): New function.
(sparc_function_epilogue): Rename into sparc_asm_function_epilogue.
Remove all code to emit instructions.
(output_restore): New function.
(output_return): Likewise.
(output_sibcall): Factor out code into output_restore.
(print_operand): Adjust for frame_base_reg.
* target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'.
* target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define.
(TARGET_INITIALIZER): Add it.
* passes.c (rest_of_compilation): Set the conditional predicate
'current_function_uses_only_leaf_regs' before sched2. If target
has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right
before sched2.
* reorg.c (return_insn_p): New predicate.
(find_end_label): Use it.
(relax_delay_slots): Do not thread an unconditional jump that points
to the end return label.
* doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity
domain of 'current_function_uses_only_leaf_regs'.
(Stack and Calling) <Function Entry>: Document new target hook
TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
Jakub Jelinek [Wed, 30 Jun 2004 10:09:55 +0000 (12:09 +0200)]
re PR tree-optimization/15310 ([tree-ssa] Optimize an addition in a bit field)
* simplify-rtx.c (simplify_binary_operation): Simplify
((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and
N has at least all bits in M set as well.
PR tree-optimization/15310
* expr.c (expand_assignment): Optimize += or -= on a bit field in
most significant bits.
Paolo Carlini [Wed, 30 Jun 2004 09:20:18 +0000 (09:20 +0000)]
[multiple changes]
2004-06-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
Paolo Carlini <pcarlini@suse.de>
* include/bits/cpp_type_traits.h: Add __is_pointer and
__is_trivially_copyable.
* include/bits/stl_algobase.h (fill, fill_n): Slightly
tweak to use the latter.
(__copy_backward_dispatch): Remove.
(__copy_backward_aux): Rewrite to use __is_pointer and
__is_trivially_copyable and __copy_backward::copy_b.
(__copy_backward): Rewrite as a class template and two
specializations.
* jni.cc (_Jv_JNI_NewGlobalRef, JNICALL _Jv_JNI_DeleteGlobalRef,
etc etc): Remove needless parenthesis, which causes __stdcall__
attribute on MinGW to get ignored.
Tobias Schlüter [Tue, 29 Jun 2004 18:57:25 +0000 (20:57 +0200)]
Andrew Vaught <andyv@firstinter.net>
2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
Andrew Vaught <andyv@firstinter.net>
PR fortran/13249
PR fortran/15481
* declc (gfc_match_save): Adapt to new common structures,
don't allow saving USE-associated common.
* dump-parse-tree (gfc_show_attr): (saved_)common are not
symbol attributes any longer.
(gfc_show_symbol): Don't show old-style commons any longer.
(gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
interface.
* gfortran.h (symbol_attribute): Remove common and saved_common
attributes.
(gfc_symbol): Remove common_head element.
(gfc_common_head): New struct.
(gfc_get_common_head): New macro.
(gfc_symtree): Add field 'common' to union.
(gfc_namespace): Add field 'common_root'; change type of field
'blank_common' to blank_common.
(gfc_add_data): New prototype.
(gfc_traverse_symtree): Expect a symtree as first argument
instead of namespace.
* match.c (gfc_get_common): New function.
(match_common_name): Change to take char * as argument, adapt,
fix bug with empty name.
(gfc_match_common): Adapt to new data structures. Disallow
redeclaration of USE-associated COMMON-block. Fix bug with
empty common.
(var_element): Adapt to new common structures.
* match.h (gfc_get_common): Declare.
* module.c: Add 2004 to copyright years, add commons to module
file layout description.
(ab_attribute, attr_bits, mio_symbol_attributes): Remove code
for removed attributes.
(mio_symbol): Adapt to new way of storing common relations.
(load_commons): New function.
(read_module): Skip common list on first pass, load_commons at
second.
(write_commons): New function.
(write_module): Call write_commons().
* symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
functions related to removed attributes.
(gfc_add_data): New function.
(gfc_clear_attr): Don't set removed attributes.
(gfc_copy_attr): Don't copy removed attributes.
(traverse_symtree): Remove.
(gfc_traverse_symtree): Don't traverse symbol
tree of the passed namespace, but require a symtree to be passed
instead. Unify with traverse_symtree.
(gfc_traverse_ns): Call gfc_traverse_symtree according to new
interface.
(save_symbol): Remove setting of removed attribute.
* trans-common.c (gfc_sym_mangled_common_id): Change to
take 'char *' argument instead of 'gfc_symbol'.
(build_common_decl, new_segment, translate_common): Adapt to new
data structures, add new
argument name.
(create_common): Adapt to new data structures, add new
argument name. Fix typo in intialization of derived types.
(finish_equivalences): Add second argument in call to
create_common.
(named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
(gfc_trans_common): Adapt to new data structures.
* trans-decl.c (gfc_create_module_variables): Also output
symbols from commons.
Co-Authored-By: Andrew Vaught <andyv@firstinter.net>
From-SVN: r83871
Tobias Schlüter [Tue, 29 Jun 2004 18:01:04 +0000 (20:01 +0200)]
Andrew Vaught <andyv@firstinter.net>
2004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
Andrew Vaught <andyv@firstinter.net>
* gfortran.h (gfc_gsymbol): New typedef.
(gfc_gsym_root): New variable.
(gfc_get_gsymbol, gfc_find_gsym): New prototypes.
* parse.c (global_used): New function.
(parse_block_data): Check for double empty BLOCK DATA,
use global symbol table.
(parse_module): Use global symbol table.
(add_global_procedure, add_global_program): New functions.
(gfc_parse_file): Use global symbol table.
* symbol.c (gfc_gsym_root): New variable.
(gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
functions.
Co-Authored-By: Andrew Vaught <andyv@firstinter.net>
From-SVN: r83868
Bryce McKinlay [Tue, 29 Jun 2004 17:58:44 +0000 (17:58 +0000)]
re PR java/1262 (Method with default access can be overridden in another package)
PR java/1262
* class.c (layout_class_method): Do not override package-private
method if its in a different package.
(split_qualified_name): Move here from parse.y. Rename from
breakdown_qualified. Add comment.
(in_same_package): Move here from parse.y. Add comment.
* java-tree.h (break_down_qualified, in_same_package): Declare.
(in_same_package): Likewise.
* parse.y (breakdown_qualified, in_same_package): Moved to class.c.
Callers updated.
Joern Rennecke [Tue, 29 Jun 2004 17:37:13 +0000 (18:37 +0100)]
Fix gcc.dg/builtin-apply2.c failures:
* sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
* sh.c (extra_push): Delete.
(sh_expand_prologue): Don't do extra stack adjustment for
current_function_pretend_args_size if it comes from varargs setup.
Use TARGET_VARARGS_PRETEND_ARGS. Don't set extra_push.
(sh_expand_epilogue): Don't use extra_push.
(sh_setup_incoming_varargs): Set pretend_arg_size when necessary.
Joern Rennecke [Tue, 29 Jun 2004 17:37:06 +0000 (18:37 +0100)]
Fix gcc.dg/builtin-apply2.c failures:
* sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
* sh.c (extra_push): Delete.
(sh_expand_prologue): Don't do extra stack adjustment for
current_function_pretend_args_size if it comes from varargs setup.
Use TARGET_VARARGS_PRETEND_ARGS. Don't set extra_push.
(sh_expand_epilogue): Don't use extra_push.
(sh_setup_incoming_varargs): Set pretend_arg_size when necessary.
Roger Sayle [Tue, 29 Jun 2004 17:13:08 +0000 (17:13 +0000)]
expmed.c (expand_smod_pow2): Provide alternate implementations that avoid conditional jumps...
* expmed.c (expand_smod_pow2): Provide alternate implementations
that avoid conditional jumps, and choose between them based upon
the target's rtx_costs.
Andrew Haley [Tue, 29 Jun 2004 16:18:46 +0000 (16:18 +0000)]
except.c (expand_start_java_handler): Push a new binding level.
2004-06-29 Andrew Haley <aph@redhat.com>
* except.c (expand_start_java_handler): Push a new binding level.
Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
register_exception_range() to register where we'll do it.
(expand_end_java_handler): Remove old bogus code. Replace with
new logic that simply builds TRY_CATCH_EXPRs and inserts them at
the top of the expression we're curently building.
(maybe_end_try): Delete.
* decl.c (binding_level.exception_range): New field.
(clear_binding_level): Add field exception_range. Reformat.
(poplevel): Call expand_end_java_handler().
(poplevel): Call java_add_stmt only if functionbody is false.
(maybe_poplevels): Don't call maybe_end_try() from here.
(end_java_method): Clear no longer used trees in function decl.
(register_exception_range): New function.
* java-tree.h (register_exception_range, struct eh_range): Declare.
gcc/
* target-def.h (TARGET_CXX_GET_COOKIE_SIZE,
TARGET_CXX_COOKIE_HAS_SIZE): Define.
(TARGET_CXX): Use them.
* target.h (struct gcc_target): Add cxx.get_cookie_size and
cxx.cookie_has_size.
* targhooks.c (default_cxx_get_cookie_size): New fucntion.
* targhooks.h (default_cxx_get_cookie_size): Add prototype.
* config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE,
TARGET_CXX_COOKIE_HAS_SIZE): Define.
(arm_get_cookie_size, arm_cookie_has_size): New functions.
* Make-lang.in (cp/init.o): Add dependency on $(TARGET_H).
* doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and
TARGET_CXX_COOKIE_HAS_SIZE.
gcc/cp/
* init.c: Include target.h.
(get_cookie_size): Remove and replace with target hook.
Update callers.
(build_new_1): Store the element size in the cookie.
libstdc++-v3/
* libsupc++/vec.cc (__cxa_vec_new2, __cxa_vec_new3): Store the
element size in the cookie.
testsuite/
* g++.old-deja/g++.abi/arraynew.C: Handle ARM EABI cookies.
* g++.old-deja/g++.abi/cxa_vec.C: Allocate larger cookies for AEABI.
Richard Kenner [Mon, 28 Jun 2004 21:37:16 +0000 (21:37 +0000)]
decl.c: Remove calls to add_decl_expr...
* decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
and rest_of_type_compilation; add arg to create_*_decl.
(annotate_decl_with_node): Deleted.
(gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
* gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
(get_current_block_context, gnat_pushdecl): New declarations.
(gnat_init_stmt_group): Likewise.
(create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
* misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
(LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
(gnat_init): Call gnat_init_stmt_group.
* trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
(gnu_pending_elaboration_list): Deleted.
(mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
(gigi): Rearrange initialization calls and move some to last above.
(gnat_to_gnu): If statement and not in procedure, go into elab proc.
Delete calls to add_decl_expr; add arg to create_*_decl.
(gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
(gnat_to_gnu, case N_Subprogram_Body): Move some code to
begin_subprog_body and call it.
Don't push and pop ggc context.
(gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
(add_stmt): Remove handling of DECL_EXPR from here.
If not in function, mark visited.
(add_decl_expr): Put global at top level.
Check for cases of DECL_INITIAL we have to handle here.
(process_type): Add extra arg to create_type_decl.
(build_unit_elab): Rework to just gimplify.
* utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
(block_has_vars, mark_visited, add_pending_elaborations): Likewise.
(get_pending_elaborations, pending_elaborations_p): Likewise.
(push_pending_elaborations, pop_pending_elaborations): Likewise.
(get_elaboration_location, insert_elaboration_list): Likewise.
(gnat_binding_level): Renamed from ada_binding_level.
(init_gnat_to_gnu): Don't clear pending_elaborations.
(global_bindings_p): Treat as global if no current_binding_level.
(set_current_block_context): New function.
(gnat_pushdecl): Renamed from pushdecl; major rework.
All callers changed.
(create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
(finish_record_type): Call call pushdecl for stub decl.
(function_nesting_depth): Deleted.
(begin_subprog_body): Delete obsolete code.
* utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
Roger Sayle [Mon, 28 Jun 2004 20:49:37 +0000 (20:49 +0000)]
expmed.c (expand_smod_pow2): New function to expand signed remainder by a constant power of 2, such as "x % 16".
* expmed.c (expand_smod_pow2): New function to expand signed
remainder by a constant power of 2, such as "x % 16".
(expand_divmod): Call new expand_smod_pow2 when appropriate.
Minor corrections to comments, e.g. wrapping long lines.
Benjamin Kosnik [Mon, 28 Jun 2004 18:31:18 +0000 (18:31 +0000)]
safe_base.h (__gnu_debug::_Safe_sequence_base): Revert -Weffc++ changes that defined copy ctory and or assignment operator.
2004-06-28 Benjamin Kosnik <bkoz@redhat.com>
* include/debug/safe_base.h (__gnu_debug::_Safe_sequence_base):
Revert -Weffc++ changes that defined copy ctory and or assignment
operator.
* libsupc++/tinfo.cc (__upcast_result): Same.
libiberty:
* cp-demangle.h: Declare cplus_demangle_operators,
cplus_demangle_builtin_types, cplus_demangle_mangled_name, and
cplus_demangle_type as static if IN_GLIBCPP_V3.
libobjc:
* encoding.c: Rename target_flags with a #define to avoid
conflict with a prior declaration.
* exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
deal with problem of inefficient slices on machines with strict
alignment, when the slice is a component of a composite.
* checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
machines, we need the check there as well.
2004-06-28 Ed Schonberg <schonberg@gnat.com>
* exp_ch5.adb (Expand_Assign_Array): Use correct condition to
determine safe copying direction for overlapping slice assignments
when component is controlled.
* sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
formal derived type in the actual for a formal package are visible in
the enclosing instance.
2004-06-28 Ed Schonberg <schonberg@gnat.com>
PR ada/15600
* sem_util.adb (Trace_Components): Diagnose properly an illegal
circularity involving a private type whose completion includes a
self-referential component.
(Enter_Name): Use Is_Inherited_Operation to distinguish a source
renaming or an instantiation from an implicit derived operation.
2004-06-28 Pascal Obry <obry@gnat.com>
* mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
DLL.
(Library_File_Name_For): Idem.
2004-06-28 Matthew Gingell <gingell@gnat.com>
* g-traceb.ads: Add explanatory note on the format of addresses
expected by addr2line.
2004-06-28 Jerome Guitton <guitton@act-europe.fr>
* Makefile.in: Force debugging information on s-tasdeb.adb,
a-except.adb and s-assert.adb needed by the debugger.
2004-06-28 Vincent Celier <celier@gnat.com>
* make.adb (Collect_Arguments_And_Compile): Change Flag1 to
Need_To_Build_Lib.
(Gnatmake): Ditto.
* mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
* prj.adb: Minor reformatting
(Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
* prj.ads: Comment updates
Minor reformatting
(Project_Data): Change Flag1 to Need_To_Build_Lib.
Remove Flag2: not used.
* prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
declaration.
* gnat_ugn.texi: Put a "null;" declaration in one project file example
* makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
front of the linker options.
(Link_Foreign): Put the global archives and the libraries in front of
the linker options.
2004-06-28 Javier Miranda <miranda@gnat.com>
* rtsfind.adb: (Get_Unit_Name): Fix typo in comment
(RTU_Loaded): Code cleanup
(Set_RTU_Loaded): New procedure to register as *loaded* explicitly
withed predefined units.
* rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
explicitly withed predefined units.
Fix typo in comment
* sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
explicitly withed predefined units.
Richard Kenner [Mon, 28 Jun 2004 12:12:51 +0000 (12:12 +0000)]
tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers changed.
* tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
changed.
(is_sra_candidate_complex_ref): New function.
(scalarize_modify_expr): Call it and check for LHS also.
* tree-pretty-print.c (dump_function_declaration): New.
(dump_generic_node, case FUNCTION_TYPE): Call it.
(dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
(dump_generic_node, case DECL_EXPR): New case.
(dump_generic_node, case PLACEHOLDER_EXPR): Handle.
(print_declaration): Handle type and function declarations.