This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]