This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++ PATCH to change default dialect to C++14


On Thu, Jul 2, 2015 at 6:08 AM, Richard Biener
<richard.guenther@gmail.com> wrote:
> On Thu, Jul 2, 2015 at 3:05 PM, Richard Biener
> <richard.guenther@gmail.com> wrote:
>> Yeah, I _think_ the fix is to move the isl includes below the system.h
>> include.

I tried this, and got a conflict for pretty much every macro defined
by ctype.h, e.g.

/usr/include/c++/4.8/bits/locale_facets.h:240:53: error: macro
"toupper" passed 2 arguments, but takes just 1
       toupper(char_type *__lo, const char_type* __hi) const

system.h includes safe-ctype.h which does
#include <ctype.h>
...
#undef toupper
#define toupper(c) do_not_use_toupper_with_safe_ctype

isl/int.h includes iostream which includes other header files that
want to define ctype like functions and we get a conflict.  I see that
<ctype.h> doesn't define any macros when __cplusplus is defined, but
if we disable the macro redefines in safe-ctype.h, it isn't very safe
anymore.  This is probably why the isl headers were deliberately
included before system.h when the ISL support was first added.

Jim


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]