[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#770670: g++: fails to compile in c++0x mode on ppc64el with std::vector and SDL



Control: reassign -1 libsdl2-dev
Control: severity -1 serious
Control: retitle -1 libsdl2-dev - SDL.h includes altivec.h, breaks c++ code

On Sun, Nov 23, 2014 at 08:54:52AM +0100, Johannes Schauer wrote:
> The issue seems to only appear when compiling with c++. It does not
> happen when compiling with clang++. Thus I'm reporting this bug against
> g++. Please reassign if this was the wrong conclusion.

The problem lies within SDL_cpuinfo.h.  It includes altivec.h, which by
definition[1] provides an unconditional vector, pixel and bool define in
standard-c++ mode.  In GNU-c++ mode this names are only defined
context-sensitive by cpp.  SDL_cpuinfo.h is included by SDL.h.

None of the SDL headers actually use vector or any of the vec_*
functions, so this include looks unused.

I re-assigned this bug to the correct package and made it RC.  Including
altivec.h makes arbitrary code break.

Greetings,
Bastian

[1]: https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/PowerPC-AltiVec_002fVSX-Built-in-Functions.html#PowerPC-AltiVec_002fVSX-Built-in-Functions
-- 
You!  What PLANET is this!
		-- McCoy, "The City on the Edge of Forever", stardate 3134.0


Reply to: