Date: Mon, 22 Sep 2014 09:20:34 -0700 From: Steve Kargl <sgk@troutmask.apl.washington.edu> To: Andriy Gapon <avg@FreeBSD.org> Cc: freebsd-toolchain@FreeBSD.org, Rui Paulo <rpaulo@me.com> Subject: Re: Is this a compiler bug? Message-ID: <20140922162034.GA7918@troutmask.apl.washington.edu> In-Reply-To: <541FB79F.1070002@FreeBSD.org> References: <20140922011946.GA4317@troutmask.apl.washington.edu> <670269FD-F75F-4044-8F3C-0260F58A70E2@me.com> <20140922014853.GA4469@troutmask.apl.washington.edu> <2EB3354D-0F65-4A79-A378-7F397911284A@me.com> <541FB79F.1070002@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Sep 22, 2014 at 08:46:07AM +0300, Andriy Gapon wrote: > On 22/09/2014 05:20, Rui Paulo wrote: > > On Sep 21, 2014, at 18:48, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote: > >> On Sun, Sep 21, 2014 at 06:38:48PM -0700, Rui Paulo wrote: > >>> On Sep 21, 2014, at 18:19, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote: > >>>> > >>>> #include <stdio.h> > >>>> #include <stdint.h> > >>>> > >>>> int > >>>> main(void) > >>>> { > >>>> uint16_t i; > >>>> i = 0x3ffe+63; printf("%x\n", i); > >>>> return 0; > >>>> } > >>> > >>> Looks like it. Please file a bug report with LLVM. > >>> > >> > >> Unfortunately, llvm requires an account to report bugs. > > > > I think I know what's happening: "e" is being parsed as > > scientific notation. > > Interesting! One of the cases where the whitespace matters? > In a discussion on a GCC list, I was pointed to the section of n1256.pdf where preprocessing numbers are discussed. 0x3ffe+63 is preprocessed as a single token. When the parser finally gets around to classifying this token, it is neither a valid integer constant nor floating point constant. It's just a weird feature (idiosyncrasy?) of the C language. -- Steve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140922162034.GA7918>