On Sun, Mar 01, 2015 at 10:26:10AM +0000, Justin Cormack wrote: > On 28 February 2015 at 21:38, Joerg Sonnenberger > <[email protected]> wrote: > > On Sat, Feb 28, 2015 at 01:16:11PM -0500, Christos Zoulas wrote: > >> On Feb 28, 5:46pm, [email protected] (Patrick Welche) wrote: > >> -- Subject: Re: rump and htonl() in constants > >> > >> | Yes - I have DBG=-g -O0 in Makefile.rump > >> | > >> | I thought that would help trying to step through a rump kernel in gdb - > >> not > >> | a good idea? (removing now) > >> | > >> | I suppose that is why no one else is seeing this... > >> > >> We could make this compile by adding an ifdef __OPTIMIZE__... > > > > No, if you want to fix it make it use fixed size conversion macro from > > sys/endian.h, it takes care of handling constants. > > It does for some architectures, but not for x86. Arm checks with > __builtin_constant_p and has a constant fallback, while x86 does not > it just uses assembly implementation always. > > That seems to be what needs fixing...
Seems to fit: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19449 trunk/gcc/testsuite/gcc.c-torture/execute/pr19449.c passes, but Ryan Lortie's test case doesn't => sounds like a gcc bug. So what should we do? Work around it? Stick to clang? Cheers, Patrick
