On 02/20/2017 09:27 AM, Jakub Jelinek wrote:
That looks like C++ and altivec.h on PowerPC. altivec.h changes the meaning of bool and vector keywords, so it is essential in what order and what mode you include it if you really need it (easiest is of course not include it at all). In general, for the non-ISO modes (i.e. -std=gnu++98, -std=gnu++11, -std=gnu++14, -std=gnu++17 etc.) altivec.h and preprocessor uses for these two context sensitive preprocessing, which usually works with most of the C++ code, while if you compile in strict ISO modes (-std=c++98, -std=c++11, -std=c++14, -std=c++17 etc.), then altivec.h redefines vector and bool to the altivec.h stuff, so in that case you must not include any standard C++ headers after including altivec.h and avoid bool/vector or #undef them if you want the standard C++ meaning of those (bool keyword and std::vector).
Can we please put a #pragma into <altivec.h> which enables the context-sensitive parsing even for the non-GNU modes? Including <altivec.h> should be sufficient to turn on this kind of magic processing.
Thanks, Florian _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx