It means 60% on that list are suspected of having terrorist ties. It does not mean they really do have terrorist ties, and it does not mean the suspicion is reasonable. In other words, that 60% would need to be further categorised before it becomes a meaningful statistic.
The 40% on the other hand is already a meaningful statistic.
gcc used to have an -Wunreachable-code option, but it depended too heavily on the exact optimisations enabled, so you could never tell what it would and wouldn't warn about, so that was dropped in 4.5. gcc 4.4 and earlier were capable of warning about this. clang does still have a warning for this, with a somewhat different approach so that it should be far more reliable, and the option name is the same as what gcc used to have. It is still not reliable enough to get enabled by default, though, unfortunately.
C++ is simply a significantly more complex language than Java. This sometimes has its advantages, but it also has disadvantages, and unreachable code detection is one of the major disadvantages: there are just too many examples where the compiler can tell that code is unreachable, and optimise accordingly, but the developer won't want a warning. For a simple example, a check that a function parameter value is negative may appear in a template function, but if the parameter type is dependent, and in the only particular instantiation in the program it happens to be unsigned, then the code will clearly be unreachable, but should most likely not be removed. This is much less of a problem for Java, since Java does not have templates. It does have generics, but generics work differently, and suffer much less from this problem.
I'm only going to look if you kick up a fuss about my ability to look
So instead of "Just because you're paranoid, doesn't mean they aren't after you.", we now have "They're only after you because you're paranoid."?