comparison gcc/fold-const.c @ 47:3bfb6c00c1e0

update it from 4.4.2 to 4.4.3.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Sun, 07 Feb 2010 17:44:34 +0900
parents 58ad6c70ea60
children 77e2b8dfacca
comparison
equal deleted inserted replaced
46:b85a337e5837 47:3bfb6c00c1e0
326 { 326 {
327 unsigned HOST_WIDE_INT l; 327 unsigned HOST_WIDE_INT l;
328 HOST_WIDE_INT h; 328 HOST_WIDE_INT h;
329 329
330 l = l1 + l2; 330 l = l1 + l2;
331 h = h1 + h2 + (l < l1); 331 h = (HOST_WIDE_INT) ((unsigned HOST_WIDE_INT) h1
332 + (unsigned HOST_WIDE_INT) h2
333 + (l < l1));
332 334
333 *lv = l; 335 *lv = l;
334 *hv = h; 336 *hv = h;
335 337
336 if (unsigned_p) 338 if (unsigned_p)
337 return (unsigned HOST_WIDE_INT) h < (unsigned HOST_WIDE_INT) h1; 339 return ((unsigned HOST_WIDE_INT) h < (unsigned HOST_WIDE_INT) h1
340 || (h == h1
341 && l < l1));
338 else 342 else
339 return OVERFLOW_SUM_SIGN (h1, h2, h); 343 return OVERFLOW_SUM_SIGN (h1, h2, h);
340 } 344 }
341 345
342 /* Negate a doubleword integer with doubleword result. 346 /* Negate a doubleword integer with doubleword result.