home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / sys / hp / 14629 < prev    next >
Encoding:
Internet Message Format  |  1993-01-07  |  2.2 KB

  1. Path: sparky!uunet!olivea!spool.mu.edu!sdd.hp.com!hpscit.sc.hp.com!hplextra!hpfcso!hpcss01!hpcuhe!dhandly
  2. From: dhandly@hpcuhe.cup.hp.com (Dennis Handly)
  3. Newsgroups: comp.sys.hp
  4. Subject: Re: cc: Internal error 5705.
  5. Message-ID: <31480306@hpcuhe.cup.hp.com>
  6. Date: 7 Jan 93 03:13:10 GMT
  7. References: <0fDUS7y00WBLA1ms85@andrew.cmu.edu>
  8. Organization: Hewlett-Packard Cal Language Lab
  9. Lines: 61
  10.  
  11. >Anyone familiar with what *this* highly user friendly message means 
  12. >It appears to occur in the /lib/ccom pass.
  13.  
  14. Well if you have Pascal installed you can look in /usr/lib/paserrs
  15. and see the following:
  16.  
  17. 5705 Ustack underflow (5705)
  18.  
  19. $    CAUSE:  Internal compiler error.
  20.  
  21. $    ACTION: Report error to your nearest HP Service Representative.
  22.  
  23. I'm not sure that you'll like that any better.  :-)
  24.  
  25. Pascal has printed this message out for awhile, but I've just changed
  26. it to print out the statement number in question so the user can 'fiddle'
  27. with the code to try to make the problem go away.  I.e. simplify and
  28. use extra temporaries.
  29.  
  30. Normally this error occurs when the front-end doesn't follow the correct
  31. code generation protocol.  It usually occurs in conditional branching
  32. like if, while, and (?:).
  33.  
  34. Your problem is the following???
  35.  
  36.                              SR NUMBER: 4701132837
  37.  DESC: Compiler generates Internal error 5705
  38.  
  39.  PROBLEM TEXT
  40.  
  41.  The program below gets internal error 5705. It seems that
  42.  the C front-end is generating incorrect intermediate code
  43.  causing the internal error.
  44.  
  45.  The internal error is produced when a conditional expression
  46.  with the ternary operator, evaluated for effect and not for
  47.  value, performs as a side effect a store into a narrow type
  48.  such as float, char or short.
  49.  
  50.  TEMPORARY SOLUTION
  51.  
  52.  Use the result returned from the conditional expression:
  53.  Either assign it to a dummy temporary, test it, or use it
  54.  in a function call. For example:
  55.  
  56.  typedef struct Submessage { unsigned char type, dump; } Submessage;
  57.  Submessage *CurSubMsg;
  58.  
  59.  yylex() {
  60.     int dumb; /* don't need to use this */
  61.     dumb = (2 == 1 ? (CurSubMsg->dump=1) : (CurSubMsg->type=2));
  62.  }
  63.  
  64.  FIX INFORMATION
  65.  
  66.     This functionality will appear in:
  67.        HP-UX  version 9.00, and cc version A.9.18.
  68.        MPE/iX version 5.0, and ccxl version A.05.00.
  69.  
  70.  
  71. Or maybe 4701157420 which is very similar.
  72.