From: dmm@vnet.ibm.com (dave)
Date: Sat, 29 Aug 92 12:21:33 EDT
Newsgroups: comp.os.os2.programmer
Subject: Re: New CSD for C Set/2
Organization: IBM Canada Lab
News-Software: UReply 3.0
X-X-From: dmm@vnet.ibm.com (Dave Mooney)

            <1992Aug28.214305.11133@midway.uchicago.edu>

In <1992Aug28.214305.11133@midway.uchicago.edu> Timothy F. Sipples writes:
> In article <21269@optima.cs.arizona.edu> merrill@cs.arizona.edu (Darren Merrill) writes:
>> Well, I've been told that a new CSD (CS00013 ?) for C Set/2 is out.
>> This one includes fixes for two of 'my' bugs.  Would some kind
>> sole grab it from CompuServe (when it comes across)
>> and send it on to Hobbes?  Thanks.
>
> It will be there in short order.

Thanks, Timothy.  And for anyone who is interested, here's a list of
fixes which CS000013 contains.  dave

--- >8 --- Cut here ---

  C SET/2 RELEASE 1.0 FIXES
  _________________________

  +-----------+---------------------------------------------------------------+
  | APAR      | PROBLEM DESCRIPTION                                           |
  | NUMBER    |                                                               |
  +-----------+---------------------------------------------------------------+
  | PJ03523   | Optimization problem: bad register selection causes general   |
  |           | protection fault at runtime.                                  |
  +-----------+---------------------------------------------------------------+
  | PJ03662   | Optimization problem: bad register selection around a call    |
  |           | causes incorrect output at runtime.                           |
  +-----------+---------------------------------------------------------------+
  | PJ03682   | Optimization problem: tail call optimization was altering a   |
  |           | register erroneously.                                         |
  +-----------+---------------------------------------------------------------+
  | PJ03767   | The compiler could not open files with names containing DBCS  |
  |           | characters where the second byte of the characters was 0x5C.  |
  +-----------+---------------------------------------------------------------+
  | PJ03923   | Optimization problem: generated floating-point code was       |
  |           | causing the floating point register stack to overflow or      |
  |           | underflow.                                                    |
  +-----------+---------------------------------------------------------------+
  | PJ03948   | Optimization problem: multiplying by constant negative        |
  |           | numbers which are powers of 2 was causing incorrect code to   |
  |           | be generated.                                                 |
  +-----------+---------------------------------------------------------------+
  | PJ03952   | Optimization problem: multiplying by constants that are near  |
  |           | powers of 2 was causing incorrect code to be generated.       |
  +-----------+---------------------------------------------------------------+
  | PJ03957   | Compiler was emitting object records longer than the linker's |
  |           | 1024 byte limit.  This causes the linker to produce the       |
  |           | message "L1057: data record too large".  NOTE: There is more  |
  |           | than one cause for this symptom and there is another fix      |
  |           | coming soon.                                                  |
  +-----------+---------------------------------------------------------------+
  | NOAPAR    | Compile time performance was improved.                        |
  +-----------+---------------------------------------------------------------+
  | NOAPAR    | The compiler was unable to find files in a subdirectory on a  |
  |           | LAN drive.                                                    |
  +-----------+---------------------------------------------------------------+
  | NOTE:  The fixes listed above were included in CSD0008.                   |
  +-----------+---------------------------------------------------------------+
  | PJ04295   | The kbhit library function was not working.                   |
  +-----------+---------------------------------------------------------------+
  | NOTE:  The fixes listed above were included in CSD0009.                   |
  +---------------------------------------------------------------------------+
  | PJ04465   | The cprintf, fprintf, printf, and sprintf functions were not  |
  |           | printing floating-point values between 0.5 and 1.0 correctly  |
  |           | when zero precision was specified.                            |
  +-----------+---------------------------------------------------------------+
  | NOTE:  The fixes listed above were included in CSD0010.                   |
  +-----------+---------------------------------------------------------------+
  | PJ04602   | Optimization problem: simple loops with induction variable    |
  |           | increments greater than one were being incorrectly turned     |
  |           | into memset or memcpy builtin function calls.                 |
  +-----------+---------------------------------------------------------------+
  | PJ04604   | When the compiler turned switch statements into jump tables,  |
  |           | the default code segment was always being referenced even if  |
  |           | the function containing the switch statement was specified in |
  |           | an alloc_text pragma.                                         |
  +-----------+---------------------------------------------------------------+
  | PJ04652   | Optimization problem: the stack pointer was not being decre-  |
  |           | mented before an indirect _Optlink call where the return      |
  |           | value was being used as a parameter to a tail call.           |
  +-----------+---------------------------------------------------------------+
  | PJ04674   | When #pragma handler was specified for a 32-bit callback      |
  |           | function the compiler generated bad code for copying the      |
  |           | parameters from the 16-bit stack to the 32-bit stack.         |
  +-----------+---------------------------------------------------------------+
  | NOTE:  The fixes listed above were included in CSD0011.                   |
  +-----------+---------------------------------------------------------------+
  | PJ04811   | Incorrect code was being generated for a complicated          |
  |           | expression where a short variable was being added to the      |
  |           | address of an element of an array of structures.              |
  +-----------+---------------------------------------------------------------+
  | PJ05088   | Optimization problem: the compiler was trapping when opti-    |
  |           | mizing a loop containing a divide and modulo operation with   |
  |           | the same operands.                                            |
  +-----------+---------------------------------------------------------------+
  | PJ05100   | Optimization problem: incorrect code was being generated for  |
  |           | a switch statement containing a case zero where the switch    |
  |           | variable had to be converted to an int from an unsigned char. |
  +-----------+---------------------------------------------------------------+
  | PJ05124   | Incorrect code was being generated when the result of com-    |
  |           | paring two shorts with less than or greater than operators    |
  |           | was stored into an integer variable.                          |
  +-----------+---------------------------------------------------------------+
  | PJ05140   | Incorrect code was being generated for _Optlink functions     |
  |           | that have a number of floating-point or aggregate parameters  |
  |           | followed by integer parameters.                               |
  +-----------+---------------------------------------------------------------+
  | NOTE:  The fixes listed above were included in CSD0012.                   |
  +---------------------------------------------------------------------------+
  | PJ05013   | The compiler was trapping when trying to compile a compli-    |
  |           | cated expression where the address of an element of an array  |
  |           | of structures was indexed and then a member of the structure  |
  |           | was accessed.                                                 |
  +-----------+---------------------------------------------------------------+
  | PJ04674   | The problem with #pragma handler on callback functions was    |
  |           | really only a problem with _Far16 _Cdecl callback functions.  |
  |           | So the fix in CSD0011 broke the case where #pragma handler    |
  |           | was used on a _Far16 _Pascal callback function.  Now both     |
  |           | work.                                                         |
  +-----------+---------------------------------------------------------------+
  | PJ04390   | The C runtime termination routine was not freeing all storage |
  |           | allocated during initialization.                              |
  +-----------+---------------------------------------------------------------+
  | PJ05087   | Partial static initialization of a structure containing a     |
  |           | union containing a structure containing bitfields was not     |
  |           | working.                                                      |
  +-----------+---------------------------------------------------------------+
  | NOAPAR    | Some enhancements were made to the compiler to reduce memory  |
  |           | usage during compilation and therefore reduce compile times.  |
  +-----------+---------------------------------------------------------------+
  | NOTE:  The fixes listed above were included in CSD0013.                   |
  +---------------------------------------------------------------------------+
Newsgroups: comp.os.os2.programmer