On 20/09/2007, Doug Gregor <[EMAIL PROTECTED]> wrote: > We can't seem to decide whether ISO C++ really forbids comparisons > between pointers and integers or not. The first two are for == and !=, > the second two are for <, >, <=, >=. Why the inconsistency? > > typeck.c: error ("ISO C++ forbids comparison between pointer > and integer"); > typeck.c: error ("ISO C++ forbids comparison between pointer > and integer"); > typeck.c: pedwarn ("ISO C++ forbids comparison between > pointer and integer"); > typeck.c: pedwarn ("ISO C++ forbids comparison between > pointer and integer"); >
Open a PR and CC Gabriel. I am sure he will give his opinion as soon as he has free time. Otherwise, this may get forgotten. As I guess, I think that if ISO C++ forbids the comparison, this should be a pedwarn. On the other hand, this may be some special case as these ones: cd ~/src/trunk/gcc/cp/ grep -n -e "error (.*ISO C\+\+" *.c /dev/null decl.c:4232: error ("ISO C++ forbids use of initializer list to " decl.c:6835: error ("ISO C++ forbids in-class initialization of non-const " decl.c:9753: error ("ISO C++ prohibits overloading operator ?:"); typeck.c:3360: error ("ISO C++ forbids comparison between pointer and integer"); typeck.c:3365: error ("ISO C++ forbids comparison between pointer and integer"); typeck.c:5575: error ("ISO C++ forbids casting to an array type %qT", type); Cheers, Manuel.