Changeset 1ca456 in git


Ignore:
Timestamp:
Nov 2, 2012, 2:30:28 PM (10 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
Children:
665ca84bd3cc340311b38ceff7974b3261b7a24e
Parents:
12777c5748c82636b06dbe5ed71f2459864064c1
Message:
fix: int overflow in interpreter
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/iparith.cc

    r12777c r1ca456  
    869869  int a=(int)(long)u->Data();
    870870  int b=(int)(long)v->Data();
    871   int c=a * b;
    872   if ((b!=0) && (c/b !=a))
     871  int64 c=(int64)a * (int64)b;
     872  if ((c>INT_MAX)||(c<INT_MIN))
    873873    WarnS("int overflow(*), result may be wrong");
    874   res->data = (char *)((long)c);
     874  res->data = (char *)((long)((int)c));
    875875  if ((u->Next()!=NULL) || (v->Next()!=NULL))
    876876    return jjOP_REST(res,u,v);
Note: See TracChangeset for help on using the changeset viewer.