public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Compiler warnings, overflow
@ 2014-07-31 17:00 Ricardo Telichevesky
  2014-07-31 17:12 ` Andrew Haley
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Ricardo Telichevesky @ 2014-07-31 17:00 UTC (permalink / raw)
  To: gcc-help

Hi, hope this is the right list.

Here is my code and output, at the bottom of the e-mail. y is "correct", w and z obviously have problems - multiplying two 32-bit integers "hoping" the result would be correct assigning to 64-bit - I guess it is the same problem as double oneThird= 1/3;  the result being zero, and not 0.3333.

I was wondering if there is any strict warning that would flag the w and z assignments below, or the 1/3 above - the whole right hand side is evaluated as a 32-bit integer number, and assigned to a 64-bit integer or double. Not advocating this should be a default, but turning it on would help me 
detect some flaws in the code. Took me hours to catch  a similar bug in my code, trying to solve a sparse system that has hundreds of millions of variables...

Thanks!
     Ricardo

laplace utils % cat ovr.c
#include <stdio.h>
int main()
{

     unsigned int x = 1015625426;
     unsigned int t = sizeof(double);

     size_t  y = x * sizeof(double);
     size_t  w = x << 3;
     size_t  z = x * t;

     printf("y= %zd  w = %zd z = %zd\n", y, w, z);
}
laplace utils % gcc -Wall -o ovr ovr.c
laplace utils % ovr
y= 8125003408  w = 3830036112 z = 3830036112


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-08-01  8:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-31 17:00 Compiler warnings, overflow Ricardo Telichevesky
2014-07-31 17:12 ` Andrew Haley
2014-07-31 17:53 ` Manuel López-Ibáñez
2014-08-01  8:53 ` David Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).