OSDN Git Service

pf3gnuchains/gcc-fork.git
18 years ago2006-02-17 Robert Dewar <dewar@adacore.com>
charlet [Fri, 17 Feb 2006 16:07:10 +0000 (16:07 +0000)]
2006-02-17  Robert Dewar  <dewar@adacore.com>

* g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
then we close To if it is valid.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111188 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-17 Ed Schonberg <schonberg@adacore.com>
charlet [Fri, 17 Feb 2006 16:06:57 +0000 (16:06 +0000)]
2006-02-17  Ed Schonberg  <schonberg@adacore.com>

* freeze.adb (Statically_Discriminated_Components): Return false if
the bounds of the type of the discriminant are not static expressions.

* sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
the bounds of the discriminant type are not static.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111187 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-17 Ed Schonberg <schonberg@adacore.com>
charlet [Fri, 17 Feb 2006 16:06:28 +0000 (16:06 +0000)]
2006-02-17  Ed Schonberg  <schonberg@adacore.com>

* exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
must be materialized when the renamed expression is an explicit
dereference.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111186 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-17 Javier Miranda <miranda@adacore.com>
charlet [Fri, 17 Feb 2006 16:06:16 +0000 (16:06 +0000)]
2006-02-17  Javier Miranda  <miranda@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
through an access to class-wide interface we force the displacement of
the pointer to the allocated object to reference the corresponding
secondary dispatch table.
(Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
if Long_Shifts are supported on the target, even if 64 bit divides
are not supported (configurable run time mode).
(Expand_N_Type_Conversion): Do validity check if validity checks on
operands are enabled.
(Expand_N_Qualified_Expression): Do validity check if validity checks
on operands are enabled.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111185 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-17 Jose Ruiz <ruiz@adacore.com>
charlet [Fri, 17 Feb 2006 16:06:01 +0000 (16:06 +0000)]
2006-02-17  Jose Ruiz  <ruiz@adacore.com>

* s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
Abort_Defer/Undefer pairs to avoid the possibility of a task being
aborted while owning a lock.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111184 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-17 Eric Botcazou <botcazou@adacore.com>
charlet [Fri, 17 Feb 2006 16:05:46 +0000 (16:05 +0000)]
2006-02-17  Eric Botcazou  <botcazou@adacore.com>

PR ada/26315

* utils2.c (find_common_type): If both input types are BLKmode and
have the same constant size, keep using the first one.

* bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.

* decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.

* misc.c (gnat_handle_option): New case for -Woverlength-strings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111183 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-17 Ed Schonberg <schonberg@adacore.com>
charlet [Fri, 17 Feb 2006 16:05:24 +0000 (16:05 +0000)]
2006-02-17  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
aggregate, check the interpretations of the other operand to find one
that may be a boolean array.
(Analyze_Selected_Component): Fix flow-of-control typo in case where
the prefix is a private extension.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111182 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-16 Andrew Haley <aph@redhat.com>
aph [Fri, 17 Feb 2006 13:01:40 +0000 (13:01 +0000)]
2006-02-16  Andrew Haley  <aph@redhat.com>

        * stacktrace.cc (GetStackTraceElements): Call
        gnu::gcj::runtime::NameFinder::removeUnknown() to determine if
        non-Java frames should be removed from a printed stack trace.
        Pass methodName to getLineNumberForFrame().
        (getLineNumberForFrame): Set method_name from info.dli_sname.
        * gnu/gcj/runtime/NameFinder.java (removeUnknown): New method.
        (remove_unknown): New variable.
        * include/java-stack.h (_Jv_StackTrace::getLineNumberForFrame):
        Add methodName arg.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111181 138bc75d-0d04-0410-961f-82ee72b054a4

18 years agogcc/fortran/
rsandifo [Fri, 17 Feb 2006 11:06:17 +0000 (11:06 +0000)]
gcc/fortran/
* trans-common.c: Include rtl.h earlier.
* trans-decl.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111178 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-17 Paolo Carlini <pcarlini@suse.de>
paolo [Fri, 17 Feb 2006 10:46:57 +0000 (10:46 +0000)]
2006-02-17  Paolo Carlini  <pcarlini@suse.de>
    Howard Hinnant  <hhinnant@apple.com>

PR libstdc++/26250
* include/bits/sstream.tcc (basic_stringbuf<>::overflow): Tweak
to leave epgtr() just past the new write position, as per the
relevant bits of 27.7.1.3/8 (not changed by DR 432).
* testsuite/27_io/basic_stringbuf/overflow/char/26250.cc: New.
* testsuite/27_io/basic_stringbuf/overflow/wchar_t/26250.cc: Same.

* docs/html/ext/howto.html: Add entries for DR 169 and DR 432.

* include/std/std_sstream.h (basic_stringbuf<>::_M_sync): Move out
of line...
* include/bits/sstream.tcc: ... here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111177 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * tree-vrp.c (set_value_range_to_nonnegative): New function.
law [Fri, 17 Feb 2006 04:15:32 +0000 (04:15 +0000)]
* tree-vrp.c (set_value_range_to_nonnegative): New function.
(vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
(ssa_name_nonzero_p): Likewise.
(get_value_range): Return NULL if VRP is not running.
(extract_range_from_expr): Fallback to tree_expr_XXX_p if
VRP routines do not discover a range.
(vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
* tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
* fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
(tree_expr_nonnegative_p): Similarly.
* tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
(restore_nonzero_vars_to_original_value): Remove.
(unsafe_associative_fp_binop): Remove.
(tree_ssa_dominator_optimize): Remove initialization and
finalization of nonzero_vars and nonzero_vars_stack.
(dom_opt_initialize_block): No longer push marker on
nonzero_vars_stack.
(dom_opt_finalize_block): No longer call
restore_nonzero_vars_to_original_value.
(record_equivalences_from_phis): No longer look for
nonzero PHI arguments.
(cprop_into_successor_phis): No longer propagate nonzero
property into PHI arguments.  Lose unused argument.  Caller
updated.
(record_equivalences_from_stmt): No longer record nonzero
values for SSA_NAMEs.
(lookup_avail_expr): No longer use nonzero_vars.

* gcc.dg/tree-ssa/vrp24.c: Update expected output.
* gcc.dg/tree-ssa/vrp26.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111175 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
law [Fri, 17 Feb 2006 00:18:03 +0000 (00:18 +0000)]
    * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
        for sizetype when sizetype is unsigned.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111170 138bc75d-0d04-0410-961f-82ee72b054a4

18 years agoDaily bump.
gccadmin [Fri, 17 Feb 2006 00:17:29 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111168 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com>
hjl [Fri, 17 Feb 2006 00:03:06 +0000 (00:03 +0000)]
2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>

PR rtl-optimization/25603
* reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
(regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
* reload1.c (choose_reload_regs): Added call of regno_clobbered_p
with new meaning of SETS.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111162 138bc75d-0d04-0410-961f-82ee72b054a4

18 years agogcc:
jsm28 [Thu, 16 Feb 2006 23:29:10 +0000 (23:29 +0000)]
gcc:
PR target/20353
PR target/24578
PR target/24837
* config/linux.opt: New file.
* config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
LINUX_DYNAMIC_LINKER): Define.
(TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
* config.gcc (*-*-linux*): Define extra_options.
(*-*-*uclibc*): Define UCLIBC_DEFAULT.
(arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
* config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
GLIBC_DYNAMIC_LINKER.
* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
(LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
* doc/invoke.texi (GNU/Linux Options): New section.

gcc/testsuite:
* gcc.dg/builtins-config.h (HAVE_C99_RUNTIME): Don't define if
__UCLIBC__ is defined.

libstdc++-v3:
PR libstdc++/14939
* config/os/uclibc/ctype_base.h, config/os/uclibc/ctype_inline.h,
config/os/uclibc/ctype_noninline.h, config/os/uclibc/os_defines.h:
New.
* acinclude.m4 (GLIBCXX_CONFIGURE): Test whether using uClibc.
* configure.host: Use os/uclibc for uClibc.
* crossconfig.m4 (*-linux*): Use link tests.  Don't hardcode
presence of math functions.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111160 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
andreast [Thu, 16 Feb 2006 22:29:01 +0000 (22:29 +0000)]
2006-02-16  Andreas Tobler  <a.tobler@schweiz.ch>

* testsuite/libffi.call/return_dbl.c: New test case.
* testsuite/libffi.call/return_dbl1.c: Likewise.
* testsuite/libffi.call/return_dbl2.c: Likewise.
* testsuite/libffi.call/return_fl.c: Likewise.
* testsuite/libffi.call/return_fl1.c: Likewise.
* testsuite/libffi.call/return_fl2.c: Likewise.
* testsuite/libffi.call/return_fl3.c: Likewise.
* testsuite/libffi.call/closure_fn6.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111156 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * env.c (__gnat_setenv): Use size_t.
ebotcazou [Thu, 16 Feb 2006 22:06:06 +0000 (22:06 +0000)]
* env.c (__gnat_setenv): Use size_t.
(__gnat_unsetenv): Likewise.
(__gnat_clearenv): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111155 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * config/sparc/sparc.md (setjmp): Rewrite.
ebotcazou [Thu, 16 Feb 2006 21:41:23 +0000 (21:41 +0000)]
* config/sparc/sparc.md (setjmp): Rewrite.
(setjmp_32): Delete.
(setjmp_64): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111154 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago PR fortran/26224
jakub [Thu, 16 Feb 2006 21:35:38 +0000 (21:35 +0000)]
PR fortran/26224
* parse.c (parse_omp_do, parse_omp_structured_block): Call
gfc_commit_symbols and gfc_warning_check.

* gfortran.dg/gomp/pr26224.f: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111153 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * openmp.c (resolve_omp_clauses): Add a dummy case label to workaround
jakub [Thu, 16 Feb 2006 21:31:20 +0000 (21:31 +0000)]
* openmp.c (resolve_omp_clauses): Add a dummy case label to workaround
PR middle-end/26316.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111152 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
andreast [Thu, 16 Feb 2006 21:03:16 +0000 (21:03 +0000)]
2006-02-16  Andreas Tobler  <a.tobler@schweiz.ch>

* testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
definition.
* testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
here to be used by other test cases too.

* testsuite/libffi.call/nested_struct10.c: New test case.
* testsuite/libffi.call/nested_struct9.c: Likewise.
* testsuite/libffi.call/nested_struct8.c: Likewise.
* testsuite/libffi.call/nested_struct7.c: Likewise.
* testsuite/libffi.call/nested_struct6.c: Likewise.
* testsuite/libffi.call/nested_struct5.c: Likewise.
* testsuite/libffi.call/nested_struct4.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111151 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-16 Daniel Berlin <dberlin@dberlin.org>
dberlin [Thu, 16 Feb 2006 20:29:19 +0000 (20:29 +0000)]
2006-02-16  Daniel Berlin <dberlin@dberlin.org>

* tree-ssa-operands.c (access_can_touch_variable): Fix typo in
 previous change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111148 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
rakdver [Thu, 16 Feb 2006 15:59:00 +0000 (15:59 +0000)]
* loop-invariant.c (invariant_for_use, check_dependencies): Fail for
read-write uses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111141 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago PR rtl-optimization/26296
rakdver [Thu, 16 Feb 2006 15:47:20 +0000 (15:47 +0000)]
PR rtl-optimization/26296
* Makefile.in (loop-invariant.c): Add except.h dependency.
* loop-invariant.c: Include except.h.
(find_invariant_insn): Ignore insns satisfying can_throw_internal.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111139 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2005-02-16 Paul Brook <paul@codesourcery.com>
pbrook [Thu, 16 Feb 2006 15:14:23 +0000 (15:14 +0000)]
2005-02-16  Paul Brook  <paul@codesourcery.com>

* reload1.c (emit_reload_insns): Invalidate dead input registers used
for reloads.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111137 138bc75d-0d04-0410-961f-82ee72b054a4

18 years agotestsuite/
victork [Thu, 16 Feb 2006 09:59:00 +0000 (09:59 +0000)]
testsuite/
2006-02-16  Victor Kaplansky  <victork@il.ibm.com>

PR tree-opt/25918
* lib/target-supports.exp
(check_effective_target_vect_short_mult): New.
(check_effective_target_vect_char_mult): New.
(check_effective_target_vect_widen_sum_qi_to_si): New.
(check_effective_target_vect_widen_sum_qi_to_hi): New.
(check_effective_target_vect_widen_sum_hi_to_si): New.
* gcc.dg/vect/vect-reduc-dot-s16.c: Remove, split into
vect-reduc-dot-s16a.c and vect-reduc-dot-s16b.c
* vect-reduc-dot-s16a.c: New, split from vect-reduc-dot-s16.c.
* vect-reduc-dot-s16b.c: New, split from vect-reduc-dot-s16.c.
* gcc.dg/vect/vect-reduc-pattern-2.c: Remove, split into
vect-reduc-pattern-2a.c, vect-reduc-pattern-2b.c and
vect-reduc-pattern-2c.c
* gcc.dg/vect/vect-reduc-pattern-1.c: Remove, split into
vect-reduc-pattern-1a.c, vect-reduc-pattern-1b.c and
vect-reduc-pattern-1c.c

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111135 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * MAINTAINERS (Write After Approval): Add myself.
victork [Thu, 16 Feb 2006 09:30:51 +0000 (09:30 +0000)]
    * MAINTAINERS (Write After Approval): Add myself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111134 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
charlet [Thu, 16 Feb 2006 08:54:12 +0000 (08:54 +0000)]
* opt.ads (Ada_Version_Default): Set to Ada 2005 by default.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111133 138bc75d-0d04-0410-961f-82ee72b054a4

18 years agoRemove test which is invalid Ada 2005.
charlet [Thu, 16 Feb 2006 08:48:59 +0000 (08:48 +0000)]
Remove test which is invalid Ada 2005.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111132 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago PR libfortran/24903
fxcoudert [Thu, 16 Feb 2006 07:52:22 +0000 (07:52 +0000)]
PR libfortran/24903
* m4/dotprodc.m4: Use __builtin_conj instead of assigning real
and imaginary parts separately.
* generated/dotprod_c4.c: Regenerated.
* generated/dotprod_c8.c: Regenerated.
* generated/dotprod_c10.c: Regenerated.
* generated/dotprod_c16.c: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111131 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2005-02-16 Paul Thomas <pault@gcc.gnu.org>
pault [Thu, 16 Feb 2006 07:04:13 +0000 (07:04 +0000)]
2005-02-16  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/24557
* trans-expr.c (gfc_add_interface_mapping): Use the actual argument
for character(*) arrays, rather than casting to the type and kind
parameters of the formal argument.

2005-02-16  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/24557
        * gfortran.dg/assumed_charlen_needed_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111130 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago PR rtl-optimization/25636
bernds [Thu, 16 Feb 2006 01:26:54 +0000 (01:26 +0000)]
PR rtl-optimization/25636
* local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
when deciding whether an insn is an initializing insn.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111129 138bc75d-0d04-0410-961f-82ee72b054a4

18 years agoDaily bump.
gccadmin [Thu, 16 Feb 2006 00:17:27 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111127 138bc75d-0d04-0410-961f-82ee72b054a4

18 years agoAdd a little whitespace
dberlin [Wed, 15 Feb 2006 22:47:38 +0000 (22:47 +0000)]
Add a little whitespace

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111121 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-15 Daniel Berlin <dberlin@dberlin.org>
dberlin [Wed, 15 Feb 2006 22:09:45 +0000 (22:09 +0000)]
2006-02-15 Daniel Berlin  <dberlin@dberlin.org>

* tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
(tree_code_size): Ditto.
* tree.h (struct tree_memory_tag): Remove parent_var.
(struct tree_struct_field_tag): New.
(SFT_OFFSET): New.
(SFT_SIZE): New.
(union tree_node): Add sft member.
* tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
specially here.
(create_sft): Add size and offset argument, set SFT_OFFSET and
SFT_SIZE.
(create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
* treestruct.def: Add TS_STRUCT_FIELD_TAG.
* tree-flow-inline.h (get_subvar_at): Update for
SFT_OFFSET/SFT_SIZE.
(var_can_have_subvars): Ditto.
(overlap_subvar): Ditto.
* print-tree.c (print_node): Print out interesting things for
SFT's.
* tree-flow.h (struct subvar): Remove offset and size members.
* tree-ssa-operands.c (get_expr_operands): Update for
get_indirect_ref_operands changes.
(get_indirect_ref_operands): Call add_virtual_operand instead of
add_stmt_operand.  Only recurse on base var if requested.
(access_can_touch_variable): New function.
(add_stmt_operand): Split virtual operand handling into ...
(add_virtual_operand): Here.  Add offset, size, and for_clobber
arguments.  Prune alias sets.
(add_call_clobber_ops): Call add_virtual_operand.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111120 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-15 Toon Moene <toon@moene.indiv.nluug.nl>
toon [Wed, 15 Feb 2006 21:06:58 +0000 (21:06 +0000)]
2006-02-15  Toon Moene  <toon@moene.indiv.nluug.nl>

PR fortran/26054
* fortran/options.c: Do not warn for Fortran 2003 features
by default.
* testsuite/gfortran.dg/enum_8.f90: Remove check for warning.
* testsuite/gfortran.dg/iomsg_1.f90: Ditto.
* testsuite/gfortran.dg/enum_1.f90: Ditto.
* testsuite/gfortran.dg/enum_9.f90: Ditto.
* testsuite/gfortran.dg/enum_2.f90: Ditto.
* testsuite/gfortran.dg/enum_10.f90: Ditto.
* testsuite/gfortran.dg/enum_3.f90: Ditto.
* testsuite/gfortran.dg/flush_1.f90: Ditto.
* testsuite/gfortran.dg/enum_4.f90: Ditto.
* testsuite/gfortran.dg/array_constructor_1.f90: Ditto.
* testsuite/gfortran.dg/enum_5.f90: Ditto.
* testsuite/gfortran.dg/enum_6.f90: Ditto.
* testsuite/gfortran.dg/enum_7.f90: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111117 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago PR middle-end/26300
jakub [Wed, 15 Feb 2006 20:41:03 +0000 (20:41 +0000)]
PR middle-end/26300
* combine.c (make_extraction): Bail out if ORIG_POS is negative.

* gcc.c-torture/compile/20060215-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111116 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
jakub [Wed, 15 Feb 2006 20:38:59 +0000 (20:38 +0000)]
* tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
than TREE_CODE as index into omp_clause_num_ops array.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111115 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-15 Uttam Pawar <uttamp@us.ibm.com>
dje [Wed, 15 Feb 2006 19:33:33 +0000 (19:33 +0000)]
2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>

        PR rtl-optimization/26184
        * modulo-sched.c (generate_reg_moves): Free bitmap vector
        uses_of_defs.
        * modulo-sched.c (sms_schedule): Free g_arr pointer.
        * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
        must_precede, must_follow and tobe_scheduled.

        PR other/26147
        * opts.c (common_handle_option): Free new_option pointer.
        * df-core.c (df_analyze): Free postorder pointer.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111114 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * gcc/Makefile.in: Fix the examples about the use of stamps
espindola [Wed, 15 Feb 2006 18:46:57 +0000 (18:46 +0000)]
* gcc/Makefile.in: Fix the examples about the use of stamps

M    gcc/ChangeLog
M    gcc/Makefile.in

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111113 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * check.c: Update copyright years.
tobi [Wed, 15 Feb 2006 12:42:16 +0000 (12:42 +0000)]
* check.c: Update copyright years.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111110 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago PR middle-end/22275
matz [Wed, 15 Feb 2006 12:19:49 +0000 (12:19 +0000)]
    PR middle-end/22275

        * stor-layout.c (layout_decl): Zero-width bitfields aren't
        influenced by maximum_field_alignment or DECL_PACKED.
        (update_alignment_for_field): Ditto.
        (place_field): Ditto.
        * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
        this behaviour.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111109 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * check.c (gfc_check_minloc_maxloc, check_reduction): Don't call
tobi [Wed, 15 Feb 2006 11:02:21 +0000 (11:02 +0000)]
* check.c (gfc_check_minloc_maxloc, check_reduction): Don't call
dim_range_check on not-present optional dim argument.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111108 138bc75d-0d04-0410-961f-82ee72b054a4

18 years agoResync
charlet [Wed, 15 Feb 2006 09:58:27 +0000 (09:58 +0000)]
Resync

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111107 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago (Eval_Relational_Op): Use new Is_Known_Null flag to deal with case
charlet [Wed, 15 Feb 2006 09:51:54 +0000 (09:51 +0000)]
(Eval_Relational_Op): Use new Is_Known_Null flag to deal with case
of null = null, now known true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111106 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago Add section for gnatcheck.
charlet [Wed, 15 Feb 2006 09:48:56 +0000 (09:48 +0000)]
    Add section for gnatcheck.
        Add documentation for restriction No_Dispatching_Calls
        Add documentation for pragma Ada_2005
        Remove mention of obsolete pragma Propagate_Exceptions

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111105 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 15 Feb 2006 09:47:23 +0000 (09:47 +0000)]
2006-02-13  Arnaud Charlet  <charlet@adacore.com>
    Ben Brosgol  <brosgol@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* gnat_ugn.texi: Remove limitations with sparc m64 support.
Document that gnatbind -M option is for cross environments only.
Added description of using gnatmem to trace gnat rtl allocs and deallocs
Add note on use of $ to label implicit run time calls
Add documentation for -gnatyI (check mode IN)
Updated chapter on compatibility with HP Ada
VMS-oriented edits.
Ran spell and corrected errors
Add documentation for gnatbind -d and rework documentation of -D
at the same time.
Add subprogram/data elimination section.
Minor editing of annex A.
Add section for gnatcheck.
Add documentation for restriction No_Dispatching_Calls
Add documentation for pragma Ada_2005
Remove mention of obsolete pragma Propagate_Exceptions
Document that pragma Unreferenced can appear after DO in ACCEPT
Clarify Pure_Function for library level units
Mention Max/Min in connection with No_Implicit_Conditionals
No_Wide_Characters restriction is no longer partition-wide
Add a nice example for Universal_Literal_String attribute
Document that pragma No_Return can take multiple arguments

* ug_words: Added entry for gnatcheck

* g-ctrl_c.ads (Install_Handler): Enhance comments

* g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination

* g-trasym.ads: Add documentation on how to do off line symbolic
traceback computation.

* s-fatgen.adb: Add comments for Unaligned_Valid

* stand.ads: Fix typo in comment

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111104 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
charlet [Wed, 15 Feb 2006 09:47:09 +0000 (09:47 +0000)]
2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>

* tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
(PPC VxWorks): Likewise.
(Generic unwinder): Define FORCE_CALL to 0 if not already defined.
(forced_callee): Make non-inlinable and non-pure.
(__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111103 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Robert Dewar <dewar@adacore.com>
charlet [Wed, 15 Feb 2006 09:46:58 +0000 (09:46 +0000)]
2006-02-13  Robert Dewar  <dewar@adacore.com>

* s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111102 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Bob Duff <duff@adacore.com>
charlet [Wed, 15 Feb 2006 09:46:41 +0000 (09:46 +0000)]
2006-02-13  Bob Duff  <duff@adacore.com>

* s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
Scan_Unsigned, so we do not scan leading blanks and sign twice.
Integer'Value("- 5") and Integer'Value("-+5") now correctly
raise Constraint_Error.

* s-vallli.adb (Scan_Long_Long_Integer): Call
Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
do not scan leading blanks and sign twice.
Integer'Value("- 5") and Integer'Value("-+5") now correctly
raise Constraint_Error.

* s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
Scan_Long_Long_Unsigned): Split out most of the processing from
Scan_Long_Long_Unsigned out into
Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
This prevents scanning leading blanks and sign twice.
Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
See RM-3.5(44).

* s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
out most of the processing from Scan_Unsigned out into
Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
This prevents scanning leading blanks and sign twice.

* s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
use with Modular'Value attribute.
(Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
attribute.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111101 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Quentin Ochem <ochem@adacore.com>
charlet [Wed, 15 Feb 2006 09:46:17 +0000 (09:46 +0000)]
2006-02-13  Quentin Ochem  <ochem@adacore.com>

* s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
task name.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111100 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:46:08 +0000 (09:46 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
preserve the source unit where the itype is declared, and prevent a
backend abort.
(Note_Implicit_Run_Time_Call): New procedure
(Write_Itype): Handle missing cases (E_Class_Wide_Type and
E_Subprogram_Type)

* sprint.ads: Document use of $ for implicit run time routine call

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111099 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Thomas Quinot <quinot@adacore.com>
charlet [Wed, 15 Feb 2006 09:45:56 +0000 (09:45 +0000)]
2006-02-13  Thomas Quinot  <quinot@adacore.com>

* sinput-d.adb (Write_Line): Update the Source_Index_Table after each
line. This is necessary to allow In_Extended_Main_Unit to provide
correct results for itypes while writing out expanded source.
(Close_File): No need to update the source_index_table here since it's
now done for each line.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111098 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:45:43 +0000 (09:45 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>

* sem_warn.adb (Check_One_Unit): If the unit appears in a limited_with
clause, use the limited view to determine whether any entity from it
is referenced.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111097 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:45:29 +0000 (09:45 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
    Javier Miranda  <miranda@adacore.com>

* sem_type.adb (Write_Overloads): Improve display of candidate
interpretations.
(Add_One_Interp): Do not add to the list of interpretations aliased
entities corresponding with an abstract interface type that is an
immediate ancestor of a tagged type; otherwise we have a dummy
conflict between this entity and the aliased entity.
(Disambiguate): The predefined equality on universal_access is not
usable if there is a user-defined equality with the proper signature,
declared in the same declarative part as the designated type.
(Find_Unique_Type): The universal_access equality operator defined under
AI-230 does not cover pool specific access types.
(Covers): If one of the types is a generic actual subtype, check whether
it matches the partial view of the other type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111096 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:45:12 +0000 (09:45 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* sem_elab.adb (Same_Elaboration_Scope): A package that is a
compilation unit is an elaboration scope.
(Add_Task_Proc): Add '\' in 2-line warning message.
(Activate_All_Desirable): Deal with case of unit with'ed by parent

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111095 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:45:00 +0000 (09:45 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>

* sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
if this is the full-declaration associated with a private declaration
that implement interfaces, then the private type declaration must be
limited.
(Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
as aliased. The use of the 'access attribute is not available for such
object (for this purpose the object should be explicitly marked as
aliased, but being an anonymous type this is not possible).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111094 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Bob Duff <duff@adacore.com>
charlet [Wed, 15 Feb 2006 09:44:48 +0000 (09:44 +0000)]
2006-02-13  Bob Duff  <duff@adacore.com>

* sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
redundant use clauses.
In particular, if the scope of two use clauses overlaps, but one is not
entirely included in the other, we should not warn.  This can happen
with nested packages.
(Analyze_Subprogram_Renaming): Protect the compiler against previously
reported errors. The bug was reported when the compiler was built
with assertions enabled.
(Find_Type): If the node is a 'Class reference and the prefix is a
synchronized type without a corresponding record, return the type
itself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111093 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:44:37 +0000 (09:44 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
    Javier Miranda  <miranda@adacore.com>

* sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
abstract interpretations on an operator, remove interpretations that
yield Address or a type derived from it, if one of the operands is an
integer literal.
(Try_Object_Operation.Try_Primitive_Operation,
Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
location when creating the new reference to a primitive or class-wide
operation as a part of rewriting a subprogram call.
(Try_Primitive_Operations): If context requires a function, collect all
interpretations after the first match, because there may be primitive
operations of the same type with the same profile and different return
types. From code reading.
(Try_Primitive_Operation): Use the node kind to choose the proper
operation when a function and a procedure have the same parameter
profile.
(Complete_Object_Operation): If formal is an access parameter and prefix
is an object, rewrite as an Access reference, to match signature of
primitive operation.
(Find_Equality_Type, Find_One_Interp): Handle properly equality given
by an expanded name with prefix Standard, when the operands are of an
anonymous access type.
(Remove_Abstract_Operations): If the operation is abstract because it is
inherited by a user-defined type derived from Address, remove it as
well from the set of candidate interpretations of an overloaded node.
(Analyze_Membership_Op): Membership test not applicable to cpp-class
types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111092 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Thomas Quinot <quinot@adacore.com>
charlet [Wed, 15 Feb 2006 09:44:24 +0000 (09:44 +0000)]
2006-02-13  Thomas Quinot  <quinot@adacore.com>
    Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>
    Javier Miranda  <miranda@adacore.com>

* sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
that Scope_Stack.First = 1.
Properly handle Ada_Version_Explicit and Ada_Version_Config, which
were not always properly handled previously.
(Formal_Entity): Complete rewrite, to handle properly some complex case
with multiple levels of parametrization by formal packages.
(Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
to the corresponding derived type declaration for proper semantics.

* sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
(Check_Component): Enforce restriction on components of
unchecked_unions: a component in a variant cannot contain tasks or
controlled types.
(Unchecked_Union): Allow nested variants and multiple discriminants, to
conform to AI-216.
Add pragma Ada_2005 (synonym for Ada_05)
Properly handle Ada_Version_Explicit and Ada_Version_Config, which
were not always properly handled previously.
Document that pragma Propagate_Exceptions has no effect
(Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
(Set_Convention_From_Pragma): Check that if a convention is
specified for a dispatching operation, then it must be
consistent with the existing convention for the operation.
(CPP_Class): Because of the C++ ABI compatibility, the programmer is no
longer required to specify an vtable-ptr component in the record. For
compatibility reasons we leave the support for the previous definition.
(Analyze_Pragma, case No_Return): Allow multiple arguments

* sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
non-overrideen inherited operation with a controlling result as
illegal only its implicit declaration comes from the derived type
declaration of its result's type.
(Check_Possible_Deferred_Completion): Relocate the object definition
node of the subtype indication of a deferred constant completion rather
than directly analyzing it. The analysis of the generated subtype will
correctly decorate the GNAT tree.
(Record_Type_Declaration): Check whether this is a declaration for a
limited derived record before analyzing components.
(Analyze_Component_Declaration): Diagnose record types  not explicitly
declared limited when a component has a limited type.
(Build_Derived_Record_Type): Code reorganization to check if some of
the inherited subprograms of a tagged type cover interface primitives.
This check was missing in case of a full-type associated with a private
type declaration.
(Constant_Redeclaration): Check that the subtypes of the partial and the
full view of a constrained deferred constant statically match.
(Mentions_T): A reference to the current type in an anonymous access
component declaration  must be an entity name.
(Make_Incomplete_Type_Declaration): If type is tagged, set type of
class_wide type to refer to full type, not to the incomplete one.
(Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
available. Required to give support to the certified run-time.
(Analyze_Component_Declaration): In case of anonymous access components
perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
(Process_Discriminants): For an access discriminant, use the
discriminant specification as the associated_node_for_itype, to
simplify accessibility checks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111091 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 15 Feb 2006 09:44:09 +0000 (09:44 +0000)]
2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>

* sem_ch10.adb (Check_Redundant_Withs): New procedure in
Analyze_Compilation_Unit.
Detect and warn on redundant with clauses detected in a package spec
and/or body when -gnatwr is used.
(Analyze_Context): Analyze config pragmas before other items
(Install_Context_Items): Don't analyze config pragmas here
(Install_Limited_Withed_Unit): Set limited entity of package in
with_clause so that cross-reference information or warning messages on
unused packages can be properly generated
(Is_Visible_Through_Renamings): Return false if the limited_with_clause
has Error_Posted set. Prevent infinite loops in illegal programs.
(Check_Private_Child_Unit): Move test for a nonprivate with clause down
to the point of the error test requiring the current unit to be private.
This ensures that private with clauses are not exempted from the basic
checking for being a descendant of the same library unit parent as a
withed private descendant unit.
(Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
handle private with clauses properly, as well as to account for cases
where the withed unit is a public descendant of a private ancestor
(in which case the current unit must be a descendant of the private
ancestor's parent). The spec comments were updated accordingly. Also,
the old error message in this subprogram was replaced with error
messages that mirror the errors tested and reported by
Check_Private_Child_Unit.
Parameter and variable names improved for readability.
(Install_Limited_Context_Clauses): Remove test for a withed unit being
private as the precondition for calling
Check_Private_Limited_Withed_Unit since that subprogram has been
revised to test public units as well as private units.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111090 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:43:54 +0000 (09:43 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
abstract interface type call analyze_and_resolve to expand the type
conversion into the corresponding displacement of the
reference to the base of the object.
(Eval_Attribute, case Width): For systems where IEEE extended precision
is supported, the maximum exponent occupies 4 decimal digits.
(Accessibility_Message): Add '\' in 2-line warning message.
(Resolve_Attribute): Likewise.
(case Attribute_Access): Significantly revise checks
for illegal access-to-subprogram Access attributes to properly enforce
the rules of 3.10.2(32/2).
Diagnose use of current instance with an illegal attribute.

        * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
        to a Node_Id.
        (Enclosing_Generic_Unit): New function to return a node's innermost
        enclosing generic declaration node.
        (Compile_Time_Constraint_Error): Remove '!' in warning messages.
        (Type_Access_Level): The accessibility level of anonymous acccess types
        associated with discriminants is that of the current instance of the
        type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
        (Compile_Time_Constraint_Error): Handle case of conditional expression.
        (Kill_Current_Values_For_Entity): New function
        (Enter_Name): Change formal type to Entity_Id

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111089 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:43:43 +0000 (09:43 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>

* sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
handles default-initialized components to keep separate the management
of this feature but also avoid the unrequired resolution and
expansion of components that do not have partially initialized
values.
(Collect_Aggr_Bounds): Add '\' in 2-line warning message.
(Check_Bounds): Likewise.
(Check_Length): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111088 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Douglas Rupp <rupp@adacore.com>
charlet [Wed, 15 Feb 2006 09:43:32 +0000 (09:43 +0000)]
2006-02-13  Douglas Rupp  <rupp@adacore.com>

* s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111087 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:43:23 +0000 (09:43 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* restrict.ads (No_Dispatching_Calls): New GNAT restriction.

* sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
aliased entities to look for the overriden abstract interface
subprogram.
(Is_Interface_Subprogram): Complete documentation.
(Check_Dispatching_Operation): Do not generate code to register the
operation in the dispatch table if the source is compiled with
restriction No_Dispatching_Calls.
(Override_Dispatching_Operation): Check for illegal attempt to override
No_Return procedure with procedure that is not No_Return
(Check_Dispatching_Call): Suppress the check for an abstract operation
when the original node of an actual is a tag-indeterminate attribute
call, since the attribute, which must be 'Input, can never be abstract.
(Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
call to the Input attribute (even when rewritten).
(Propagate_Tag): Augment comment to indicate the possibility of a call
to an Input attribute.

* sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.

* s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
No_Wide_Characters is no longer partition-wide
No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
rather than GNAT

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111086 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Vincent Celier <celier@adacore.com>
charlet [Wed, 15 Feb 2006 09:43:11 +0000 (09:43 +0000)]
2006-02-13  Vincent Celier  <celier@adacore.com>

* prj-makr.adb (Make): Preserve the comments from the original project
file.
When removing nodes (attributes Source_Dirs, Source_Files,
Source_List_File and package Naming), save the comments and attach the
saved comments to the newly created nodes.
Do not add a with clause for the naming package if one already exists.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111085 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Vincent Celier <celier@adacore.com>
charlet [Wed, 15 Feb 2006 09:43:00 +0000 (09:43 +0000)]
2006-02-13  Vincent Celier  <celier@adacore.com>

* prj.ads (Error_Warning): New enumeration type

* prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
unknown, use the location of the project to report the error.
(When_No_Sources): New global variable
(Report_No_Ada_Sources): New procedure
(Check): New parameter When_No_Sources. Set value of global variable
When_No_Sources,
(Find_Sources): Call Report_No_Ada_Sources when appropriate
(Get_Sources_From_File): Ditto
(Warn_If_Not_Sources): Better warning messages indicating the unit name
and the file name.

* prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
Call Prj.Proc.Process with parameter When_No_Sources.

* prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
Call Recursive_Check with parameter When_No_Sources.
(Recursive_Check): New parameter When_No_Sources. Call itself and
Prj.Nmsc.Check with parameter When_No_Sources.
(Process): New parameter When_No_Sources. Call Check with parameter
When_No_Sources.
(Copy_Package_Declarations): New procedure to copy renamed parameters
and setting the location of the declared attributes to the location
of the renamed package.
(Process_Declarative_Items): Call Copy_Package_Declarations for renamed
packages.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111084 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Vincent Celier <celier@adacore.com>
charlet [Wed, 15 Feb 2006 09:42:47 +0000 (09:42 +0000)]
2006-02-13  Vincent Celier  <celier@adacore.com>

* prj.adb (Reset): Initialize the first element of table Namings with
the standard naming data.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111083 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:42:38 +0000 (09:42 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>

* par-endh.adb (Explicit_Start_Label): Add code to protect the parser
against source containing syntax errors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111082 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Robert Dewar <dewar@adacore.com>
charlet [Wed, 15 Feb 2006 09:42:27 +0000 (09:42 +0000)]
2006-02-13  Robert Dewar  <dewar@adacore.com>

* par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
(MODE_IN)

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111081 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:42:14 +0000 (09:42 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>

PR ada/23973

* par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
code to improve the error message reported when the program has
declarations of abstract interface types and it is not compiled with
the -gnat05 switch.
(P_Access_Definition): Reorganize the code to improve the error
message reported when the new Ada 2005 syntax for anonymous
access types is used and the program is not compiled with the
-gnat05 switch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111080 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Vincent Celier <celier@adacore.com>
charlet [Wed, 15 Feb 2006 09:42:01 +0000 (09:42 +0000)]
2006-02-13  Vincent Celier  <celier@adacore.com>

* mlib-prj.adb (Index): New function
(Build_Library): When building a shared library, add to the run path
the directory of the shared version of libgcc.
(Build_Library): Output shared decgnat library.
(Process_Binder_File): Test for shared decgnat library.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111079 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Vincent Celier <celier@adacore.com>
charlet [Wed, 15 Feb 2006 09:41:49 +0000 (09:41 +0000)]
2006-02-13  Vincent Celier  <celier@adacore.com>

* make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
main source, add switch -mdebug-main=_ada_ so that the executable can
be debugged by the standard VMS debugger.
(Gnatmake): Set No_Main_Subprogram to True when there is no main
subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
Exit the Multi_Main_Loop when Unique_Compile is True after compilation
of the last source, as the binding and linking phases are never
performed.
Set all executable obsolete when rebuilding a library.

* makeutl.adb (Linker_Options_Switches): Do not process empty linker
options.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111078 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:41:35 +0000 (09:41 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
    Robert Dewar  <dewar@adacore.com>

* lib-xref.adb (Get_Type_Reference): For a private type whose full
view is an array type, indicate the component type as well, for
navigation purposes.
(Generate_Reference): Don't consider array ref on LHS to be a case
of violating pragma Unreferenced.
Do not give Ada 2005 warning except on real reference.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111077 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Robert Dewar <dewar@adacore.com>
charlet [Wed, 15 Feb 2006 09:41:22 +0000 (09:41 +0000)]
2006-02-13  Robert Dewar  <dewar@adacore.com>

* g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
These two cases were generating incorrect output, and if this unit
was built with checks on, generated a discriminant mismatch constraint
error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111076 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Vincent Celier <celier@adacore.com>
charlet [Wed, 15 Feb 2006 09:41:11 +0000 (09:41 +0000)]
2006-02-13  Vincent Celier  <celier@adacore.com>

* gnatcmd.adb (Rules_Switches): New table
(Add_To_Rules_Switches): New procedure
(GNATCmd): For command CHECK, put all options following "-rules" in the
Rules_Switches table. Append these -rules switches after the -cargs
switches.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111075 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
charlet [Wed, 15 Feb 2006 09:41:02 +0000 (09:41 +0000)]
* gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
native platforms.
(Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
finalization can occur normally.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111074 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Matthew Heaney <heaney@adacore.com>
charlet [Wed, 15 Feb 2006 09:40:52 +0000 (09:40 +0000)]
2006-02-13  Matthew Heaney  <heaney@adacore.com>

*  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
Constraint_Error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111073 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Pascal Obry <obry@adacore.com>
charlet [Wed, 15 Feb 2006 09:40:43 +0000 (09:40 +0000)]
2006-02-13  Pascal Obry  <obry@adacore.com>

* g-catiio.adb (Sec_Number): New type used to compute the number of
seconds since 1-1-1970.
(Image) [Natural]: The parameter was an Integer, as we can't deal with
negative numbers (years, months...) it is better to have a Natural here.
Code clean-up.
(Image) [Number]: Change parameter from Long_Integer to Number.
(Image): Use Number type to compute the seconds since 1-1-1970 to fix an
overflow for dates past year 2038.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111072 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Olivier Hainque <hainque@adacore.com>
charlet [Wed, 15 Feb 2006 09:40:32 +0000 (09:40 +0000)]
2006-02-13  Olivier Hainque  <hainque@adacore.com>

* g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
to avoid useless and space inefficient overalignments on targets where
Max_Alignment is larger than 16.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111071 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:40:24 +0000 (09:40 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>

* freeze.adb (Freeze_Entity): Handle subtypes of protected types and
task types when accessing to the corresponding record type.
Remove '!' in warning message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111070 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:40:13 +0000 (09:40 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
    Javier Miranda  <miranda@adacore.com>
    Eric Botcazou  <ebotcazou@adacore.com>

* exp_util.ads, exp_util.adb (Find_Prim_Op,
Is_Predefined_Primitive_Operation): When
searching for the predefined equality operator, verify that operands
have the same type.
(Is_Predefined_Dispatching_Operation): Remove the code that looks
for the last entity in the list of aliased subprograms. This code
was wrong in case of renamings.
(Set_Renamed_Subprogram): New procedure
(Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
Exp_Type constant computed when entering this subprogram.
(Known_Null): New function
(OK_To_Do_Constant_Replacement): New function
(Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
(Side_Effect_Free): An attribute reference 'Input is not free of
side effect, unlike other attributes that are functions. (from code
reading).
(Remove_Side_Effects): Expressions that involve packed arrays or records
are copied at the point of reference, and therefore must be marked as
renamings of objects.
(Is_Predefined_Dispatching_Operation): Return false if the operation is
not a dispatching operation.

PR ada/18819
(Remove_Side_Effects): Lift enclosing type conversion nodes for
elementary types in all cases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111069 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Thomas Quinot <quinot@adacore.com>
charlet [Wed, 15 Feb 2006 09:39:54 +0000 (09:39 +0000)]
2006-02-13  Thomas Quinot  <quinot@adacore.com>

* exp_pakd.ads: Fix typos in comments.

* exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
array reference that is an explicit dereference, mark the converted
(packed) array reference as analyzed to prevent a forthcoming
reanalysis from resetting its type to the original (non-packed) array
type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111068 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Robert Dewar <dewar@adacore.com>
charlet [Wed, 15 Feb 2006 09:39:41 +0000 (09:39 +0000)]
2006-02-13  Robert Dewar  <dewar@adacore.com>

* exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
call.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111067 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Pascal Obry <obry@adacore.com>
charlet [Wed, 15 Feb 2006 09:39:28 +0000 (09:39 +0000)]
2006-02-13  Pascal Obry  <obry@adacore.com>

* expect.c (__gnat_expect_portable_execvp): New implementation. The
previous implementation was using the C runtime spawnve routine but
the corresponding wait was using directly the Win32 API. This was
causing some times a lock when waiting for an event using
WaitForSingleObject in __gnat_waitpid. This new implementation uses
the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
API fixes this problem.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111066 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:39:18 +0000 (09:39 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>

* exp_dist.adb (Copy_Specification): For access parameters, copy
Null_Exclusion flag, which will have been set for stream subprograms
in Ada2005 mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111065 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:39:06 +0000 (09:39 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>

* exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
controlling argument of the dispatching call is an abstract interface
class-wide type then we use it directly.
Check No_Dispatching_Calls restriction.
(Default_Prim_Op_Position): Remove the code that looks for the last
entity in the list of aliased subprograms. This code was wrong in
case of renamings.
(Fill_DT_Entry): Add assertion to avoid the use of this subprogram
when the source is compiled with the No_Dispatching_Calls restriction.
(Init_Predefined_Interface_Primitives): No need to inherit primitives
if we are compiling with restriction No_Dispatching_Calls.
(Make_Disp_XXX): Addition of assertion to avoid the use of all these
subprograms if we are compiling under No_Dispatching_Calls restriction.
(Make_DT): Generate a dispatch table with a single dummy entry if
we are compiling with the No_Dispatching_Calls restriction. In
addition, in this case we don't generate code that calls to the
following run-time subprograms: Set_Type_Kind, Inherit_DT.
(Make_Select_Specific_Data_Table): Add assertion to avoid the use
of this subprogram if compiling with the No_Dispatching_Calls
restriction.
(Expand_Type_Conversion): Instead of using the actual parameter,
the argument passed as parameter to the conversion function was
erroneously referenced by the expander.
(Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
Set_Predefined_Primitive_Op_Address and Set_Signature.
(Expand_Dispatching_Call): Generate call to
Get_Predefined_Prim_Op_Address for predefined primitives.
(Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
predefined primitives.
(Make_DT, Make_Secondary_DT): If the tagged type has no user defined
primitives we reserve one dummy entry to ensure that the tag does not
point to some memory that is associated with some other object. In
addition, remove all the old code that generated the assignments
associated with the signature of the dispatch table and replace them
by a call to the new subprogram Set_Signature.
(Set_All_DT_Position): Change the algorithm because now we have a
separate dispatch table associated with predefined primitive operations.
(Expand_Interface_Conversion): In case of non-static offset_to_top
add explicit dereference to get access to the object after the call
to displace the pointer to the object.
(Expand_Interface_Thunk): Modify the generation of the actual used
in the calls to the run-time function Offset_To_Top to fulfil its
new interface.
(Make_DT): Add the new actuals required to call Set_Offset_To_Top.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111064 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:38:53 +0000 (09:38 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
    Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
components of the corresponding record, take into account component
definitions that are access definitions.
(Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
procedure is not considered a dispatching call and will be expanded
properly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111063 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:38:39 +0000 (09:38 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
    Javier Miranda  <miranda@adacore.com>
    Robert Dewar  <dewar@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>

* exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
return unconstrained arrays.
Update comments.
(Expand_Call):  An indirect call through an access parameter of a
protected operation is not a protected call.
Add circuit to raise CE in Ada 2005 mode following call
to Raise_Exception.
(Register_DT_Entry): Do nothing if
the run-time does not give support to abstract interfaces.
(Freeze_Subprogram): In case of dispatching operations, do not generate
code to register the operation in the dispatch table if the source
is compiled with No_Dispatching_Calls.
(Register_Predefined_DT_Entry): Generate code that calls the new
run-time subprogram Set_Predefined_Prim_Op_Address instead of
Set_Prim_Op_Address.

* sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
on array assignments if the right-hand side is a function call that has
been inlined. Check is performed on the assignment in the block.
(Process_Bounds): If bounds and range are overloaded, apply preference
rule for root operations to disambiguate, and diagnose true ambiguity.
(Analyze_Assignment): Propagate the tag for a class-wide assignment with
a tag-indeterminate right-hand side even when Expander_Active is True.
Needed to ensure that dispatching calls to T'Input are allowed and
get the tag of the target class-wide object.

* sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
an inherited primitive operation that already overrides several
abstract interface primitives. For transitivity, the new entity must
also override all the abstract interface primitives covered by the
inherited overriden primitive.
Emit warning if new entity differs from homograph in same scope only in
that one has an access parameter and the other one has a parameter of
a general access type with the same designated type, at the same
position in the signature.
(Make_Inequality_Operator): Use source locations of parameters and
subtype marks from corresponding equality operator when creating the
tree structure for the implicit declaration of "/=". This does not
change anything in behaviour except that the decoration of the
components of the subtree created for "/=" allows ASIS to get the
string images of the corresponding identifiers.
(Analyze_Return_Statement): Remove '!' in warning message.
(Check_Statement_Sequence): Likewise.
(Analyze_Subprogram_Body): For an access parameter whose designated type
is an incomplete type imported through a limited_with clause, use the
type of the corresponding formal in the body.
(Check_Returns): Implicit return in No_Return procedure now raises
Program_Error with a compile time warning, instead of beging illegal.
(Has_Single_Return):  Function returning unconstrained type cannot be
inlined if expression in unique return statement is not an identifier.
(Build_Body_To_Inline): It is possible to inline a function call that
returns an unconstrained type if all return statements in the function
return the same local variable. Subsidiary procedure Has_Single_Return
verifies that the body conforms to this restriction.

* sem_res.adb (Resolve_Equality_Op): If the operands do not have the
same type, and  one of them is of an anonymous access type, convert
the other operand to it, so that this is a valid binary operation for
gigi.
(Resolve_Type_Conversion): Handle subtypes of protected types and
task types when accessing to the corresponding record type.
(Resolve_Allocator): Add '\' in 2-line warning message.
Remove '!' in warning message.
(Resolve_Call): Add '\' in 2-line warning message.
(Valid_Conversion): Likewise.
(Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
resulting type may be an access type with an implicit dereference.
Obtain the proper component from the designated type.
(Make_Call_Into_Operator): Handle properly a call to predefined equality
given by an expanded name with prefix Standard, when the operands are
of an anonymous access type.
(Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
Explicit_Dereference and Resolve_Selected_Component, to verify that the
prefix of the expression is not of an incomplete type. Allows full
diagnoses of all semantic errors.
(Resolve_Actuals): If the actual is an allocator whose directly
designated type is a class-wide interface we build an anonymous
access type to use it as the type of the allocator. Later, when
the subprogram call is expanded, if the interface has a secondary
dispatch table the expander will add a type conversion to force
the displacement of the pointer.
(Resolve_Call): If a function that returns an unconstrained type is
marked Inlined_Always and inlined, the call will be inlined and does
not require the creation of a transient scope.
(Check_Direct_Boolean_Op): Removed
(Resolve_Comparison_Op): Remove call to above
(Resolve_Equality_Op): Remove call to above
(Resolve_Logical_Op): Inline above, since this is only call.
(Valid_Conversion): Handle properly conversions between arrays of
convertible anonymous access types.

PR ada/25885

(Set_Literal_String_Subtype): If the lower bound is not static, wrap
the literal in an unchecked conversion, because GCC 4.x needs a static
value for a string bound.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111062 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:38:19 +0000 (09:38 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>

* exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
string, and the context requires a loop for the assignment (e.g.
because the left-hand side is packed), generate a unique name for the
temporary that holds the string, to prevent spurious name clashes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111061 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Thomas Quinot <quinot@adacore.com>
charlet [Wed, 15 Feb 2006 09:38:10 +0000 (09:38 +0000)]
2006-02-13  Thomas Quinot  <quinot@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
Make_Adjust_Call done for a newly-allocated object.

* exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
in a subprogram are wrapped in a cleanup block, indicate that the
subprogram contains an inner block with an exception handler.
(Make_Adjust_Call): New Boolean formal Allocator indicating whether the
Adjust call is for a newly-allocated object. In that case we must not
assume that the finalization list chain pointers are correct (since they
come from a bit-for-bit copy of the original object's pointers) so if
the attach level would otherwise be zero (no change), we set it to 4
instead to cause the pointers to be reset to null.

* s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
reset chain pointers to null.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111060 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:38:00 +0000 (09:38 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>
    Gary Dismukes  <dismukes@adacore.com>

* exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
availability of RE_Interface_Tag.
(Build_Initialization_Call): Fix wrong access to the discriminant value.
(Freeze_Record_Type): Do not generate the tables associated with
timed and conditional dispatching calls through synchronized
interfaces if compiling under No_Dispatching_Calls restriction.
When compiling for Ada 2005, for a nonabstract
type with a null extension, call Make_Controlling_Function_Wrappers
and insert the wrapper function declarations and bodies (the latter
being appended as freeze actions).
(Predefined_Primitive_Bodies): Do not generate the bodies of the
predefined primitives associated with timed and conditional
dispatching calls through synchronized interfaces if we are
compiling under No_Dispatching_Calls.
(Build_Init_Procedure):  Use RTE_Available to check if a run-time
service is available before generating a call.
(Make_Controlling_Function_Wrappers): New procedure.
(Expand_N_Full_Type_Declaration): Create a class-wide master for
access-to-limited-interfaces because they can be used to reference
tasks that implement such limited interface.
(Build_Offset_To_Top_Functions): Build the tree corresponding to the
procedure spec and body of the Offset_To_Top function that is generated
when the parent of a type with discriminants has secondary dispatch
tables.
(Init_Secondary_Tags): Handle the case in which the parent of the type
containing secondary dispatch tables has discriminants to generate the
correct arguments to call Set_Offset_To_Top.
(Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.

* a-tags.ads, a-tags.adb: (Check_Index): Removed.
Add Wide_[Wide_]Expanded_Name.
(Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
the same functionality of Get_Prim_Op_Address but applied to predefined
primitive operations because the pointers to the predefined primitives
are now saved in a separate table.
(Parent_Size): Modified to get access to the separate table of primitive
operations or the parent type.
(Set_Predefined_Prim_Op_Address): New subprogram that provides the same
functionality of Set_Prim_Op_Address but applied to predefined primitive
operations.
(Set_Signature): New subprogram used to store the signature of a DT.
(Displace): If the Offset_To_Top value is not static then call the
function generated by the expander to get such value; otherwise use
the value stored in the table of interfaces.
(Offset_To_Top): The type of the actual has been changed to Address to
give the correct support to tagged types with discriminants. In this
case this value is stored just immediately after the tag field.
(Set_Offset_To_Top): Two new formals have been added to indicate if the
offset_to_top value is static and hence pass this value to the run-time
to store it in the table of interfaces, or else if this value is dynamic
and then pass to the run-time the address of a function that is
generated by the expander to provide this value for each object of the
type.

* rtsfind.ads (Default_Prin_Op_Count): Removed.
(Default_Prim_Op_Count): New entity
(Get_Predefined_Prim_Op_Address): New entity
(Set_Predefined_Prim_Op_Address): New entity
(RE_Set_Signature): New entity

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111059 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Robert Dewar <dewar@adacore.com>
charlet [Wed, 15 Feb 2006 09:37:43 +0000 (09:37 +0000)]
2006-02-13  Robert Dewar  <dewar@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
attribute Mechanism_Code is applied to renamed subprogram, modify
prefix to point to base subprogram.
Max/Min attributes now violate Restriction No_Implicit_Conditionals

* sinfo.ads: Document that Mechanism_Code cannot be applied to
renamed subprograms so that the front-end must replace the prefix
appropriately.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111058 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:37:33 +0000 (09:37 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>

* exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
"Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
does not exist in the Ada RM.
(Compatible_Int_Bounds): Determine whether two integer range bounds
are of equal length and have the same start and end values.
(Is_Int_Range_Bounds): Determine whether a node is an integer range.
(Build_Record_Aggr_Code): Perform proper sliding of a nested array
aggregate when it is part of an object declaration.
(Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
constrains discriminants of its parent, add explicitly the discriminant
constraints of the ancestor by retrieving them from the
stored_constraint of the parent.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111057 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Quentin Ochem <ochem@adacore.com>
charlet [Wed, 15 Feb 2006 09:37:21 +0000 (09:37 +0000)]
2006-02-13  Quentin Ochem  <ochem@adacore.com>
    Olivier Hainque  <hainque@adacore.com>

* bindusg.adb: Updated documentation for -d and -D switches.

* raise.h (__gnat_set_globals): added new parameter for
Default_Stack_Size.

* init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
(__gnat_handle_vms_condition): Adjust context before raise.
(__gnat_install_handler): Restore the global vector setup for GCC
versions before 3.4, as the frame based circtuitry is not available
in this case.
(__gnat_set_globals): added a parameter default_stack_size
(__gl_default_stack_size): new variable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111056 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Javier Miranda <miranda@adacore.com>
charlet [Wed, 15 Feb 2006 09:37:10 +0000 (09:37 +0000)]
2006-02-13  Javier Miranda  <miranda@adacore.com>
    Robert Dewar  <dewar@adacore.com>
    Ed Schonberg  <schonberg@adacore.com>

* einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
against errors in the source program: a private types for which the
corresponding full type declaration is missing and pragma CPP_Virtual
is used.
(Is_Unchecked_Union): Check flag on Implementation_Base_Type.
(Is_Known_Null): New flag
(Has_Pragma_Pure): New flag
(No_Return): Present in all entities, set only for procedures
(Is_Limited_Type): A type whose ancestor is an interface is limited if
explicitly declared limited.
(DT_Offset_To_Top_Func): New attribute that is present in E_Component
entities. Only used for component marked Is_Tag. If present it stores
the Offset_To_Top function used to provide this value in tagged types
whose ancestor has discriminants.

* exp_ch2.adb: Update status of new Is_Known_Null flag

* sem_ch7.adb: Maintain status of new Is_Known_Null flag

* sem_cat.adb (Get_Categorization): Don't treat function as Pure in
the categorization sense if Is_Pure was set by pragma Pure_Function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111055 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Robert Dewar <dewar@adacore.com>
charlet [Wed, 15 Feb 2006 09:36:57 +0000 (09:36 +0000)]
2006-02-13  Robert Dewar  <dewar@adacore.com>
    Serguei Rybin  <rybin@adacore.com>

* opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
save/restore routines.
Properly handle Ada_Version_Explicit and Ada_Version_Config, which
were not always properly handled previously.
Since we are changing the tree format anyway, also get rid of the
junk obsolete Immediate_Errors flag.
(Tree_Read): Change the way of reading Tree_Version_String - now we
read the version string from the tree even if its length is not the
same as the length of the version string computed from Gnatvsn.
(Search_Directory_Present): New Boolean flag for the compiler.
Define Tree_Version_String as a dynamic string.
(Default_Stack_Size): new variable, used to handle switch -d.

* par-prag.adb:
For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
only for main unit.
Add pragma Ada_2005 (synonym for Ada_05)
Properly handle Ada_Version_Explicit and Ada_Version_Config, which
were not always properly handled previously.

* directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
explicit Ada_95 to Ada_2005.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111054 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Robert Dewar <dewar@adacore.com>
charlet [Wed, 15 Feb 2006 09:36:45 +0000 (09:36 +0000)]
2006-02-13  Robert Dewar  <dewar@adacore.com>
    Vincent Celier  <celier@adacore.com>

* debug.adb: Eliminate numeric switches for binder/gnatmake

* switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
switches for the compiler.
(Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
(Scan_Make_Switches): When failing with an illegal switch, output an
error message with the full switch.
Eliminate numeric switches for binder/gnatmake

* switch.ads, switch.adb (Bad_Switch): New procedure

* switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
Remove 0-9 as debug flag character possibilities
-d is now controlling the primary stack size when its value is a
positive. Also add checks against invalid values, and support for kb,
mb. Ditto for -D switch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111053 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 15 Feb 2006 09:36:35 +0000 (09:36 +0000)]
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
    Thomas Quinot  <quinot@adacore.com>

* checks.adb (Build_Discriminant_Checks): If the expression being
checks is an aggregate retrieve the values of its discriminants to
generate the check, rather than creating a temporary and a reference
to it.
(Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
(Install_Null_Excluding_Check): Ditto
(Selected_Length_Checks): Build actual subtype for the original Ck_Node,
not for the renamed object, so that the actual itype is attached in the
proper context.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111052 138bc75d-0d04-0410-961f-82ee72b054a4

18 years ago2006-02-13 Vincent Celier <celier@adacore.com>
charlet [Wed, 15 Feb 2006 09:36:23 +0000 (09:36 +0000)]
2006-02-13  Vincent Celier  <celier@adacore.com>

* a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
Unchecked_Conversion functions.
(Modification_Time): Use direct conversion of OS_Time to Calendar time
when OpenVMS returns False.

* a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
a-dirval.adb (OpenVMS): New Boolean function

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111051 138bc75d-0d04-0410-961f-82ee72b054a4