This reverts commit r276700 and reapplies r276698. The relevant clang tests have been updated. llvm-svn: 276727