home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 29 Fixes_o / 29-Fixes_o.zip / ctc012.lst < prev    next >
File List  |  1996-01-16  |  102KB  |  1,535 lines

  1.                         C Set ++ Compiler Version 2.0
  2.                                  Fixes List
  3.                         -----------------------------
  4. *******************************************************************************
  5. *                                                                             *
  6. *  This CSD contains fixes that are common to C/C++ Tools Version 2.0 and     *
  7. *  Version 2.01.  Notwithstanding the version statements contained in the     *
  8. *  files of this CSD, this is not an upgrade of Version 2.0 to Version 2.01.  *
  9. *                                                                             *
  10. *  The code to which you have access is determined by the version of the      *
  11. *  software to which you are licensed.                                        *
  12. *                                                                             *
  13. *******************************************************************************
  14. ===============================================================================
  15.                     CTC0012 is informal Corrective Service
  16. *******************************************************************************
  17. FIX/APAR  COMPONENT  PROBLEM DESCRIPTION
  18. -------------------------------------------------------------------------------
  19. PJ19826   BE         Fixes a problem where the code optimizer was generating
  20.                      incorrect code in a tail-call optimization, which then
  21.                      leads to stack memory corruption at runtime.
  22. -------------------------------------------------------------------------------
  23. PJ19827   BE         Fixes a problem where incorrect code was generated when
  24.                      passing a structure by value to a function when the size
  25.                      of the structure was 45 to 47 bytes.
  26. -------------------------------------------------------------------------------
  27. PJ19853   BE         Fixes a problem where the code optimizer may generate
  28.                      incorrect optimized code for a for-loop when the loop
  29.                      boundary values are array or structure elements.  This
  30.                      causes the loop body to be executed only once regardless
  31.                      of the actual number of iterations defined.
  32. -------------------------------------------------------------------------------
  33. PJ19854   BE         Fixes a problem where the code generator is not doing
  34.                      correct integral promotion in some expressions, in which
  35.                      there are char or short variables.
  36. -------------------------------------------------------------------------------
  37. PJ19855   BE         Fixes a problem where the code optimizer may trap when
  38.                      pushing floating-point parameters for function calls.
  39. -------------------------------------------------------------------------------
  40. PJ19856   BE         Fixes a problem where the code generator may create code
  41.                      that corrupts the stack in a stmt like "t = foo().x", when
  42.                      the member of a structure returned by a function is stored
  43.                      to a variable on stack.
  44. -------------------------------------------------------------------------------
  45. PJ19857   BE         Fixes a problem where the code generator may incorrectly
  46.                      generate an FSUBR instruction using a 10-byte memory
  47.                      operand (which is an illegal instruction)
  48. -------------------------------------------------------------------------------
  49. PJ19858   BE         Fixes a problem where the code optimizer may incorrectly
  50.                      generate code to inline code of the form:
  51.                         strcat(memcpy(..))
  52. -------------------------------------------------------------------------------
  53. PJ19859   BE         Fixes a problem where the code optimizer traps when
  54.                      handling a negative multiplier.
  55. -------------------------------------------------------------------------------
  56. PJ19860   BE         Fixes a problem where the code optimizer incorrectly
  57.                      performed strength reduction if an induction variable was
  58.                      a member of a structure.
  59. -------------------------------------------------------------------------------
  60. PJ19869   BE         Fixes a problem where simple functions containing code
  61.                      like the following:
  62.                        if (x) return y;
  63.                        else return z;
  64.                      may leave floating-point parameters on the NPX stack after
  65.                      function exit.
  66. -------------------------------------------------------------------------------
  67. PJ19874   BE         Fixes a problem where a floating-point value could be left
  68.                      on the NPX register stack if a floating-point value
  69.                      returned by a function is assigned but not used.
  70. -------------------------------------------------------------------------------
  71. PJ19875   BE         Fixes a problem in code generation when using _outp() with
  72.                      the value parameter being an expression.
  73. -------------------------------------------------------------------------------
  74. PJ19877   BE         Fixes a problem in code generation with /O+ /G5 switches
  75.                      in code containing calls to memchr() where the count is
  76.                      non-constant and evaluates to zero.
  77. -------------------------------------------------------------------------------
  78. QI 36859  BE         Fixes a problem where the optimizer could generate bad
  79.                      code for accessing local variables.
  80. -------------------------------------------------------------------------------
  81. QI 36866  BE         Fixes a problem where the optimizer generates incorrect
  82.                      code in returning a structure which causes memory
  83.                      corruption.
  84. -------------------------------------------------------------------------------
  85. QI 36868  BE         Fixes a problem where the could cause source of the form
  86.                      ((USHORT)((ULONG) x)) to generate bad code.
  87. -------------------------------------------------------------------------------
  88. QI 36891  BE         Fixes a problem where a MOD operation could cause the
  89.                      code generator to go into an infinite loop.
  90. -------------------------------------------------------------------------------
  91. PJ19868   ICL        Fixes a problem where the intermediate code linker
  92.                      cannot handle compiling of more than 256 files.  It would
  93.                      either trap or generate a "cannot open immediate file"
  94.                      error message.
  95. -------------------------------------------------------------------------------
  96. PJ19876   ICL        Fixes a problem with /Ti that can cause ICL to issue a
  97.                      fatal error when compiling C++ files with pointers to
  98.                      member functions
  99. -------------------------------------------------------------------------------
  100. QI 47562  ICL        Fixes a problem with /Ti that can cause BE to generate
  101.                      'error in intermediate file  RBDEBUG(..)' message.
  102. -------------------------------------------------------------------------------
  103. PJ19834   CFE        Fixes a problem where an unexpected compiler error occurs
  104.                      in some programs containing duplicate declarations of
  105.                      structures
  106. -------------------------------------------------------------------------------
  107. PJ19835   CFE        Fixes a problem where the preprocessor does not always
  108.                      expand some macros in #if directive correctly.
  109. -------------------------------------------------------------------------------
  110. PJ19847   CFE        Fixes a problem where the preprocessor is not always
  111.                      paste tokens together properly.
  112. -------------------------------------------------------------------------------
  113. PJ19850   CFE        Fixes a problem where the compiler is not propagating the
  114.                      volatile property of a structure to the structure's
  115.                      members
  116. -------------------------------------------------------------------------------
  117. PJ19904   C++FE      Fixes a problem with the C++ compiler, where it was
  118.                      generating an invalid error EDC3263 message for a template
  119.                      class with a non-inline member function
  120.                         operator const T * () const;
  121. -------------------------------------------------------------------------------
  122. PJ19905   C++FE      Fixes a problem with the C++ compiler, where data and
  123.                      function members inherited through virtual bases may be
  124.                      accessed incorrectly.  When accessing a virtual base
  125.                      class, or a base of a virtual base, certain inheritance
  126.                      hierarchies would cause the wrong base class to be
  127.                      accessed, and therefore the wrong data member to be
  128.                      accessed or the wrong virtual function table to be used.
  129. -------------------------------------------------------------------------------
  130. PJ19906   C++FE      Fixes a problem where the C++ compiler trapped on invalid
  131.                      source.  (specifying "_Seg16" before "*" of a pointer
  132.                      variable)
  133. -------------------------------------------------------------------------------
  134. PJ19907   C++FE      Fixes a problem where the C++ compiler generated code that
  135.                      could cause object destructors to be called twice during
  136.                      exception processing
  137. -------------------------------------------------------------------------------
  138. QI 28455  C++FE      Fixes a problem where the C++ compiler generated an
  139.                      inconsistent function name when the function name is
  140.                      declared inside a structure of an anonymous union.  When
  141.                      mangling a name, It now doesnot generate the part for the
  142.                      anonymous union.
  143. -------------------------------------------------------------------------------
  144. PJ19820   CRT        Fixes a problem with _access().
  145.                      The _access() library function may fail if there are no
  146.                      available file handles.  This has been changed so that if
  147.                      the process run out of file handles, _access() will
  148.                      increment the maximum number of handles available to the
  149.                      process.
  150. -------------------------------------------------------------------------------
  151. PJ19829   CRT        Fixes a problem with printf().
  152.                      printf() failed with precision 0 and argument 0 in
  153.                      integral conversions, producing no output.  This has been
  154.                      changed to fill the space specified by width with blanks.
  155. -------------------------------------------------------------------------------
  156. PJ19831   CRT        Fixes a problem handling exceptions inside the library
  157.                      termination code.  Exception handling requires thread
  158.                      local storage which may have been freed if an exception
  159.                      happens inside termination code.  Exceptions inside
  160.                      library terminatin code are no longer handled, by the
  161.                      library, but are passed to the OS for handling.
  162. -------------------------------------------------------------------------------
  163. PJ19833   CRT        Fixes a problem reloading a locale.  If setlocale() was
  164.                      called twice for the same locale, the second call will
  165.                      free the storage used to store locale specific
  166.                      information, but will not allocate new storage, and
  167.                      dangling reference will occur.  The fix allows a new
  168.                      locale to use already allocated storage.
  169. -------------------------------------------------------------------------------
  170. PJ19851   CRT        Fixes a problem with _strcoll().
  171.                      The strcoll() library function may fail if its first
  172.                      argument is substring of the second argument.  The
  173.                      function has been fixed to behave symetrically regarding
  174.                      its arguments.
  175. -------------------------------------------------------------------------------
  176. PJ19852   CRT        Fixes a problem with _heapmin().
  177.                      If there are large objects allocated from the heap, the
  178.                      _heapmin() function may cause memory leaks.
  179. -------------------------------------------------------------------------------
  180. QI 49096  CRT        Fixes a process termination exception.
  181.                      An exception could happen at process termination if any of
  182.                      the standard streams are closed.  A subsequent malloc()
  183.                      could reuse the memory used by standard streams, but the
  184.                      run-time still thinks it owns the memory.
  185. ===============================================================================
  186.                     CTC0011 is informal Corrective Service
  187. *******************************************************************************
  188. FIX/APAR  COMPONENT  PROBLEM DESCRIPTION
  189. -------------------------------------------------------------------------------
  190. QUAL-IMP  BE         Compiling a module without a main() function using the /O
  191.                      /Ol /Gu options could result a compile-time trap.
  192.  
  193. -------------------------------------------------------------------------------
  194. QUAL-IMP  BE         When the multiplication of char or short constants results
  195.                      in an overflow, incorrect code may be generated if the
  196.                      result of the multiply is used in a comparison.
  197.  
  198. -------------------------------------------------------------------------------
  199. QUAL-IMP  BE         An internal problem could result in a compile-time
  200.                      exception when compiling a switch with /O+ /Ti+.
  201.  
  202. -------------------------------------------------------------------------------
  203. QUAL-IMP  BE         In rare cases, stack space allocated by _alloca() could
  204.                      become corrupted when using auto-inlining.
  205.  
  206. -------------------------------------------------------------------------------
  207. QUAL-IMP  BE         Fixed an internal problem which in rare circumstances
  208.                      could cause incorrect code generation
  209.  
  210. -------------------------------------------------------------------------------
  211. PJ15990   BE         ICL: When compiling with /Fw to generate intermediate
  212.                      files, a bug in the ICL could result in the incorrect
  213.                      intermediate files which causes the compiler backend
  214.                      to trap.
  215.  
  216. -------------------------------------------------------------------------------
  217. PJ16021   BE         Defining an uninitialized variable of type double in more
  218.                      than one module results in a LINK386 L2025 error (symbol
  219.                      defined more that once).
  220.  
  221. -------------------------------------------------------------------------------
  222. PJ15991   BE         ICL: A bug in the ICL could cause a compile-time trap
  223.                      in the compiler back end when the /Ol+ option is used.
  224.  
  225. -------------------------------------------------------------------------------
  226. PJ15987   BE         An internal problem occurring during register assignment
  227.                      could cause a compile-time exception.
  228.  
  229. -------------------------------------------------------------------------------
  230. PJ16024   BE         Fixes a problem where the epilog of a function could
  231.                      be incorrect if the function contains a call to _alloca.
  232.  
  233. -------------------------------------------------------------------------------
  234. PJ15881   BE         Statements of the form "x ? INT_MAX : INT_MIN;" could be
  235.                      optimized incorrectly.
  236.  
  237. -------------------------------------------------------------------------------
  238. PJ15876   BE         The last compare and jump in strncat() should be unsigned
  239.                      rather that signed.
  240.  
  241. -------------------------------------------------------------------------------
  242. PJ15882   BE         Fixed a problem where compiling with /Gr and then running
  243.                      at ring 0 causes a Stack Segment Overrun trap.
  244.  
  245. -------------------------------------------------------------------------------
  246. PJ15880   BE         Incorrect code may be generated when a conditional
  247.                      expression is logically negated and used as the test
  248.                      expression within an if statement.
  249.  
  250. -------------------------------------------------------------------------------
  251. PJ15894   BE         The conversion from a segmented pointer to a flat pointer
  252.                      may not occur if the _Seg16 pointer is cast to an int.
  253.  
  254. -------------------------------------------------------------------------------
  255. PJ15935   BE         Fixes a register assigning problem which could cause
  256.                      a run-time trap when calling a function via a pointer.
  257.  
  258. -------------------------------------------------------------------------------
  259. PJ16023   BE         Fixes a problem where compiling with /Ti+ causes the
  260.                      compiler to create a huge temporary file.
  261.  
  262. -------------------------------------------------------------------------------
  263. PJ15986   BE         A problem occurring while trying to optimize the usage
  264.                      of registers could result in incorrect code generation.
  265.  
  266. -------------------------------------------------------------------------------
  267. PJ15883   BE         In rare cases, the generated code for the builtin version
  268.                      of strcmp could be incorrect when one of it's parameters
  269.                      is a function.
  270.  
  271. -------------------------------------------------------------------------------
  272. PJ15993   BE         Consecutive / and % operators with identical operands
  273.                      inside simple loops could be compiled incorrectly.
  274.  
  275. -------------------------------------------------------------------------------
  276. PJ15869   BE         Compiling an "if" that contains a negated ternary
  277.                      expression could cause a compile-time trap.
  278.  
  279. -------------------------------------------------------------------------------
  280. QUAL-IMP  BE         Using #pragma alloc_text() to place a function in the
  281.                      default code segment (CODE32) may result in a run-time
  282.                      exception since two CODE32 segments may be created.
  283.  
  284. -------------------------------------------------------------------------------
  285. PJ15872   BE         Fixed an internal problem that could cause a compile-time
  286.                      trap when compiling an simple "if" containing the logical
  287.                      negation of a floating-point variable.
  288.  
  289. -------------------------------------------------------------------------------
  290. QUAL-IMP  BE         Incorrect debug information generated which could cause
  291.                      IPMD to fail.
  292.  
  293. -------------------------------------------------------------------------------
  294. QUAL-IMP  BE         When using the /Gt option, static arrays of the same
  295.                      type could be mapped on top of each other in rare cases.
  296.  
  297. -------------------------------------------------------------------------------
  298. PJ16038   BE         Fixes a register assigner bug that could cause incorrect
  299.                      register spills/reloads of 8 or 16 bit values.
  300.  
  301. -------------------------------------------------------------------------------
  302. PJ15870   BE         In rare cases, the code generated for the builtin version
  303.                      of memchr could be incorrect when using the /G5 option.
  304.  
  305. -------------------------------------------------------------------------------
  306. PJ15994   BE         Instruction scheduling could cause code containing
  307.                      consecutive memsets to fail.
  308.  
  309. -------------------------------------------------------------------------------
  310. PJ15996   BE         An internal problem occurring during loop unrolling
  311.                      could result in a compile-time exception.
  312.  
  313. -------------------------------------------------------------------------------
  314. PJ15933   BE         An illegal MOV instruction could be generated when
  315.                      converting a 32-bit value to an 8-bit value.
  316.  
  317. -------------------------------------------------------------------------------
  318. PJ15934   BE         An internal problem occurring while handling floating-point
  319.                      parameters in registers could cause a compile-time trap.
  320.  
  321. -------------------------------------------------------------------------------
  322. PJ16313   BE         Incorrect code may be generated when converting an integer
  323.                      value to a floating-point value if the integer variable is
  324.                      used after the conversion.
  325.  
  326. -------------------------------------------------------------------------------
  327. PJ16037   C++FE      In some rare cases, compiler might corrupt identifier
  328.           CFE        names that are also macro names not eligible for macro
  329.                      expansion.
  330.                      e.g., #define max(a,b) (((a) > (b)) ? (a) : (b))
  331.                            int max;
  332.                                       | -> max here could be corrupted
  333.  
  334. -------------------------------------------------------------------------------
  335. QUAL-IMP  CFE        Compiler is not generating correct code for the side
  336.                      effect in the following 'if' statement:
  337.                        if (*++p == '-0' && !1) ;
  338.                      'p' does not get incremented as expected.
  339.  
  340. -------------------------------------------------------------------------------
  341. QUAL-IMP  CFE        Compiler is not correctly recognizing that statements in a
  342.                      'switch' before any 'case' or 'default' are unreachable.
  343.  
  344. -------------------------------------------------------------------------------
  345. PJ15888   CFE        Declaration of function returning pointer to array of
  346.                      unsigned int without 'int' specifier is misinterpreted.
  347.                        i.e.,  (*foo())-U {}
  348.                      causes the compiler to generate erroneous error message.
  349.                      It should be accepted in the same way as:
  350.                        int (*foo())-U {}
  351.  
  352. -------------------------------------------------------------------------------
  353. PJ15887   CFE        Compiler incorrectly issues error message for the
  354.                      following correct code segment:
  355.                        char * const kpz;
  356.                        kpz[0] = '-0';
  357.  
  358. -------------------------------------------------------------------------------
  359. QUAL-IMP  CFE        Compiler hangs when compiling source code with comment on
  360.                      the last line and the comment exceeds the right margin.
  361.  
  362. -------------------------------------------------------------------------------
  363. PJ16029   CFE        Calling from 16 bit to 32 bit, and passing a pointer does
  364.                      not result in the pointer being automatically thunked.
  365.  
  366. -------------------------------------------------------------------------------
  367. PJ16028   CFE        When ICC is invoked to compile a large number of files in
  368.                      a command line or a response file, ICC fails with message
  369.                      "Severe Error: Unable to retrieve messages from message
  370.                      file."
  371.  
  372. -------------------------------------------------------------------------------
  373. PJ16027   CRT        If the result from internal function called by strtod()
  374.                      would cause underflow exception, it is rounded to zero,
  375.                      with proper error signaling.
  376.  
  377. -------------------------------------------------------------------------------
  378. PJ15886   CRT        strdup() allocates memory with malloc(), so it cannot be
  379.                      freed in a program that was compiled with /Gt+.  Changes
  380.                      to the heap algorithm now permit any type of memory
  381.                      (normal, tiled, or debug) to be passed to any kind of
  382.                      free() or realloc() function.  In the case of realloc(),
  383.                      the resulting memory will be of the same type as the
  384.                      original.
  385.  
  386. -------------------------------------------------------------------------------
  387. PJ15885   CRT        _LHUGE_VAL is a macro that is defined in math.h as being a
  388.                      reference to an external variable.  The variable was not
  389.                      being exported from the library DLL.  This has been
  390.                      corrected.
  391.  
  392. -------------------------------------------------------------------------------
  393. PJ15884   CRT        Floating point number formatting has been changed to
  394.                      better handle any precision for floating point numbers.
  395.  
  396. -------------------------------------------------------------------------------
  397. PJ16026   CRT        tmpnam() used to produce the same name in the first, tenth
  398.                      hundreth call. It is guaranteed that it will now make
  399.                      TMP_MAX unique names.
  400.  
  401. -------------------------------------------------------------------------------
  402. PJ16273   CRT        getcwd() and getdcwd() library functions will fail on
  403.                      OS/2 Warp if the caller does not specify a buffer.
  404.  
  405. -------------------------------------------------------------------------------
  406. PJ16025   BE         In case of running out of file handles, tempnam() will
  407.                      increase the number of allowable file handles and try
  408.                      again.
  409.  
  410. -------------------------------------------------------------------------------
  411. QUAL-IMP  DLLRNAME   DLLRNAME may not be able to handle renaming DDE4SBS.DLL
  412.                      in the current directory.
  413.  
  414. -------------------------------------------------------------------------------
  415. PJ16030   DLLRNAME   Attempting to rename a DLL in another directory with DLLRNAME
  416.                      results in the renamed DLL being left in the current
  417.                      directory.
  418.  
  419. -------------------------------------------------------------------------------
  420. PJ16031   CPPFILT    CPPFILT has been modified so that it doesn't use CMD.EXE
  421.                      to invoke a sub-program.
  422.  
  423. -------------------------------------------------------------------------------
  424. PJ16057   C++FE      The compiler was issuing an incorrect error for the
  425.                      conversion of a pointer to a pointer to member of
  426.                      the same type.
  427.  
  428. -------------------------------------------------------------------------------
  429. PJ16083   C++FE      The compiler was generating an error for a user
  430.                      defined postfix increment operator for an enum.
  431.  
  432. -------------------------------------------------------------------------------
  433. PJ16055   C++FE      The value oxFFFFFFFF was not being accepted as a valid
  434.                      enum value.  It's size was also being set to the wrong
  435.                      size.
  436.  
  437. -------------------------------------------------------------------------------
  438. QUAL-IMP  C++FE      Mysterious external variables ___nnn being generated with
  439.                      the /O+ compile option.
  440.  
  441. -------------------------------------------------------------------------------
  442. PJ16056   C++FE      #pragma export of an overloaded const and non-const
  443.                      function was generating an error, and only one function
  444.                      was being exported.
  445.  
  446. -------------------------------------------------------------------------------
  447. QUAL-IMP  C++FE      New "#pragma defineonly" to match the AIX C Set++ compiler
  448.  
  449. -------------------------------------------------------------------------------
  450. PJ15905   C++FE      The compiler was trapping when it tried to issue an error
  451.                      message for the invalid use of extern "C++" as a function
  452.                      parameter.
  453.  
  454. -------------------------------------------------------------------------------
  455. PJ15930   C++FE      The compiler displayed 65536 as the column number when the
  456.                      source file is a precompiled header file.  This cause a
  457.                      problem when trying to invoke an editor automatically under
  458.                      the WorkFrame.  The fix is to display 1 as the column
  459.                      number when the source file is a precompiled header.
  460.  
  461. -------------------------------------------------------------------------------
  462. PJ15931   C++FE      In an array of dimension N containing pointers to member,
  463.                      and with M initializers where M < N, the remaining N-M
  464.                      members should be initialized to zero.  Instead, they were
  465.                      being left uninitalized and the first N-M were being
  466.                      zeroed.
  467.  
  468. -------------------------------------------------------------------------------
  469. PJ16032   C++FE      Fixed problem with accessing base classes in hierarchies
  470.                      containing virtual base classes.
  471.  
  472. -------------------------------------------------------------------------------
  473. PJ16275   C++FE      In some cases, temporary objects were being destructed
  474.                      twice.  In some other cases, objects caught in a catch
  475.                      clause were not being destructed at all.
  476.  
  477. -------------------------------------------------------------------------------
  478. QUAL-IMP  Samples    PMLINES sample program in SAMPLE1A used the WinPeekMsg()
  479.                      API incorrectly, causing the sample to fail on OS/2 Warp.
  480.  
  481. ===============================================================================
  482.                     CTC0010 is informal Corrective Service
  483. *******************************************************************************
  484. FIX/APAR  COMPONENT  PROBLEM_DESCRIPTION
  485. -------------------------------------------------------------------------------
  486. PJ14307   BE         A dangling assignment to a floating point parameter inside
  487.                      a function can cause a floating point stack overflow if
  488.                      called often enough
  489. -------------------------------------------------------------------------------
  490. PJ14318   BE         This fix will correct a boundary problem that occurs when
  491.                      compiling with option /Gt+ if your program contains static
  492.                      data objects exactly equal to 64K in size. The problem
  493.                      does not occur when option /Gt- is specified.
  494. -------------------------------------------------------------------------------
  495. PJ14309   BE         Fixed a register problem that may occur when using _alloca
  496.                      with optimization.
  497. -------------------------------------------------------------------------------
  498. PJ14310   BE         A floating-point parameter for a function call could be
  499.                      set up incorrectly if the call is the last operation in a
  500.                      function (the tail call optimization).
  501. -------------------------------------------------------------------------------
  502. PJ14311   BE         Storing a char into an int and then later storing the int
  503.                      back into the char could, in very rare circumstances,
  504.                      produce incorrect code.
  505. -------------------------------------------------------------------------------
  506. PJ14312   BE         Nested for loops in which the iteration variables are
  507.                      members of the same structure may cause incorrect code
  508.                      generation.
  509. -------------------------------------------------------------------------------
  510. PJ14313   BE         Floating-point parameters may be left on the NPX register
  511.                      stack if there is an "if {...}" immediately above a "for
  512.                      (;;)" loop near the start of a function. This can later
  513.                      result in a floating point stack overflow exception.
  514. -------------------------------------------------------------------------------
  515. PJ14314   BE         An internal problem could result in a compile-time
  516.                      exception when processing a function with floating-point
  517.                      parameters.
  518. -------------------------------------------------------------------------------
  519. PJ14315   BE         Calling a function with two or more similar aggregate
  520.                      parameters could result in incorrect code generation.
  521. -------------------------------------------------------------------------------
  522. PJ14316   BE         Incorrect code could be generated for 16-bit operations
  523.                      that use the BP register when optimizing code without the
  524.                      /Op- compile parameter also specified.
  525. -------------------------------------------------------------------------------
  526. PJ14317   BE         If a conditional break inside an infinite loop jumps to a
  527.                      return, static variables used in the loop may not be
  528.                      correct at the return.
  529. -------------------------------------------------------------------------------
  530. QUAL-IMP  BE         Accessing an int as a bitfield structure has undefined
  531.                      behaviour according to the ANSI C standard.  However, the
  532.                      behaviour has been changed so that it is more in line with
  533.                      "intuitively obvious" behaviour.
  534. -------------------------------------------------------------------------------
  535. PJ14424   BE         In very rare circumstances, incorrect code may be
  536.                      generated when the only use of a parameter is a copy to a
  537.                      local variable.
  538. -------------------------------------------------------------------------------
  539. QUAL-IMP  BE         Division and remainder operations that conditionally
  540.                      execute within a loop could be moved outside of the loop,
  541.                      perhaps causing unexpected divide-by-zero exceptions.  (a
  542.                      result of the invariant code motion optimizations)
  543. -------------------------------------------------------------------------------
  544. PJ14579   BE         Under rare circumstances, due to an internal problem,
  545.                      compiling a large C++ module with /O+ /Ti+ can cause a
  546.                      compile-time exception.
  547. -------------------------------------------------------------------------------
  548. QUAL-IMP  C++FE      The compiler was not restricting the change of char to
  549.                      signed or unsigned char during integral promotions only.
  550.                      They are three distinct types.
  551.                       Note:  This fix may cause code that previously compiled
  552.                      cleanly to produce errors.  It is simply the compiler
  553.                      detecting an error that it wasn't detecting previously.
  554. -------------------------------------------------------------------------------
  555. PJ14428   C++FE      When a variable is initialized , any temporaries that are
  556.                      created in the initializer expression should have their
  557.                      destruction delayed until the end of the block.  For a
  558.                      reference variable to a ternary expression this is not the
  559.                      case and the destructors are being called too soon.
  560. -------------------------------------------------------------------------------
  561. PJ14431   C++FE      Compiler traps while generating a message for an
  562.                      inaccessible constant expression in a switch statement.
  563. -------------------------------------------------------------------------------
  564. QUAL-IMP  C++FE      Compiler may trap when generating the error message
  565.                       EDC3004:  "{" statement is not allowed in this scope.
  566. -------------------------------------------------------------------------------
  567. QUAL-IMP  C++FE      The compiler issues an invalid error message for an
  568.                      unrecognized type when the symbol is actually a template
  569.                      argument T.
  570. -------------------------------------------------------------------------------
  571. QUAL-IMP  C++FE      The compiler generates an error when trying to pass a
  572.                      array argument to a class template that takes a char *
  573.                      arg.
  574. -------------------------------------------------------------------------------
  575. QUAL-IMP  C++FE      A declaration without a type specification causes the C++
  576.                      compiler front end to trap when generating an error
  577.                      message.
  578. -------------------------------------------------------------------------------
  579. QUAL-IMP  C++FE      The C++ compiler front end traps when compiling a
  580.                      statement of the form:
  581.                       <function typedef> <_Optlink specifier> <function name>
  582.                      (<empty argument list>)
  583. -------------------------------------------------------------------------------
  584. PJ14433   C++FE      The C++ compiler is restricting the use of:
  585.                         #pragma comment(user,"..")
  586.                       It can only occur once in a source file and must appear
  587.                      before any C++ statements.
  588. -------------------------------------------------------------------------------
  589. PJ14434   C++FE      The compiler is not generating a temp when passing an
  590.                      array to a function that takes a const char * const &
  591.                      argument.  This results in a bad address being passed to
  592.                      the function.
  593. -------------------------------------------------------------------------------
  594. QUAL-IMP  C++FE      When a nested type that is a typedef is used as a base
  595.                      class the compiler checks the access of the target of the
  596.                      typedef instead of the typedef name and an invalid access
  597.                      error is generated.
  598. -------------------------------------------------------------------------------
  599. QUAL-IMP  C++FE      The C++ language specifies that for non-member operator
  600.                      functions, at least one of the arguments must be of class
  601.                      type, reference to class, enum type, or reference to enum.
  602.                       The compiler is generating an error for the definition of
  603.                      a operator + function that takes an enum and an int as
  604.                      parameters.
  605. -------------------------------------------------------------------------------
  606. QUAL-IMP  C++FE      Initialization of static reference variables is happening
  607.                      at runtime static initialization instead of at compile
  608.                      time.
  609. -------------------------------------------------------------------------------
  610. PJ14445   C++FE      The preprocessor may generate the invalid error:
  611.                       "The suffix for the floating point constant is not
  612.                      valid."
  613.                       when concatenating two valid tokens together to form a
  614.                      floating point constant.
  615. -------------------------------------------------------------------------------
  616. QUAL-IMP  C++RT      A program that supplies its own version of delete may have
  617.                      had the compiler supplied version called instead of the
  618.                      user version when linking dynamically.
  619. -------------------------------------------------------------------------------
  620. QUAL-IMP  C++RT      Fixed problem where a duplicate symbol error was generated
  621.                      by the linker when a user provided global new() was linked
  622.                      into a program that also called set_new_handler().
  623. -------------------------------------------------------------------------------
  624. PJ14347   CFE        If a variable is first declared as 'static' variable in
  625.                      file scope, then declaration of the same variable name in
  626.                      function scope should refer to the same variable.  This
  627.                      linkage of identifiers does not work properly when /Ti+ is
  628.                      not specified.
  629. -------------------------------------------------------------------------------
  630. PJ14346   CFE        Compiler generated segmented to flat pointer conversion is
  631.                      missing for the following code segment:
  632.                        char * fp;
  633.                        unsigned long l = 0;
  634.                        fp = l < 0
  635.                             ? 0
  636.                             : (char* _Seg16)(void*)(void* _Seg16)l;
  637. -------------------------------------------------------------------------------
  638. PJ14343   CFE        Compiler internal error occurs compiling unusually large
  639.                      program with optimization turned on.
  640. -------------------------------------------------------------------------------
  641. PJ14345   CFE        #pragma margins and /Sg options causes erroneous /Wppc
  642.                      info message when the line ends at the right margin.
  643. -------------------------------------------------------------------------------
  644. PJ14325   CFE        After Invoking the compiler from a network drive with
  645.                      preload (/Tl) enabled, the network drive stays locked.
  646. -------------------------------------------------------------------------------
  647. PJ14329   CFE        In macro expansion, preprocessor mistreats two dots
  648.                      followed by any character as an elipsis.
  649.                        #define test left..right
  650.                       test is expanded to left..ight
  651. -------------------------------------------------------------------------------
  652. QUAL-IMP  CFE        Some #line directives with file names specified are not
  653.                      processed properly by the compiler.
  654. -------------------------------------------------------------------------------
  655. QUAL-IMP  CFE        The compiler is failing to provide a closing double quote
  656.                      (") on the executable name when calling LINK386.  This
  657.                      does not cause a problem with LINK386.EXE, but could cause
  658.                      problems with other linkers.
  659. -------------------------------------------------------------------------------
  660. QUAL-IMP  CFE        When ICC is compiling TEMPINC files, it is possible that
  661.                      compiling one TEMPINC file will update another one and
  662.                      make it out of date.  ICC needs to loop doing TEMPINC
  663.                      compiles until all objects are up to date.
  664. -------------------------------------------------------------------------------
  665. PJ14445   CFE        The preprocessor erroneous issues an error message for the
  666.                      following legal macro expansion:
  667.                       #define MAKEHEX(a) 0x##a
  668.                       float j = MAKEHEX(2e);
  669. -------------------------------------------------------------------------------
  670. PJ14454   CFE        The C compiler generates incorrect code when evaluating
  671.                      the address of an array of array of structure members
  672.                      within another structure, with array index of 0.
  673.                       e.g. for the following structure, the values of
  674.                      &s2.s1[1][0].j and &s2.s1[1]->j are not evaluated
  675.                      properly:
  676.                        struct {
  677.                           int i;
  678.                           struct {
  679.                              int j;
  680.                           } s1[2][3];
  681.                        } s2;
  682. -------------------------------------------------------------------------------
  683. PJ14279   CRT        getcwd() fails intermittently, returning an OS/2 error.
  684. -------------------------------------------------------------------------------
  685. PJ14281   CRT        The spawnx() and execx() families of functions sometimes
  686.                      pass a incorrect parameter list to the child process.
  687. -------------------------------------------------------------------------------
  688. PJ14308   CRT        When a file is opened for low level I/O in text mode, and
  689.                      the last character read from the file is a carriage return
  690.                      ('\r'), the _read() function moves the file pointer back
  691.                      by 1. This causes incorrect results only if the next
  692.                      operation on the file is _write() or _tell().
  693. -------------------------------------------------------------------------------
  694. PJ14456   CRT        The TZ variable in the environment does not support
  695.                      timezones which are not an integral number of hours
  696.                      different from GMT.  The format of the TZ variable has
  697.                      been changed to support this now.  The format is now:
  698.                       SSS[+|-]hh[:mm[:ss]]DDD[,sm,sw,st,em,ew,ed,et,shift]
  699.                       [] indicates optional parameters.
  700.                       Note the addition of the minutes and seconds to the
  701.                      offset.
  702. -------------------------------------------------------------------------------
  703. PJ14455   CRT        On OS/2 2.11, the DosKillThread API cannot kill C library
  704.                      routines that get input from the keyboard.  This works on
  705.                      OS/2 2.0 and 2.1, although it has unpredictable side
  706.                      effects.  The library has been changed to allow this
  707.                      particular use of DosKillThread() to work safely on OS/2
  708.                      2.11.  Using the DosKillThread() API still has
  709.                      unpredictable side effects on OS/2 2.0 and 2.1 (an OS
  710.                      limitation).
  711. -------------------------------------------------------------------------------
  712. QUAL-IMP  SCL        A bug in ostrstream causes program to trap.  The actual
  713.                      bug is inside streambuf's sync().  It tries to put the end
  714.                      of line character into an empty stream buffer.
  715. -------------------------------------------------------------------------------
  716. PJ14427   SCL        Memory is allocated by the iostream library during static
  717.                      initialization, but is not being freed during termination.
  718.                       This causes a memory leak if the iostream functions are
  719.                      statically linked to a DLL which is dynamically loaded and
  720.                      unloaded.
  721. -------------------------------------------------------------------------------
  722. =========================================================================
  723.                CTC0009 is formal Corrective Service
  724. The following fixes are provided in Compiler CS CTC0009
  725. **************************************************************************
  726. FIX/APAR    COMPONENT     PROBLEM_DESCRIPTION
  727. --------------------------------------------------------------------------
  728. PJ13703     CFE           Defining the first token in a program as
  729.                           a character string with the /D option
  730.                           causes an internal compiler error
  731. --------------------------------------------------------------------------
  732. QUAL-IMP    CFE           Label not found message does not
  733.                           indicate which label is not found.
  734. --------------------------------------------------------------------------
  735. QUAL-IMP    CFE           Internal compiler error while generating
  736.                           /Wenu messages for program with 'case'
  737.                           statement outside 'switch' scope.
  738. --------------------------------------------------------------------------
  739. PJ13705     BE            Fixed a parameter passing problem that
  740.                           occurs when the last statement of a
  741.                           function is to a _Pascal function.
  742. --------------------------------------------------------------------------
  743. QUAL-IMP    BE            Allow the optimizer to assign registers
  744.                           a little more efficiently in certain
  745.                           circumstances.
  746. --------------------------------------------------------------------------
  747. PJ13706     BE            A loop that contains a goto to a return
  748.                           could, in rare cases, cause incorrect
  749.                           code generation.
  750. --------------------------------------------------------------------------
  751. PJ12329     CRT           A 16-bit function will get a protection
  752.                           exception if the function has a large
  753.                           automatic storage area.  This problem
  754.                           occurs on secondary threads, and happens
  755.                           because the stack is not committed when
  756.                           the thread begins execution and the
  757.                           16-bit code does not have stack probes.
  758.                           The compiler runtime code that sets up
  759.                           the 16bit stack needs to commit it.
  760. --------------------------------------------------------------------------
  761. PJ13704     CRT           Compiling 16-32 callback funtions with
  762.                           static link results in duplicate references
  763.                           when linking.
  764.                           Reference APAR PJ12507
  765. --------------------------------------------------------------------------
  766. QUAL-IMP    CRT           Now checking if a destructor exists
  767.                           during error recovery in __vec__copy().
  768.                           May have caused traps
  769. =========================================================================
  770.                CTC0008 is informal Corrective Service
  771. The following fixes are provided in Compiler CS CTC0008
  772. *************************************************************************
  773. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  774. -------------------------------------------------------------------------
  775. PJ12307          BE         Cannot access local variables of callback
  776.                             functions within the Debugger.
  777. -------------------------------------------------------------------------
  778.  PJ12325         BE         Incorrect code may be generated for a
  779.                             conditional increment or decrement if the
  780.                             comparison is signed.
  781. -------------------------------------------------------------------------
  782.  PJ12340         BE         The conversion of an address to a segmented
  783.                             address may be incorrectly done if the
  784.                             address involves an index calculation
  785.                             (ie: &array{i-1})
  786. -------------------------------------------------------------------------
  787.  PJ12341         BE         A register used by strncat() could be
  788.                             clobbered under rare circumstances and
  789.                             cause incorrect behaviour.
  790. -------------------------------------------------------------------------
  791.  PJ12376         BE         Fixed an internal problem with the handling
  792.                             of conditional increments with side effects.
  793. -------------------------------------------------------------------------
  794.  PJ12431         BE         Incorrect register selection could cause
  795.                             incorrect results when performing a bitwise
  796.                             AND (&) with a constant.
  797. -------------------------------------------------------------------------
  798.  PJ12507       BE & CRT     Compiling 16 to 32 callback functions with
  799.                             /Gh+ causes a run-time trap.
  800. -------------------------------------------------------------------------
  801.  QUAL-IMP        BE         Incorrect register selection could lead to
  802.                             traps or unexpected results with 32 to 16 to
  803.                             16 to 32 code.
  804. -------------------------------------------------------------------------
  805.  QUAL-IMP        BE         Fixed a problem similarto PJ11975 for
  806.                             conditional decrements.
  807. -------------------------------------------------------------------------
  808.  PJ12567         CRT        Exception handler was not deregistered within
  809.                             heap_check when using /TM+
  810. -------------------------------------------------------------------------
  811.  PJ12326         CFE        If listing is enabled (/Ls, /Li, or /Lj) and
  812.                             the source code contains nested #if, #elif
  813.                             and #ifdef, the compiler might fail with
  814.                             unexpected compiler error.
  815. -------------------------------------------------------------------------
  816.  PJ12327     CFE & C++FE    After compiling programs with preload turned
  817.                             on, sometimes the front-end traps after the
  818.                             compilation is completed.
  819. -------------------------------------------------------------------------
  820.  PJ12477         CFE        The compiler was not checking against
  821.                             possible errors reading the source and
  822.                             header files.
  823. -------------------------------------------------------------------------
  824.  PJ12490         CFE        ICC will be changed to ignore /Si+ option
  825.                             when /Fb+ option is specified.
  826. -------------------------------------------------------------------------
  827.  QUAL-IMP        CFE        Pre-load program was not checking the return
  828.                             codes from some API calls.
  829. -------------------------------------------------------------------------
  830.  QUAL-IMP        CFE        If the compiler is first invoked from a
  831.                             directory with preload option enabled, while
  832.                             the compiler stays loaded, the user is
  833.                             prevented from removing the directory.
  834.                             This is inconvenient for the user.
  835. -------------------------------------------------------------------------
  836.  QUAL-IMP        CFE        Compiling program with function calls with
  837.                             very large number of arguments causes
  838.                             compiler to trap.
  839. -------------------------------------------------------------------------
  840.  PJ12378         C++FE      If a class is _Exported, then a member
  841.                             function is subsequently defined to be
  842.                             "inline", the compiler still tells the linker
  843.                             to export the function.  This causes an
  844.                             "undefined external" linker error.
  845. -------------------------------------------------------------------------
  846.  PJ12388         C++FE      A C++ program compiled with optimization
  847.                             will cause the front-end to trap if a "const
  848.                             int" static class data member is referenced
  849.                             with explicit class qualification.
  850. -------------------------------------------------------------------------
  851.  PJ12427         C++FE      Erroneous conversion error between typedefs,
  852.                             friend functions and the use of the friend
  853.                             function.
  854. -------------------------------------------------------------------------
  855.  PJ12445         C++FE      Compiler trap processing declaration of const
  856.                             var symbol previously used without being
  857.                             declared.
  858. -------------------------------------------------------------------------
  859.  PJ12479         C++FE      Preprocessor trap when processing a macro
  860.                             defined to NULL
  861. -------------------------------------------------------------------------
  862.  PJ12492         C++FE      When one anonymous union is nested inside
  863.                             another in a C++ program, incorrect addresses
  864.                             are generated for the union members.
  865. -------------------------------------------------------------------------
  866.  QUAL-IMP        C++FE      Fixed #pragma page() and #pragma skip() so
  867.                             that a listing file will not be generated if
  868.                             the listing option is not activated on the
  869.                             command line.
  870. -------------------------------------------------------------------------
  871.  QUAL-IMP        C++FE      If the argument list of a macro is supplied
  872.                             via another macro, the macro might not be
  873.                             expanded as expected.
  874.                             Note: Corresponding CFE fix was implemented
  875.                                   in CTC0006 as PJ11929
  876. -------------------------------------------------------------------------
  877.  QUAL-IMP        C++FE      Wrapper <demangle.h> with #pragma pack
  878. -------------------------------------------------------------------------
  879.  PJ12328         UTIL       When a new C Set++ project (ie. no compiler
  880.                             options have been set), is invoked under the
  881.                             build action on the WorkFrame, the compiler
  882.                             DLL will return the default action.  The
  883.                             default action is not to generate any .W
  884.                             files.
  885. -------------------------------------------------------------------------
  886.  PJ12522         UTIL       Munch was giving the error "assert
  887.                             <line_number> invalid object record." This
  888.                             error was incorrectly being produced for
  889.                             valid object record formats.
  890. =========================================================================
  891.                CTC0007 is informal Corrective Service
  892. The following fixes are provided in Compiler CS CTC0007 and later CS
  893. *************************************************************************
  894. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  895. -------------------------------------------------------------------------
  896.  PJ11951       BE & CFE     The optimizer misses a chance to inline
  897.                             certain C++ functions.
  898. -------------------------------------------------------------------------
  899.  PJ11979         CFE        In source code:
  900.                             int main (void) {
  901.                                 int a, b; b = 1; a = 2; return 0;
  902.                             }
  903.                             The symbols for a and b are generated in a
  904.                             different order depending on whether /Ti is
  905.                             on.  They should be generated in the same
  906.                             way no matter what the /Ti setting is.
  907. -------------------------------------------------------------------------
  908.  QUAL-IMP        CFE        When /La compiler option is used, some of the
  909.                             structures and unions are incorrectly shown
  910.                             in the listing
  911. -------------------------------------------------------------------------
  912.  PJ12108         CRT        Library fixes made to solve problems when
  913.                             debug allocated objects were freed with
  914.                             non-debug routines and vice-versa.
  915.                             In addition the environment variable
  916.                             DDE4_HEAP_SKIP was added whereby the user can
  917.                             skip the _heap_check that occur when debug
  918.                             routines are invoked. The syntax is as
  919.                             follows:
  920.  
  921.                             set DDE4_HEAP_SKIP=increment,starting
  922.  
  923.                             where: 'increment' is how often a
  924.                             heap_check will be invoked, and 'starting'
  925.                             (which is optional) is how many calls to
  926.                             debug memory routines must occur before
  927.                             heap_checks are done.
  928.  
  929.                             Example: DDE4_HEAP_SKIP=100,1000
  930.                             will perform a heap_check after 1000 debug
  931.                             memory routines have been called and on every
  932.                             100 calls after that.
  933.  
  934.                             Example: DDE4_HEAP_SKIP=50
  935.                             will perform a heap_check on every 50 calls
  936.                             made to a debug memory routine
  937.  
  938.                             Note: If DDE4_HEAP_SKIP is not set in the
  939.                             environment then the default will be to
  940.                             invoke heap_check on every call to a debug
  941.                             memory routine.
  942. =========================================================================
  943.                CTC0006 is informal Corrective Service
  944. The following fixes are provided in Compiler CS CTC0006 and later CS
  945. *************************************************************************
  946. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  947. -------------------------------------------------------------------------
  948.  PJ11896         BE         Optimization Problem: A for loop that
  949.                             functions like a memcpy() could be
  950.                             incorrectly optimized if the source of the
  951.                             copy is a struct member.
  952. -------------------------------------------------------------------------
  953.  PJ11952         BE         Optimization Problem: An internal problem
  954.                             with expression simplification could result
  955.                             in incorrect code generation.
  956. -------------------------------------------------------------------------
  957.  PJ11953         BE         Optimization Problem: Within an inner switch
  958.                             of nested switches, a goto jumping to a break
  959.                             for the outer switch could be turned into a
  960.                             break for the inner switch.
  961. -------------------------------------------------------------------------
  962.  PJ11975         BE         Optimization Problem: Statements of the form:
  963.                             "if (f1 < f2) i++", where f1 and f1 have
  964.                             floating-point datatypes, could cause a
  965.                             compile-time exception in the BE.
  966. -------------------------------------------------------------------------
  967.  QUAL-IMP        BE         Optimization Problem: MOD operations could
  968.                             generate results of the wrong sign if both
  969.                             operands are negative.  Similar results could
  970.                             occur for MOD and DIV by a negative power of
  971.                             2.
  972. -------------------------------------------------------------------------
  973.  QUAL-IMP        BE         Fixed a small problem with the generated
  974.                             assembler listing file - an incorrect symbol
  975.                             could be used.
  976. -------------------------------------------------------------------------
  977.  PJ11872         C++FE      Fixed a trap in the C++ frontend.  The trap
  978.                             occurred when we tried to compile a source
  979.                             file that contained a class that had 2
  980.                             declarations of the same friend function and
  981.                             a typedef for that function.
  982. -------------------------------------------------------------------------
  983.  PJ11887         C++FE      Fixed a trap when compiling code with a
  984.                             definition of a function with _Far16 _Pascal
  985.                             linkage.
  986. -------------------------------------------------------------------------
  987.  PJ11981         C++FE      If a conversion function yields a reference
  988.                             to a class with constructors, and a temporary
  989.                             is built from the result of that conversion,
  990.                             the temporary is initialized by bitwise
  991.                             copying instead of by calling its copy
  992.                             constructor.
  993. -------------------------------------------------------------------------
  994.  PJ11982         C++FE      The compiler will deliberately not inline
  995.                             some functions if doing so would break C++
  996.                             exception handling.  However, when exception
  997.                             handling is disabled by /Gx+, the compiler
  998.                             still fails to inline those functions.
  999. -------------------------------------------------------------------------
  1000.  PJ11983         C++FE      A complex expression containing more than one
  1001.                             conditional subexpression (i.e. the  x ? y :
  1002.                             z construct) may be generated such that the
  1003.                             subexpressions are evaluated in the wrong
  1004.                             order.
  1005. -------------------------------------------------------------------------
  1006.  PJ11984         C++FE      An inline function consisting of a single
  1007.                             return statement that returns a
  1008.                             type-converted parameter may be incorrectly
  1009.                             inlined.
  1010. -------------------------------------------------------------------------
  1011.  PJ11881         CFE        Sizeof typedef within sizeof sometimes
  1012.                             returns arbitrary value.
  1013. -------------------------------------------------------------------------
  1014.  PJ11929         CFE        If the argument list of a macro is supplied
  1015.                             via another macro, the macro might not be
  1016.                             expanded as expected.
  1017. -------------------------------------------------------------------------
  1018.  PJ11889         CRT        If the function that executes when a thread
  1019.                             begins execution calls 16-bit code, then
  1020.                             EDCThunkProlog is called from within the
  1021.                             function prolog.  EDCThunkProlog tries to
  1022.                             access data that is outside the stack frame,
  1023.                             and since this is the first frame on the
  1024.                             stack, that storage is not allocated to the
  1025.                             stack.  A protection exception occurs.
  1026. =========================================================================
  1027.                CTC0005 is informal Corrective Service
  1028. The following fixes are provided in Compiler CS CTC0005 and later CS
  1029. *************************************************************************
  1030. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  1031.  ------------------------------------------------------------------------
  1032.  PJ11625         BE         Optimization Problem: Compiling source that
  1033.                             contains floating-point code could cause a
  1034.                             compile-time trap in the backend.
  1035.  ------------------------------------------------------------------------
  1036.  PJ11688         BE         Optimization Problem: Statements of the form
  1037.                             "do { i++; } while (condition); i--;" could
  1038.                             be incorrectly optimized.
  1039.  ------------------------------------------------------------------------
  1040.  PJ11692         BE         Incorrect debug info could be generated for a
  1041.                             data member of a class with type "char *
  1042.                             const".
  1043.  ------------------------------------------------------------------------
  1044.  PJ11695         BE         Optimization Problem: Instruction scheduling
  1045.                             could clobber the result of constant multiply
  1046.                             across a call.
  1047.  ------------------------------------------------------------------------
  1048.  PJ11696         BE         Optimization Problem: Using an int variable
  1049.                             as an array of chars within a loop could
  1050.                             result in incorrect code generation.
  1051.  ------------------------------------------------------------------------
  1052.  PJ11697         BE         Optimization Problem: Statements of the form
  1053.                             "while (cond) { if (--i) { i++; break; } }"
  1054.                             could be incorrectly optimized.
  1055.  ------------------------------------------------------------------------
  1056.  PJ11698         BE         Optimization Problem: If the "count" paramter
  1057.                             of strncat() is a builtin string function,
  1058.                             incorrect code could be generated.
  1059.  ------------------------------------------------------------------------
  1060.  PJ11699         BE         Optimization Problem: Tail calling a _Pascal
  1061.                             function from another function could result
  1062.                             in an exception at run-time.
  1063.  ------------------------------------------------------------------------
  1064.  PJ11701         BE         strncat() could copy one byte even if "count"
  1065.                             parameter is a variable of value 0.
  1066.  ------------------------------------------------------------------------
  1067.  QUAL-IMP        BE         Optimization Problem: Adding two negative
  1068.                             numbers and then negating the result could be
  1069.                             optimized incorrectly.
  1070.  ------------------------------------------------------------------------
  1071.  QUAL-IMP        BE         Without optimization, an expression of the
  1072.                             form "*((char*)&array[index]+i)" could
  1073.                             generate an incorrect OBJ even though the
  1074.                             ASM is correct.
  1075.  ------------------------------------------------------------------------
  1076.  PJ11491         C++FE      new() is not returning a valid pointer when
  1077.                             allocating a 0-sized array.
  1078.  ------------------------------------------------------------------------
  1079.  PJ11492         C++FE      The delete() operator for an object was not
  1080.                             being called with the debug parameters when
  1081.                             that object was being deleted because its
  1082.                             constructor threw an exception.
  1083.  ------------------------------------------------------------------------
  1084.  PJ11574         C++FE      Reduce the long link times and large swapper
  1085.                             file created when linking C++ programs that
  1086.                             contain templates.
  1087.  ------------------------------------------------------------------------
  1088.  PJ11575         C++FE      If a virtual base class appears more than
  1089.                             once in the class hierarchy, then one copy of
  1090.                             if may be initialized several times and the
  1091.                             other copies not initialized.
  1092.  ------------------------------------------------------------------------
  1093.  PJ11584         C++FE      The compiler may crash when generating debug
  1094.                             information for a class that has no
  1095.                             user-supplied nor compiler-generated inline
  1096.                             functions.  This is rare, since there are
  1097.                             usually some compiler-generated ones.
  1098.  ------------------------------------------------------------------------
  1099.  PJ11585         C++FE      If a C++ compilation includes definitions of
  1100.                             classes that contain virtual functions, all
  1101.                             of which are inline functions, the compiler
  1102.                             will generate those classes and functions
  1103.                             whether or not they are actually used.  This
  1104.                             fix generates them only when necessary
  1105.  ------------------------------------------------------------------------
  1106.  QUAL-IMP        C++FE      A C++ program containing a brace-enclosed
  1107.                             statement block outside of a function body
  1108.                             crashes the front-end when compiled with
  1109.                             /Wuse+ if there is an unused label define
  1110.                             in the block
  1111.  ------------------------------------------------------------------------
  1112.  QUAL-IMP        C++FE      A goto within a catch block is incorrectly
  1113.                             diagnosed as a jump into the catch block,
  1114.                             which is illegal since it bypasses
  1115.                             initialization of the catch variable
  1116.  ------------------------------------------------------------------------
  1117.  QUAL-IMP        C++RT      Fixed memory leak that occurred when memory
  1118.                             is allocated for an object however, it is not
  1119.                             constructed because it's constructor threw an
  1120.                             exception.
  1121.  ------------------------------------------------------------------------
  1122.  PJ11702         CFE        The compiler is not recognizing a constant
  1123.                             expression properly when initialization
  1124.                             involves an array within a structure within
  1125.                             an array of structures
  1126.  ------------------------------------------------------------------------
  1127.  PJ11703         CFE        Using CSD 1 of C Set ++, the test case is
  1128.                             expected to have a warning message, but the
  1129.                             compiler should not be trapping.
  1130.  ------------------------------------------------------------------------
  1131.  PJ11686         CRT        The problem lies in reading across memory
  1132.                             blocks.  The code did not take into account
  1133.                             of the number of characters read in from the
  1134.                             previous blocks and hence reading more than
  1135.                             necessary.
  1136.  ------------------------------------------------------------------------
  1137.  PJ11687         CRT        AL register will now be set by the library
  1138.                             when making a call to DosGetMessage.
  1139. =========================================================================
  1140.                CTC0004 is informal Corrective Service
  1141. The following fixes are provided in Compiler CS CTC0004 and later CS
  1142. *************************************************************************
  1143. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  1144.  ------------------------------------------------------------------------
  1145.  PJ11127         BE         Optimization Problem: Multiplying a variable
  1146.                             by a constant and the adding or subtracting 1
  1147.                             could result in incorrect code generation.
  1148.  ------------------------------------------------------------------------
  1149.  PJ11128         BE         Optimization Problem: An internal problem
  1150.                             could result in traps or unexpected results
  1151.                             with 32 to 16 or 16 to 32 code.
  1152.  ------------------------------------------------------------------------
  1153.  PJ11129         BE         Optimization Problem: In rare circumstances,
  1154.                             doing arithmetic with shorts could result in
  1155.                             traps or unexpected results.
  1156.  ------------------------------------------------------------------------
  1157.  PJ11134         BE         Optimization Problem: The result of a right
  1158.                             shift of a negative value, though
  1159.                             implementation defined, could differ at /O-
  1160.                             and /O+.
  1161.  ------------------------------------------------------------------------
  1162.  PJ11135         BE         Optimization Problem: The backend could abort
  1163.                             with fatal error EDC4005 in intermediate file
  1164.                             ROOPT when optimizing an if-then-else.
  1165.  ------------------------------------------------------------------------
  1166.  PJ11137         BE         Optimization Problem: Expressions of the
  1167.                             form: "*(float *) &var", where var is an int,
  1168.                             could cause a compile-time back-end trap.
  1169.  ------------------------------------------------------------------------
  1170.  PJ11138         BE         Optimization Problem: An internal problem
  1171.                             occuring when compiling floating-point code
  1172.                             could cause a compile-time back-end trap.
  1173.  ------------------------------------------------------------------------
  1174.  PJ11139         BE         Incorrect code could be generated when
  1175.                             negating a char variable and then storing the
  1176.                             result into an int variable.
  1177.  ------------------------------------------------------------------------
  1178.  PJ11140         BE         Optimization Problem: Statements of the form:
  1179.                             "x--; if (cond) x += 2;" may be incorrectly
  1180.                             optimized.
  1181.  ------------------------------------------------------------------------
  1182.  PJ11141         BE         Run-time traps could occur in code using 16
  1183.                             to 32 callback functions if the code crossed
  1184.                             a 64K boundary.
  1185.  ------------------------------------------------------------------------
  1186.  PJ11142         BE         When using strncat(), an extra NULL was being
  1187.                             appended to the end of the destination string
  1188.                             if the length of the source string was less
  1189.                             than "n".
  1190.  ------------------------------------------------------------------------
  1191.  PJ11143         BE         Optimization Problem: Statements of the form:
  1192.                             "if (!x) {y = 0;} else {y = 1;}" could cause
  1193.                             a compile-time trap if x is a float-point
  1194.                             type.
  1195.  ------------------------------------------------------------------------
  1196.  QUAL-IMP        BE         Under certain conditions, the optimizer could
  1197.                             leave around some useless LEA instructions.
  1198.                             This has now been fixed.
  1199.  ------------------------------------------------------------------------
  1200.  QUAL-IMP        BE         When exporting callback functions, an
  1201.                             incorrect symbol could be used, resulting in
  1202.                             link errors.
  1203.  ------------------------------------------------------------------------
  1204.  PJ11176         CFE        Compiler generates incorrect code for
  1205.                             referencing array of array in structure
  1206.                             with array index of 0.
  1207.                             ie:  a.b[i][0].c = 1;  a.b[i]->c = 2;
  1208.  ------------------------------------------------------------------------
  1209.  PJ11177         CFE        If a variable is first declared and then
  1210.                             initialized both with a typedef type and
  1211.                             a qualifier, the compiler generates incorrect
  1212.                             code.
  1213.                             ie:  const typedef_name var;
  1214.                                  const typedef_name var = 0;
  1215.  ------------------------------------------------------------------------
  1216.  PJ11179         CFE        When initializing a member of a structure
  1217.                             casting the member to _Seg16 pointer causes
  1218.                             unexpected compiler error.
  1219.  ------------------------------------------------------------------------
  1220.  PJ11180         CFE        When #pragma handler is specified for some
  1221.                             functions, the compiler randomly generates
  1222.                             incorrect code that exports some of those
  1223.                             functions.
  1224.  ------------------------------------------------------------------------
  1225.  PJ11181         C++FE      The following message is produced when both
  1226.                             sides of a conditional expression are the
  1227.                             same:
  1228.                             recoverable EDC4005: Error occured in
  1229.                                         intermediate file RBEXPR(4902)
  1230.  ------------------------------------------------------------------------
  1231.  PJ11182         C++FE      An initialized function-scope static variable
  1232.                             will cause the C++ front end to GPF if a
  1233.                             compiler temporary is required when
  1234.                             evaluating the initializing expression.
  1235.  ------------------------------------------------------------------------
  1236.  PJ11183         CRT        FILE struct members violate user name space.
  1237.  ------------------------------------------------------------------------
  1238.  PJ11185         CRT        MATHERR not handling domain errors.
  1239. =========================================================================
  1240.                CTC0003 is informal Corrective Service
  1241. The following fixes are provided in Compiler CS CTC0003 and later CS
  1242. *************************************************************************
  1243. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  1244.  ------------------------------------------------------------------------
  1245.  PJ10704         BE         Incorrect debug information could cause IPMD
  1246.                             to trap in DDE4BE32.DLL while debugging C++
  1247.                             programs.
  1248.  ------------------------------------------------------------------------
  1249.  PJ10705         BE         Incorrect debug information for const member
  1250.                             functions could cause expression evaluation
  1251.                             problems in IPMD.
  1252.  ------------------------------------------------------------------------
  1253.  PJ10706         BE         Incorrect debug information could cause IPMD
  1254.                             to hang when debugging large programs.
  1255.  ------------------------------------------------------------------------
  1256.  QUAL-IMP        BE         Incorrect debug information could confuse
  1257.                             IPMD while debugging C++ programs.
  1258.  ------------------------------------------------------------------------
  1259.  PJ10461         CRT        Serialization code used in the runtime
  1260.                             library may cause system traps. This
  1261.                             usually occurs when one of the thread
  1262.                             unexpectedly terminates.
  1263.  ------------------------------------------------------------------------
  1264.  PJ10703         C++RTL     CPPFILT utility truncates the mangled
  1265.                             function names if it is greater than 233
  1266.                             characters.
  1267. =========================================================================
  1268.                CTC0002 is formal Corrective Service
  1269. The following fixes are provided in Compiler CS CTC0002 and later CS
  1270. *************************************************************************
  1271. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  1272.  ------------------------------------------------------------------------
  1273.  PJ10544          BE        Optimization Problem: Compiling with /G5 /Ms
  1274.                             may optimize SUB ESP,4 into PUSH EAX at
  1275.                             inappropriate places.
  1276.  ------------------------------------------------------------------------
  1277.  PJ10545          BE        Incorrect code may be generated when copying
  1278.                             structures whose size is less than 12 bytes.
  1279.  ------------------------------------------------------------------------
  1280.  PJ10546          BE        Optimization Problem: An internal problem
  1281.                             during common subexpression elimination could
  1282.                             cause a compile-time exception.
  1283.  ------------------------------------------------------------------------
  1284.  PJ10547          BE        Optimization Problem: Incorrect code
  1285.                             generation may result when optimizing a loop
  1286.                             that contains a goto which acts like a break.
  1287.  ------------------------------------------------------------------------
  1288.  PJ10549          BE        Optimization Problem: Instruction scheduling
  1289.                             may move instructions out of the protected
  1290.                             area between _disable and _enable.
  1291.  ------------------------------------------------------------------------
  1292.  PJ10550          BE        Optimization Problem: Returning a floating
  1293.                             point value as an integer may cause problems
  1294.                             on machines without FP co-processors when
  1295.                             compiled with /O and either /G4 or /G5.
  1296.  ------------------------------------------------------------------------
  1297.  PJ10552          BE        The enum data offset field of a COMDAT placed
  1298.                             in a user segment was being set to a non-zero
  1299.                             value.
  1300.  ------------------------------------------------------------------------
  1301.  PJ10553          BE        Optimization Problem: An internal problem
  1302.                             could cause a compile-time trap when
  1303.                             compiling with /O+ /Gf+.
  1304.  ------------------------------------------------------------------------
  1305.  PJ10556          BE        The BE was not growing the number of file
  1306.                             handles available.  This caused a
  1307.                             compile-time exception when the BE ran out of
  1308.                             file handles.
  1309.  ------------------------------------------------------------------------
  1310.  PJ10557          BE        Optimization Problem: Calling a 32-bit
  1311.                             function from the last statement of a _Far16
  1312.                             _Pascal function could be compiled
  1313.                             incorrectly.
  1314.  ------------------------------------------------------------------------
  1315.  PJ10558          BE        Optimization Problem: The incorrect register
  1316.                             may be cleared when returning 0.
  1317.  ------------------------------------------------------------------------
  1318.  PJ10559          BE        A constant left-shifted by another constant
  1319.                             may be folded incorrectly when compiled with
  1320.                             /Gi.
  1321.  ------------------------------------------------------------------------
  1322.  PJ10560          BE        Optimization Problem: Tail call optimization
  1323.                             was being incorrectly applied to a call to a
  1324.                             pascal linkage function from a system linkage
  1325.                             function.
  1326.  ------------------------------------------------------------------------
  1327.  QUAL-IMP         BE        Optimization Problem: Bad register selection
  1328.                             around switch statements could cause
  1329.                             incorrect code generation.
  1330.  ------------------------------------------------------------------------
  1331.  QUAL-IMP         BE        With C++, returning a complex structure from
  1332.                             a function whose destructor has been inlined
  1333.                             could be compiled incorrectly.
  1334.  ------------------------------------------------------------------------
  1335.  QUAL-IMP         BE        An internal problem could cause a
  1336.                             compile-time trap when compiling, with /Gr
  1337.                             /Rn, a _Far32 _Pascal function that returns a
  1338.                             pointer.
  1339.  ------------------------------------------------------------------------
  1340.  PJ10478         CFE        The preprocessor was getting an internal
  1341.                             compiler error for certain macro expansion.
  1342.  ------------------------------------------------------------------------
  1343.  PJ10477         CFE        If a source/header file contains null
  1344.                             characters, the compiler gets an internal
  1345.                             compiler error and may result in a huge
  1346.                             swapper that may bring down your system.
  1347.  ------------------------------------------------------------------------
  1348.  QUAL-IMP        CFE        Error message was being erroneously issued
  1349.                             when '_Export" keyword or '#pragma export'
  1350.                             are specified more than once for the same
  1351.                             object.
  1352.  ------------------------------------------------------------------------
  1353.  PJ10566       C++FE        Conversion function results in an
  1354.                             unconstructed temporary. No constructor was
  1355.                             called for the temporary object.
  1356.  ------------------------------------------------------------------------
  1357.  PJ10567       C++FE        When passing a class as a by value parameter
  1358.                             a temporary is not used and the class is
  1359.                             passed by reference.
  1360.  ------------------------------------------------------------------------
  1361.  PJ10568       C++FE        Member friend incorrectly inherits function
  1362.                             linkage from linkage specifier.
  1363.  ------------------------------------------------------------------------
  1364.  PJ10569       C++FE        Invalid Error message EDC3458 produced.
  1365.  ------------------------------------------------------------------------
  1366.  PJ10570       C++FE        GPF calling virtual member function of a
  1367.                             template class when the module uses #pragma
  1368.                             data_seg.
  1369.  ------------------------------------------------------------------------
  1370.  PJ10571       C++FE        Invalid error for postfix operator ++ on a
  1371.                             reference in a conditional expression.
  1372.  ------------------------------------------------------------------------
  1373.  PJ10572       C++FE        Invalid error message EDC3276 and GPF when
  1374.                             compiling a conditional expression.
  1375.  ------------------------------------------------------------------------
  1376.  QUAL-IMP      C++FE        Runtime GPF accessing static data member
  1377.                             at location 0.
  1378.  ------------------------------------------------------------------------
  1379.  QUAL-IMP      C++FE        /Ms causes a runtime GPF when exception
  1380.                             handling is used.
  1381.  ------------------------------------------------------------------------
  1382.  PJ10462         CRT        Thunk Prologue incorrectly probes stack
  1383.                             causing system traps. This may occur
  1384.                             with any 32-16 calls not in thread one.
  1385.  ------------------------------------------------------------------------
  1386.  QUAL-IMP        CRT        Free not handling debug object. An debug
  1387.                             memory object (as allocated by the debug
  1388.                             memory routine) can cause system trap
  1389.                             after it is passed to the regular free()
  1390.                             function for freeing.
  1391.  ------------------------------------------------------------------------
  1392.  QUAL-IMP        CRT        Spawn/Exec family functions should ignore
  1393.                             net error. If the net error is not ignored,
  1394.                             the search on the PATH stops prematurely,
  1395.                             which may cause spawns/exec functions not to
  1396.                             find any program whose path appears
  1397.                             after the net work path causing the error.
  1398.  ------------------------------------------------------------------------
  1399.  QUAL-IMP       UTIL        Compiler dialog did not parse a file when the
  1400.                             file contains a '//' comment.  It ignored
  1401.                             lines after the '//' character until a blank
  1402.                             line is reached.
  1403.  ------------------------------------------------------------------------
  1404.  QUAL-IMP       UTIL        Dialog did not free up memory when saving
  1405.                             or retrieving information to/from the project
  1406.                             file extended attribute.
  1407. =========================================================================
  1408.                CTC0001 is informal Corrective Service
  1409. The following fixes are provided in Compiler CS CTC0001 and later CS
  1410. *************************************************************************
  1411. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  1412.  ------------------------------------------------------------------------
  1413.  PJ09575        DOC         Hitting Ctrl H in EPM for contextual help
  1414.                             did not work for printf or scanf.  A change
  1415.                             was made in the DDE4CLIB.NDX file..
  1416.  ------------------------------------------------------------------------
  1417.  QUAL-IMP       ICC         When /Fa compilation switch was used to
  1418.                             create assembler file, and a template file
  1419.                             was compiled, the compiler trapped.
  1420.  ------------------------------------------------------------------------
  1421.  QUAL-IMP       ICC         Added the description of /Tm option to ICC
  1422.                             help.
  1423.  ------------------------------------------------------------------------
  1424.  PJ09573        FE          Fixed the compiler to disallow illegal
  1425.                             initialization of two-dimensional array
  1426.                             of char with character string without braces.
  1427.  ------------------------------------------------------------------------
  1428.  PJ09574        FE          Structure initialization failed with an
  1429.                             extra set of braces.
  1430.  ------------------------------------------------------------------------
  1431.  QUAL-IMP       FE          Usage of _Export keyword caused the compiler
  1432.                             to fail.
  1433.  ------------------------------------------------------------------------
  1434.  QUAL-IMP      UTIL         Beta project causes Workframe to trap.
  1435.  ------------------------------------------------------------------------
  1436.  QUAL-IMP      UTIL         Update English panels to fix a Japanese
  1437.                             VGA screen.
  1438.  ------------------------------------------------------------------------
  1439.  QUAL-IMP      UTIL         Remove the minimize capability of the
  1440.                             notebook dialog.
  1441.  ------------------------------------------------------------------------
  1442.  QUAL-IMP      UTIL         No keyboard focus when the notebook dialog
  1443.                             first appears.
  1444.  ------------------------------------------------------------------------
  1445.  QUAL-IMP      UTIL         Incorrect focus when Alt key is pressed
  1446.                             inside a dialog.
  1447.  ------------------------------------------------------------------------
  1448.  QUAL-IMP      UTIL         /Xc should not generate any command line
  1449.                             include paths.
  1450.  ------------------------------------------------------------------------
  1451.  QUAL-IMP      C++FE        The /Ms option is changing the linkage of
  1452.                             internally declared compiler functions.
  1453.                             This can result in runtime traps when using
  1454.                             memory management or C++ exception handling.
  1455.  ------------------------------------------------------------------------
  1456.  QUAL-IMP      C++FE        The linker fails when using /ND to rename
  1457.                             a data segment.  The compiler is generating
  1458.                             bad code for partially initialized
  1459.                             structures.
  1460.  ------------------------------------------------------------------------
  1461.  QUAL-IMP      C++FE        Using the compiler options /La or /Lb causes
  1462.                             the compiler to trap.
  1463.  ------------------------------------------------------------------------
  1464.  PJ09576       C++FE        Linking a program that contains templates
  1465.                             causes an invalid error to be generated by
  1466.                             lib.exe.  The error is "LIB0007: Error :
  1467.                             Unable to open D:\00900000.6.OBJ"
  1468.  ------------------------------------------------------------------------
  1469.  PJ09577       C++FE        Large program with many template functions,
  1470.                             (more than 1023), traps at runtime.
  1471.  ------------------------------------------------------------------------
  1472.  PJ09578       C++FE        When linking programs that contain templates
  1473.                             and object files that were generated by TASM
  1474.                             the message: "Unknown Record Type {ox..},
  1475.                             offset {..} is generated.
  1476.  ------------------------------------------------------------------------
  1477.  PJ09579       C++FE        The compiler is incorrectly resolving to a
  1478.                             function template instead of using a
  1479.                             previously declared member function.
  1480.  ------------------------------------------------------------------------
  1481.  PJ09580       C++FE        Object destructors are not always run after
  1482.                             a throw statement.
  1483.  ------------------------------------------------------------------------
  1484.  PJ09581       C++FE        Compiling code that uses _Far16 and _Pascal
  1485.                             keywords causes an internal compiler error:
  1486.                             "Exception #C0000005: 30751 occurred in
  1487.                             file .., function .."
  1488.  ------------------------------------------------------------------------
  1489.  QUAL-IMP      C++RT        Incorrectly handling exceptions in multiple
  1490.                             runtime environments.
  1491.  ------------------------------------------------------------------------
  1492.  PJ09568         BE         Compiling source files with the same names
  1493.                             may result in conflicting BSS static areas.
  1494.  ------------------------------------------------------------------------
  1495.  PJ09570         BE         Optimization Problem: Incorrect code could be
  1496.                             generated when the result of a comparison is
  1497.                             subtracted from a variable.
  1498.  ------------------------------------------------------------------------
  1499.  PJ09571         BE         The debug info could become corrupted in very
  1500.                             large files which results in only assembler
  1501.                             view being available within IPMD.
  1502.  ------------------------------------------------------------------------
  1503.  PJ09572         BE         Optimization Problem: An internal problem
  1504.                             during loop optimizations could cause a
  1505.                             compile-time exception in the back-end.
  1506.  ------------------------------------------------------------------------
  1507.  PJ09569         BE         Optimization Problem: Incorrect code could be
  1508.                             produced for loops ending with an
  1509.                             if-then-else where the last statement of the
  1510.                             else is a break.
  1511.  ------------------------------------------------------------------------
  1512.  QUAL-IMP        BE         Optimization Problem: An internal problem in
  1513.                             store removal could cause incorrect code.
  1514.  ------------------------------------------------------------------------
  1515.  QUAL-IMP        BE         Optimization Problem: An internal problem
  1516.                             may cause a compile-time exception in the
  1517.                             back-end.
  1518.  ------------------------------------------------------------------------
  1519.  QUAL-IMP        BE         Incorrect code generation for _Far16 _Pascal
  1520.                             functions that return floating-point types
  1521.                             could cause a run-time exception.
  1522.  ------------------------------------------------------------------------
  1523.  QUAL-IMP        BE         Optimization Problem: An internal problem,
  1524.                             when compiling with /Ti+, may cause incorrect
  1525.                             code generation for breaks within loops.
  1526.  ------------------------------------------------------------------------
  1527.  QUAL-IMP        BE         Optimization Problem: The optimizer was
  1528.                             incorrectly folding (0 / x) and (0 % x).
  1529.  ------------------------------------------------------------------------
  1530.  QUAL-IMP        BE         Casting a floating-point value to int and
  1531.                             then comparing the result to another int that
  1532.                             was previously cast from a floating-point
  1533.                             value may produce incorrect results.
  1534. =========================================================================
  1535.