If a linkonce_odr dtor/ctor is identical to another one, just rauw.

Unlike an alias a rauw is always safe, so we don't need to avoid this
optimization when the replacement is not know to be available in every TU.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@194288 91177308-0d34-0410-b5e6-96231b3b80d8
Remove an incorrect optimization inside Clang's IRGen. Its check to determine
whether we can safely lower a conditional operator to select was insufficient.
I've left a large comment in place to explaining the sort of problems that this
transform can encounter in clang in the hopes of discouraging others from
reimplementing it wrongly again in the future. (The test should also help with
that, but it's easy to work around any single test I might add and think that
your particular implementation doesn't miscompile any code.)


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@194289 91177308-0d34-0410-b5e6-96231b3b80d8
Fix name in test.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@194291 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Improve clang-format's detection about comment binding.

Before, existing code in the form of:

  int a; // this is a.
  // This is
  // b.
  int b;

Got turned into:

  int a; // this is a.
         // This is
  // b.
  int b;

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@194294 91177308-0d34-0410-b5e6-96231b3b80d8
Use rauw for all discardable aliases, not just linkonce_odr.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@194296 91177308-0d34-0410-b5e6-96231b3b80d8
Update macro expansion diagnostic examples to say 'expanded from:'
instead of 'instantiated from:'. The actual wording of the note was
changed in r135135.

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