c/7139: Shifting 1 through a 64bit int fails at 32bit line
Simon Shapiro
shimon@nomis-storage.com
Thu Jun 27 16:06:00 GMT 2002
Thax for looking into this problem.
However, I would like to suggest that you may have dismissed the
problem a bit too quickly.
I am making this bold assumption based on my understanding that:
1 << 31 = 0x0000000080000000, and not 0xffffffff80000000
1 << 32 = 0x0000000100000000, and not 0x0000000000000001
Am I wrong?
Perhaps the example was
too complicated. Try this one:
#include <stdio.h>
int
main()
{
unsigned long long i64;
int index;
for (index = 0; index < 64; index++) {
i64 = 1 << index;
(void)fprintf(stdout, "1 << %d = %qx\n", index, i64);
}
return(0);
}
-------------------
> Synopsis: Shifting 1 through a 64bit int fails at 32bit line
>
> State-Changed-From-To: open->closed
> State-Changed-By: mmitchel
> State-Changed-When: Thu Jun 27 15:07:03 2002
> State-Changed-Why:
> Not a defect.
>
>
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=g
cc&pr=7139
>
Sincerely,
Simon Shapiro, CEO
Nomis Storage, Inc.
More information about the Gcc-bugs
mailing list