On Mon, Dec 19, 2016 at 1:26 PM, Jakub Jelinek <jakub(a)redhat.com> wrote:
On Mon, Dec 19, 2016 at 01:20:14PM -0500, Neal Gompa wrote:
> >> The most common source is <altivec.h> from GCC.
> >
> > These days (for several GCC releases), powerpc as well as spu and recently
> > also s390 (z13) use conditional macros for bool, vector, pixel and _Bool,
> > which expand differently depending on what is the following token.
> > But the conditional macros are defined only in the non-strict C/C++ modes,
> > the above is compiled with -std=c++11 rather than -std=gnu++11, but then
> > one shouldn't include altivec.h if they want standard behavior.
> > Alternative is to include altivec.h and
> > #undef vector
> > #undef pixel
> > #undef bool
> > and then of course you need to use __vector, __pixel and __bool instead of
> > vector, pixel or bool if you want the Altivec-ish behavior rather than
> > standard.
> >
So, first either find out what includes altivec.h and why, either avoid it
or undef the keywords afterwards, or use -std=gnu++11 mode rather than
-std=c++11 to make sure the macros are contextual.
Switching to gnu++11 fixed it. Thanks!
--
真実はいつも一つ!/ Always, there's only one truth!