Hi! This implements a new -Wall enabled warning for a rather common, but completely wrong way to compute an array size by dividing the sizeof(pointer) / sizeof(pointer[0]) or sizeof(*pointer). It is often hard to find this kind of error by simple code inspection in real code, because using sizeof in this way is a quite common idiom to get the array size of an array variable. And furthermore this expression may be used in macros, which makes it even more important to have this warning. There is a similar warning -Wsizeof-pointer-memaccess which helped in implementing the infrastructure for the new warning in the C FE. However I noticed that the -Wsizeof-pointer-memaccess warning was missing in C, when the sizeof is used inside parentheses, which is different from C++, so I fixed that too. Of course, I added some test cases for that as well. To illustrate the usefulness of this warning, it revealed quite a few places where bogus sizeof divisions were used in our testsuite. Bootstrapped and reg-tested on x86_64-pc-linux-gnu. Is it OK for trunk? Thanks Bernd.