There are some types in libcxx that are used but their constructors
are not called (hash_node, hash_value_type, tree_node, value_type),
which means that with constructor homing, the types are not complete.
This patch avoids using ctor homing if there are no constructors in
the class definition. So it'll mean we emit some extra debug info in places.
I also re-measured the size of object files in a clang build
-debug-info-kind=limited: 5568746k
-debug-info-kind=constructor: 2695028k
after this patch: 2685607k
So they're ~10mb larger after this change, which is not too bad.
In terms of testing, in chromium (on windows) there's visualization for libcxx
types and all of those types are displayed correctly after this patch, so I
think that means all the STL types are getting emitted now.