alkis at cs.uiuc.edu
Thu Jul 8 08:24:01 PDT 2004
On Thu, 2004-07-08 at 07:07, Vladimir Prus wrote:
> Vladimir Prus wrote:
> > Vladimir Prus wrote:
> > > The above-mentioned test contains this:
> > >
> > > long B53 = - (1LL << 53);
> > >
> > > strictly speaking, this is not correct code. The C standard says about
> > > shift: "if the value of the first operator is ... or greater than ... the
> > > width of the promoted left operand, the behaviour is underfined".
> > Forget this, I've missed the 'LL' suffix. Sorry for the noise.
> But the test still has a problem ;-)
> printf("%ld\n", Arg / (1LL << 4));
> Again, the passed value is long long, and format specifier is '%ld'. What
> about the attached patch?
I think testL has another problem. It takes a long argument which in C I
think is a 4-byte int, right?
More information about the llvm-dev