Add a missing Invalid check to SubobjectDesignator::isOnePastEnd()

The class seems to have an invariant that Entries is non-empty if
Invalid is false.  It appears this method was previously private, and
all internal uses checked Invalid.  Now there is an external caller, so
check Invalid to avoid array OOB underflow.

Fixes PR20420.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213816 91177308-0d34-0410-b5e6-96231b3b80d8
Split -Winvalid-command-line-argument into -Wignored-optimization-argument

Reviewers: rsmith, nlewycky

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4636

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213817 91177308-0d34-0410-b5e6-96231b3b80d8
Replace r213816's fix with a different one. It's not meaningful to call
isOnePastTheEnd on an invalid designator, so assert and push the check into the
one caller that wasn't already checking.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213820 91177308-0d34-0410-b5e6-96231b3b80d8