This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


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

g77 patch to possible improve some debugging stuff


I believe this patch might help debug g77-produced code in gdb (and
other debuggers), especially when dealing with stuff like CHARACTER*(*)
dummy arguments.  That opinion is based on some email conversations
I've had with a couple of people who've been looking into the gdb/g77
problems.  (Nobody get too excited about this; it doesn't address
the longstanding COMMON/EQUIVALENCE deficiencies at all, and even
with this patch, the only improvement I could see was that
`which __g77_length_a' did the right thing instead of crashing gdb
4.16 for me.  But patches others have tried producing for gdb might,
in combination of this one, allow `p *a' to work without crashing
in a future version of g77.)

Jeff, if this patch doesn't look obviously wrong to you (since it
really involves the back-end interface), could you install it?  It
"seems" quite safe, but the sooner it gets tested, the better.  (I'm
about to fire up a `make check' on it, which I should have done a
couple of days ago, but it passed my other private test suite without
any new crashes.)

        tq vm, (burley)


Sat Jul  4 20:47:19 1998  Craig Burley  <burley@gnu.org>

	Fix debugging of CHARACTER*(*), etc., which requires
	emitting debug info on types like `ftnlen':
	* com.c (ffecom_start_progunit_): Don't bother
	resetting "invented" flag for identifier.
	(ffecom_transform_equiv_): Don't bother zeroing
	"ignored" flag for decl.
	(pushdecl): No longer set "ignored", "used", or
	"suppressed debug" flags for decls having "invented"
	identifiers.


*** g77-e0/gcc/f/com.c.~1~	Mon Jun 29 10:11:48 1998
--- g77-e0/gcc/f/com.c	Sat Jul  4 19:26:56 1998
*************** ffecom_start_progunit_ ()
*** 7929,7933 ****
  					   ffesymbol_text (fn),
  					   0);
-       IDENTIFIER_INVENTED (id) = 0;	/* Allow this to be debugged. */
      }
  #if FFETARGET_isENFORCED_MAIN
--- 7929,7932 ----
*************** ffecom_transform_equiv_ (ffestorag eqst)
*** 9474,9482 ****
    eqt = start_decl (eqt, FALSE);
  
-   /* Make sure this shows up as a debug symbol, which is not normally
-      the case for invented identifiers.  */
- 
-   DECL_IGNORED_P (eqt) = 0;
- 
    /* Make sure that any type can live in EQUIVALENCE and be referenced
       without getting a bus error.  We could pick the most restrictive
--- 9473,9476 ----
*************** pushdecl (x)
*** 15330,15337 ****
  #endif
  	  DECL_IN_SYSTEM_HEADER (x) = 1;
- 	  DECL_IGNORED_P (x) = 1;
- 	  TREE_USED (x) = 1;
- 	  if (TREE_CODE (x) == TYPE_DECL)
- 	    TYPE_DECL_SUPPRESS_DEBUG (x) = 1;
  	}
  
--- 15324,15327 ----
*** g77-e0/gcc/f/version.c.~1~	Wed Jul  1 11:18:44 1998
--- g77-e0/gcc/f/version.c	Sat Jul  4 18:36:02 1998
***************
*** 1 ****
! char *ffe_version_string = "0.5.24-19980701";
--- 1 ----
! char *ffe_version_string = "0.5.24-19980704";


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