i370 port - music/sp - possible generic gcc problem

Paul Edwards mutazilah@gmail.com
Sun Nov 29 07:57:00 GMT 2009


> <stdin>: In function `acos':
> <stdin>:137: Internal compiler error in ?, at <stdin>:724
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> 
> I might be able to trace it from a different approach, getting more
> information about that internal error, now that I know where some
> of the involved memory is.  I'll get that <stdin> converted into a
> PC filename first.

6 hours of compilation later, I was unsuccessful in getting the proper
filename displayed.  As far as I can tell, it's aborting but not displaying
any output.  ie randomly displaying the above message.

However, not to worry, since there's only one line 724 with an
abort() in it, and it's this bit of code:

static int
insert_save (chain, before_p, regno, to_save, save_mode)
     struct insn_chain *chain;
     int before_p;
     int regno;
     HARD_REG_SET *to_save;
     enum machine_mode *save_mode;
{
  int i;
  unsigned int k;
  rtx pat = NULL_RTX;
  int code;
  unsigned int numregs = 0;
  struct insn_chain *new;
  rtx mem;

  /* A common failure mode if register status is not correct in the RTL
     is for this routine to be called with a REGNO we didn't expect to
     save.  That will cause us to write an insn with a (nil) SET_DEST
     or SET_SRC.  Instead of doing so and causing a crash later, check
     for this common case and abort here instead.  This will remove one
     step in debugging such problems.  */

  if (regno_save_mem[regno][1] == 0)
    abort ();


which is in the same file as the init_caller_save() function that
allocated the memory in the first place.

One fortunate thing is that this source file is under 1000 lines
long so hopefully amenable to debugging.

BFN.  Paul.



More information about the Gcc mailing list