home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / gnu / gcc / bug / 2726 < prev    next >
Encoding:
Text File  |  1992-11-11  |  1.5 KB  |  48 lines

  1. Newsgroups: gnu.gcc.bug
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!decwrl!netsys!agate!ames!sun-barr!cs.utexas.edu!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!twinsun.COM!eggert
  3. From: eggert@twinsun.COM (Paul Eggert)
  4. Subject: missing cast to USItype in libgcc2.c
  5. Message-ID: <9211120259.AA21156@farside.twinsun.com>
  6. Sender: gnulists@ai.mit.edu
  7. Organization: GNUs Not Usenet
  8. Distribution: gnu
  9. Date: Thu, 12 Nov 1992 02:59:34 GMT
  10. Approved: bug-gcc@prep.ai.mit.edu
  11. Lines: 35
  12.  
  13. A missing cast to (USItype) in libgcc2.c causes problems when sizeof(USItype)
  14. > sizeof(int), because it subtracts 2^31 instead of adding it.  This bug was
  15. discovered with the arithmetic overflow patches that I'll send in my next
  16. message.  Here is a patch.
  17.  
  18. Thu Nov 12 02:44:18 1992  Paul Eggert  (eggert@twinsun.com)
  19.  
  20.     * libgcc2.c (__udiv_w_sdiv): Avoid overflow when sizeof(USItype) >
  21.     sizeof(int).
  22.  
  23. ===================================================================
  24. RCS file: libgcc2.c,v
  25. retrieving revision 2.3.1.1
  26. retrieving revision 2.3.1.2
  27. diff -c -r2.3.1.1 -r2.3.1.2
  28. *** libgcc2.c    1992/11/06 11:59:59    2.3.1.1
  29. --- libgcc2.c    1992/11/12 02:44:18    2.3.1.2
  30. ***************
  31. *** 296,302 ****
  32.         /* Divide (c1*2^32 + c0) by d */
  33.         sdiv_qrnnd (q, r, c1, c0, d);
  34.         /* Add 2^31 to quotient */
  35. !       q += 1 << 31;
  36.       }
  37.       }
  38.     else
  39. --- 296,302 ----
  40.         /* Divide (c1*2^32 + c0) by d */
  41.         sdiv_qrnnd (q, r, c1, c0, d);
  42.         /* Add 2^31 to quotient */
  43. !       q += (USItype) 1 << 31;
  44.       }
  45.       }
  46.     else
  47.  
  48.