home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / DOS / Programa / CCDL122.ZIP / DOC / BUGS.DOC < prev    next >
Encoding:
Text File  |  1996-08-08  |  1.7 KB  |  53 lines

  1. The following known bugs exist:
  2.  
  3. 1) Expression evaluation is recursive.  With a 4K compiler stack 
  4. the limit is approximately something like:
  5.  
  6.     a = (b()+(c()+(d()+(e()+f()))));
  7.  
  8. Beyond this unpredictable results will occur.  Raise the stack limit
  9. or rearrange the expression with higher order parenthesis to the left.
  10. Notice this would not be a problem without the grouping parenthesis
  11. because the compiler wouldn't have to maintain so many contexts.
  12.     
  13. 2) #line directive is ignored
  14.  
  15. 3) #pragma statements not passed through to the CPP file
  16.  
  17. 4) 386 floating point code generation does not support checking if 
  18. there is floating point stack overflow.  Be careful!
  19.  
  20. 5) List file addresses for function arguments and local variables are
  21. not displayed properly in the list file.
  22.  
  23. 6) Floating point may or may not work.  I have no way of knowing.  In
  24. particular, on the M68K I haven't put in coprocessor sync instructions,
  25. if they are necessary.
  26.  
  27. 7) expressions such as :
  28.  
  29.     a = b = c;
  30.  
  31. may not return the correct value to anything other than the rightmost
  32. assignment.  In general it will work, but if there are multiple 
  33. implicit casts going on from one assigment to the next it may not work
  34. correctly.
  35.  
  36. 8) % may not work properly for signed divisions
  37.  
  38. 9) macro expansions will take place even inside comments, so:
  39.  
  40. #define EOF (-1)    /* end of file marker */
  41. #define _F_EOF 0x2000    /* EOF flag */
  42.  
  43. then _F_EOF will expand to:
  44.  
  45. 0x2000   /* (-1)        /* end of file marker */ flag */
  46.  
  47. and the preprocessor does NOT allow nested comments.
  48.  
  49. 10) #pragma startup and #pragma rundown cause a bug in the ASM file
  50. that will prevent it from compiling, if any functions occur before the
  51. pragma.
  52.  
  53. 11) casts in static initializations are ignored.