UBSan: Fix alignment checks emitted in downcasts.

Summary:
UBSan was checking for alignment of the derived class on the pointer to
the base class, before converting. With some class hierarchies, this could
generate false positives.

Added test-case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187948 91177308-0d34-0410-b5e6-96231b3b80d8
UBSan: Fix naming for IR variables in catch-undef-behavior.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187951 91177308-0d34-0410-b5e6-96231b3b80d8
catch-undefined-behavior.cpp: Remove names that don't appear in every build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187952 91177308-0d34-0410-b5e6-96231b3b80d8
Emit an error for enum increments and decrements in C++ mode.
Fixes PR16394.


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