[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 01/16] xen/mm: Don't use _{g, m}fn for defining INVALID_{G, M}FN
At 09:58 +0100 on 23 Jun (1498211910), Tim Deegan wrote: > At 09:41 +0100 on 23 Jun (1498210893), Julien Grall wrote: > > On 23/06/17 09:30, Jan Beulich wrote: > > > > > >> typedef struct > > >> { > > >> unsigned long i; > > >> } mfn_t; > > >> > > >> mfn_t v = (const mfn_t){~0UL}; > > > > > > ... this now with 7.1.0, 6.3.0, 5.4.0, 5.2.0, and 4.9.3, and all > > > of them compile this without errors or warnings (at -Wall -W). > > > For 4.9.3 I've also specifically taken care to try not only the > > > x86 compiler, but also the arm32 and arm64 ones. So I'm afraid > > > I lack enough detail to understand what the issue is and what a > > > solution may look like. > > > > I don't have much except the following error: > > > > /tmp/test.c:6:1: error: initializer element is not constant > > mfn_t v = (const mfn_t){~0UL}; > > ^ > > > > If it works for you on 4.9, then it might be a bug in the GCC provided > > by Linaro and will report it. > > This fails for me on x86 gcc 4.9.4, using -xc -std=gnu99. The > complaint is valid, as Jan pointed out: the literal is a static object > and so not a valid initializer. GCC also complains about the > 'debug' version for the same reason. :( > > Using a plain initializer works OK for both debug and non-debug: > > mfn_t v = {~0UL}; > > but I haven't checked whether other compilers like that as well. And that wouldn't work for things like f(INVALID_MFN) -- sometimes we actually do want the literal. Tim. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |