http://llvm.org/bugs/show_bug.cgi?id=28929 shows a scenario where make_shared of a class with a protected constructor compiles successfully (it should fail).
This is because we apply an empty-base class optimization to the shared_ptr.
This is one way to solve the problem; there are probably others.
However, this works, and passes all the tests (including the two new ones I just added).
Whoops. This change doesn't belong here.
But it fixes a problem running LIT to test libc++ on Mac OS when building with the system libc++abi.