This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
pending/1074: Patches to improve Fortran support
- From: David Lecomber <david at streamline-computing dot com>
- To: gdb-gnats at sources dot redhat dot com
- Date: Wed, 15 Jan 2003 21:32:40 +0000
- Subject: pending/1074: Patches to improve Fortran support
>Number: 1074
>Category: pending
>Synopsis: Patches to improve Fortran support
>Confidential: yes
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: change-request
>Submitter-Id: unknown
>Arrival-Date: Wed Feb 19 23:08:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:
>Release:
>Organization:
>Environment:
>Description:
--EVF5PPMfhYS0aIcm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
I have attached one of the wrong patch files to my email of Jan 13.
The first attached patch only cured the tendency of gdb to allocate -ve large
amounts of memory, which was my first attempt at curing the fortran array problem.
That was more curing the symptom than the cause, and doesn't work fully anyway..
The new attachment is the fix to the source of the problem. Apologies for the
confusion.
Cheers
David
--EVF5PPMfhYS0aIcm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="gdb.array-ptr-patch"
*** ../../TMP/gdb-5.3/gdb/eval.c Sun Dec 15 22:29:59 2002
--- eval.c Sun Dec 15 22:28:41 2002
*************** evaluate_subexp_standard (struct type *e
*** 1383,1392 ****
offset_item =
array_size_array[i] * offset_item + subscript_array[i];
- /* Construct a value node with the value of the offset */
-
- arg2 = value_from_longest (builtin_type_f_integer, offset_item);
-
/* Let us now play a dirty trick: we will take arg1
which is a value node pointing to the topmost level
of the multidimensional array-set and pretend
--- 1383,1388 ----
*************** evaluate_subexp_standard (struct type *e
*** 1395,1401 ****
returns the correct type value */
VALUE_TYPE (arg1) = tmp_type;
! return value_ind (value_add (value_coerce_array (arg1), arg2));
}
case BINOP_LOGICAL_AND:
--- 1391,1405 ----
returns the correct type value */
VALUE_TYPE (arg1) = tmp_type;
!
! f77_get_dynamic_lowerbound (tmp_type, &lower);
!
! /* Construct a value node with the value of the offset */
! /* lower will get subtracted off in value_subscript, hence add it here */
!
! arg2 = value_from_longest (builtin_type_f_integer, offset_item + lower);
!
! return value_subscript(arg1, arg2);
}
case BINOP_LOGICAL_AND:
--EVF5PPMfhYS0aIcm--
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: