2014-11-10 14:53 GMT+03:00 Richard Biener <richard.guent...@gmail.com>:
> On Sun, Nov 9, 2014 at 5:57 PM, Jack Howarth <howarth.at....@gmail.com> wrote:
>> Iain,
>>      It doesn't look like it will be that simple. If I replace the
>> proposed patches with a change like...
>>
>> Index: gcc/system.h
>> ===================================================================
>> --- gcc/system.h        (revision 217238)
>> +++ gcc/system.h        (working copy)
>> @@ -194,6 +194,13 @@ extern int fprintf_unlocked (FILE *, con
>>  #undef fread_unlocked
>>  #undef fwrite_unlocked
>>
>> +/* Include <string> before "safe-ctype.h" to avoid avoid GCC poisoning
>> +the ctype macros through safe-ctype.h */
>> +
>> +#ifdef __cplusplus
>> +# include <string>
>> +#endif
>> +
>
> Indeed <string> is a system header and should not have been included
> from tree-chkp.c but system.h.

Since attempt to put it into system.h causes such errors I may just
get rid of string usage in ipa-chkp.c at all.  It's not hardly used.

Ilya

>
> Richard.
>
>>  /* There are an extraordinary number of issues with <ctype.h>.
>>     The last straw is that it varies with the locale.  Use libiberty's
>>     replacement instead.  */
>>
>> The bootstrap fails at a new place with...
>>
>> make[3]: Entering directory
>> '/sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/gcc'
>> g++ -c   -g  -DIN_GCC    -fno-exceptions -fno-rtti
>> -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings
>> -Wcast-qual -Wno-format -Wmissing-format-attribute
>> -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros
>> -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I.
>> -I../../gcc-5.0-20141107/gcc -I../../gcc-5.0-20141107/gcc/.
>> -I../../gcc-5.0-20141107/gcc/../include
>> -I../../gcc-5.0-20141107/gcc/../libcpp/include -I/sw/include
>> -I/sw/include  -I../../gcc-5.0-20141107/gcc/../libdecnumber
>> -I../../gcc-5.0-20141107/gcc/../libdecnumber/dpd -I../libdecnumber
>> -I../../gcc-5.0-20141107/gcc/../libbacktrace -DCLOOG_INT_GMP
>> -I/sw/include -DCLOOG_INT_GMP -I/sw/include -I/sw/include -o
>> simplify-rtx.o -MT simplify-rtx.o -MMD -MP -MF
>> ./.deps/simplify-rtx.TPo ../../gcc-5.0-20141107/gcc/simplify-rtx.c
>> clang: warning: treating 'c' input as 'c++' when in C++ mode, this
>> behavior is deprecated
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:23:
>> ../../gcc-5.0-20141107/gcc/coretypes.h:62:1: warning: class 'rtx_def'
>> was previously declared as a struct [-Wmismatched-tags]
>> class rtx_def;
>> ^
>> ../../gcc-5.0-20141107/gcc/coretypes.h:55:8: note: previous use is here
>> struct rtx_def;
>>        ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:25:
>> In file included from ../../gcc-5.0-20141107/gcc/rtl.h:27:
>> In file included from ../../gcc-5.0-20141107/gcc/real.h:25:
>> ../../gcc-5.0-20141107/gcc/wide-int.h:370:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/wide-int.h:377:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/wide-int.h:384:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/wide-int.h:394:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/wide-int.h:401:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/wide-int.h:411:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/wide-int.h:422:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/wide-int.h:886:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/wide-int.h:965:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/wide-int.h:1127:1: warning:
>> 'fixed_wide_int_storage' defined as a class template here but
>> previously declared as a struct template
>>       [-Wmismatched-tags]
>> class GTY(()) fixed_wide_int_storage
>> ^
>> ../../gcc-5.0-20141107/gcc/wide-int.h:286:18: note: did you mean class here?
>> template <int N> struct fixed_wide_int_storage;
>>                  ^~~~~~
>>                  class
>> ../../gcc-5.0-20141107/gcc/wide-int.h:1152:3: warning: extraneous
>> template parameter list in template specialization
>>   template <>
>>   ^~~~~~~~~~~
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:25:
>> In file included from ../../gcc-5.0-20141107/gcc/rtl.h:28:
>> In file included from ../../gcc-5.0-20141107/gcc/vec.h:44:
>> ../../gcc-5.0-20141107/gcc/ggc.h:315:15: warning: struct 'rtx_def' was
>> previously declared as a class [-Wmismatched-tags]
>> static inline struct rtx_def *
>>               ^
>> ../../gcc-5.0-20141107/gcc/coretypes.h:62:7: note: previous use is here
>> class rtx_def;
>>       ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:25:
>> In file included from ../../gcc-5.0-20141107/gcc/rtl.h:28:
>> In file included from ../../gcc-5.0-20141107/gcc/vec.h:44:
>> ../../gcc-5.0-20141107/gcc/ggc.h:318:11: warning: struct 'rtx_def' was
>> previously declared as a class [-Wmismatched-tags]
>>   return (struct rtx_def *) ggc_internal_alloc (s PASS_MEM_STAT);
>>           ^
>> ../../gcc-5.0-20141107/gcc/coretypes.h:62:7: note: previous use is here
>> class rtx_def;
>>       ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:25:
>> ../../gcc-5.0-20141107/gcc/rtl.h:283:1: warning: 'rtx_def' defined as
>> a struct here but previously declared as a class [-Wmismatched-tags]
>> struct GTY((desc("0"), tag("0"),
>> ^
>> ../../gcc-5.0-20141107/gcc/coretypes.h:62:1: note: did you mean struct here?
>> class rtx_def;
>> ^~~~~
>> struct
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:25:
>> In file included from ../../gcc-5.0-20141107/gcc/rtl.h:3164:
>> ./genrtl.h:435:3: warning: array index 1 is past the end of the array
>> (which contains 1 element) [-Warray-bounds]
>>   XWINT (rt, 1) = arg1;
>>   ^          ~
>> ../../gcc-5.0-20141107/gcc/rtl.h:1121:29: note: expanded from macro 'XWINT'
>> #define XWINT(RTX, N)               ((RTX)->u.hwint[N])
>>                                      ^
>> ../../gcc-5.0-20141107/gcc/rtl.h:398:5: note: array 'hwint' declared here
>>     HOST_WIDE_INT hwint[1];
>>     ^
>> ../../gcc-5.0-20141107/gcc/hwint.h:58:26: note: expanded from macro
>> 'HOST_WIDE_INT'
>> #   define HOST_WIDE_INT long long
>>                          ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:25:
>> In file included from ../../gcc-5.0-20141107/gcc/rtl.h:3164:
>> ./genrtl.h:436:3: warning: array index 2 is past the end of the array
>> (which contains 1 element) [-Warray-bounds]
>>   XWINT (rt, 2) = arg2;
>>   ^          ~
>> ../../gcc-5.0-20141107/gcc/rtl.h:1121:29: note: expanded from macro 'XWINT'
>> #define XWINT(RTX, N)               ((RTX)->u.hwint[N])
>>                                      ^
>> ../../gcc-5.0-20141107/gcc/rtl.h:398:5: note: array 'hwint' declared here
>>     HOST_WIDE_INT hwint[1];
>>     ^
>> ../../gcc-5.0-20141107/gcc/hwint.h:58:26: note: expanded from macro
>> 'HOST_WIDE_INT'
>> #   define HOST_WIDE_INT long long
>>                          ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:911:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (asm_out)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:1519:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (sched)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:1549:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (simd_clone)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:1767:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (vectorize)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:3023:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (addr_space)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:4522:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (calls)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:5050:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (c)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:5203:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (cxx)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:5292:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (emutls)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:5398:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (target_option)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:5686:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (mode_switching)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:45:
>> In file included from ../../gcc-5.0-20141107/gcc/target.h:192:
>> ../../gcc-5.0-20141107/gcc/target.def:5689:1: warning: empty macro
>> arguments are a C99 feature [-Wc99-extensions]
>> HOOK_VECTOR_END (C90_EMPTY_HACK)
>> ^
>> ../../gcc-5.0-20141107/gcc/target-hooks-macros.h:43:50: note: expanded
>> from macro 'HOOK_VECTOR_END'
>> #define HOOK_VECTOR_END(DECL_NAME) HOOK_VECTOR_1(,} DECL_NAME ;)
>>                                                  ^
>> ../../gcc-5.0-20141107/gcc/simplify-rtx.c:118:13: warning: array index
>> 1 is past the end of the array (which contains 1 element)
>> [-Warray-bounds]
>>       val = CONST_DOUBLE_HIGH (x);
>>             ^~~~~~~~~~~~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/rtl.h:1758:30: note: expanded from macro
>> 'CONST_DOUBLE_HIGH'
>> #define CONST_DOUBLE_HIGH(r) XCMWINT (r, 1, CONST_DOUBLE, VOIDmode)
>>                              ^           ~
>> ../../gcc-5.0-20141107/gcc/rtl.h:1124:36: note: expanded from macro 'XCMWINT'
>> #define XCMWINT(RTX, N, C, M)       ((RTX)->u.hwint[N])
>>                                      ^
>> ../../gcc-5.0-20141107/gcc/rtl.h:398:5: note: array 'hwint' declared here
>>     HOST_WIDE_INT hwint[1];
>>     ^
>> ../../gcc-5.0-20141107/gcc/hwint.h:58:26: note: expanded from macro
>> 'HOST_WIDE_INT'
>> #   define HOST_WIDE_INT long long
>>                          ^
>> ../../gcc-5.0-20141107/gcc/simplify-rtx.c:5368:9: warning: array index
>> 1 is past the end of the array (which contains 1 element)
>> [-Warray-bounds]
>>                     = CONST_DOUBLE_HIGH (el) >> (i - HOST_BITS_PER_WIDE_INT);
>>                       ^~~~~~~~~~~~~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/rtl.h:1758:30: note: expanded from macro
>> 'CONST_DOUBLE_HIGH'
>> #define CONST_DOUBLE_HIGH(r) XCMWINT (r, 1, CONST_DOUBLE, VOIDmode)
>>                              ^           ~
>> ../../gcc-5.0-20141107/gcc/rtl.h:1124:36: note: expanded from macro 'XCMWINT'
>> #define XCMWINT(RTX, N, C, M)       ((RTX)->u.hwint[N])
>>                                      ^
>> ../../gcc-5.0-20141107/gcc/rtl.h:398:5: note: array 'hwint' declared here
>>     HOST_WIDE_INT hwint[1];
>>     ^
>> ../../gcc-5.0-20141107/gcc/hwint.h:58:26: note: expanded from macro
>> 'HOST_WIDE_INT'
>> #   define HOST_WIDE_INT long long
>>                          ^
>> ../../gcc-5.0-20141107/gcc/simplify-rtx.c:5372:12: warning: array
>> index 1 is past the end of the array (which contains 1 element)
>> [-Warray-bounds]
>>               if (CONST_DOUBLE_HIGH (el) >> (HOST_BITS_PER_WIDE_INT - 1))
>>                   ^~~~~~~~~~~~~~~~~~~~~~
>> ../../gcc-5.0-20141107/gcc/rtl.h:1758:30: note: expanded from macro
>> 'CONST_DOUBLE_HIGH'
>> #define CONST_DOUBLE_HIGH(r) XCMWINT (r, 1, CONST_DOUBLE, VOIDmode)
>>                              ^           ~
>> ../../gcc-5.0-20141107/gcc/rtl.h:1124:36: note: expanded from macro 'XCMWINT'
>> #define XCMWINT(RTX, N, C, M)       ((RTX)->u.hwint[N])
>>                                      ^
>> ../../gcc-5.0-20141107/gcc/rtl.h:398:5: note: array 'hwint' declared here
>>     HOST_WIDE_INT hwint[1];
>>     ^
>> ../../gcc-5.0-20141107/gcc/hwint.h:58:26: note: expanded from macro
>> 'HOST_WIDE_INT'
>> #   define HOST_WIDE_INT long long
>>                          ^
>> In file included from ../../gcc-5.0-20141107/gcc/simplify-rtx.c:25:
>> In file included from ../../gcc-5.0-20141107/gcc/rtl.h:27:
>> In file included from ../../gcc-5.0-20141107/gcc/real.h:25:
>> ../../gcc-5.0-20141107/gcc/wide-int.h:2132:10: error: call to 'min' is 
>> ambiguous
>>   return min (x, y, SIGNED);
>>          ^~~
>> ../../gcc-5.0-20141107/gcc/simplify-rtx.c:3898:17: note: in
>> instantiation of function template specialization
>> 'wi::smin<std::__1::pair<rtx_def *,
>>       machine_mode>, std::__1::pair<rtx_def *, machine_mode> >' requested 
>> here
>>           result = wi::smin (pop0, pop1);
>>                        ^
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:2536:1:
>> note: candidate function [with _Tp
>>       = std::__1::pair<rtx_def *, machine_mode>, _Compare = signop_e]
>> min(const _Tp& __a, const _Tp& __b, _Compare __comp)
>> ^
>> ../../gcc-5.0-20141107/gcc/wide-int.h:2116:5: note: candidate function
>> [with T1 = std::__1::pair<rtx_def *, machine_mode>, T2 =
>> std::__1::pair<rtx_def *,
>>       machine_mode>]
>> wi::min (const T1 &x, const T2 &y, signop sgn)
>>     ^
>> ../../gcc-5.0-20141107/gcc/wide-int.h:2163:10: error: call to 'max' is 
>> ambiguous
>>   return max (x, y, SIGNED);
>>          ^~~
>> ../../gcc-5.0-20141107/gcc/simplify-rtx.c:3902:17: note: in
>> instantiation of function template specialization
>> 'wi::smax<std::__1::pair<rtx_def *,
>>       machine_mode>, std::__1::pair<rtx_def *, machine_mode> >' requested 
>> here
>>           result = wi::smax (pop0, pop1);
>>                        ^
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:2600:1:
>> note: candidate function [with _Tp
>>       = std::__1::pair<rtx_def *, machine_mode>, _Compare = signop_e]
>> max(const _Tp& __a, const _Tp& __b, _Compare __comp)
>> ^
>> ../../gcc-5.0-20141107/gcc/wide-int.h:2147:5: note: candidate function
>> [with T1 = std::__1::pair<rtx_def *, machine_mode>, T2 =
>> std::__1::pair<rtx_def *,
>>       machine_mode>]
>> wi::max (const T1 &x, const T2 &y, signop sgn)
>>     ^
>> ../../gcc-5.0-20141107/gcc/wide-int.h:2140:10: error: call to 'min' is 
>> ambiguous
>>   return min (x, y, UNSIGNED);
>>          ^~~
>> ../../gcc-5.0-20141107/gcc/simplify-rtx.c:3906:17: note: in
>> instantiation of function template specialization
>> 'wi::umin<std::__1::pair<rtx_def *,
>>       machine_mode>, std::__1::pair<rtx_def *, machine_mode> >' requested 
>> here
>>           result = wi::umin (pop0, pop1);
>>                        ^
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:2536:1:
>> note: candidate function [with _Tp
>>       = std::__1::pair<rtx_def *, machine_mode>, _Compare = signop_e]
>> min(const _Tp& __a, const _Tp& __b, _Compare __comp)
>> ^
>> ../../gcc-5.0-20141107/gcc/wide-int.h:2116:5: note: candidate function
>> [with T1 = std::__1::pair<rtx_def *, machine_mode>, T2 =
>> std::__1::pair<rtx_def *,
>>       machine_mode>]
>> wi::min (const T1 &x, const T2 &y, signop sgn)
>>     ^
>> ../../gcc-5.0-20141107/gcc/wide-int.h:2171:10: error: call to 'max' is 
>> ambiguous
>>   return max (x, y, UNSIGNED);
>>          ^~~
>> ../../gcc-5.0-20141107/gcc/simplify-rtx.c:3910:17: note: in
>> instantiation of function template specialization
>> 'wi::umax<std::__1::pair<rtx_def *,
>>       machine_mode>, std::__1::pair<rtx_def *, machine_mode> >' requested 
>> here
>>           result = wi::umax (pop0, pop1);
>>                        ^
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:2600:1:
>> note: candidate function [with _Tp
>>       = std::__1::pair<rtx_def *, machine_mode>, _Compare = signop_e]
>> max(const _Tp& __a, const _Tp& __b, _Compare __comp)
>> ^
>> ../../gcc-5.0-20141107/gcc/wide-int.h:2147:5: note: candidate function
>> [with T1 = std::__1::pair<rtx_def *, machine_mode>, T2 =
>> std::__1::pair<rtx_def *,
>>       machine_mode>]
>> wi::max (const T1 &x, const T2 &y, signop sgn)
>>     ^
>> 32 warnings and 4 errors generated.
>>
>> I think we are better off for the moment going with the conservative
>> fix (as only two files in all of gcc need it).
>>                Jack
>>
>> On Sun, Nov 9, 2014 at 9:53 AM, Iain Sandoe <i...@codesourcery.com> wrote:
>>> Hi Jack,
>>>
>>> comments below apply also to the patch for PR63699
>>>
>>> On 7 Nov 2014, at 17:13, Jack Howarth wrote:
>>>
>>>>  The attached revised patch eliminates the compilation error...
>>>>
>>>> error: use of undeclared
>>>>      identifier 'do_not_use_toupper_with_safe_ctype'
>>>>
>>>> on x86_64-apple-darwin14 when bootstrapping using the Clang 6.0
>>>> compiler by moving the include for <strings> earlier.
>>>>          Okay for gcc trunk?
>>>>                  Jack
>>>> <PR63750_v3.patch>
>>>
>>> Since you have two instances of this (and given that the other required 
>>> headers are included in system.h)
>>> ISTM, that the right place for this (and the fix for PR63699) is in 
>>> system.h with appropriate guards for cplusplus and an explanation of why 
>>> the fix is needed.
>>>
>>> Need to make sure we're not just burying some other problem, right?
>>> 0.02GBP as always
>>> Iain
>>>
>>> 2014-10-07  Jack Howarth <howarth.at....@gmail.com>
>>>
>>>         PR other/63750
>>>         * gcc/ipa-chkp.c: Include string earlier.
>>>
>>> In any event, if the existing patch is preferred by the maintainers,  
>>> please make this ^ something like
>>> "Include <string> before system.h"
>>> to give to poor reader some idea of what the change was about ;)
>>>

Reply via email to