This is useful for inclusion in the Error* structures.
The class will be renamed after getting rid of the current AddressDescription,
which is only used in asan_debugging.cc
Split between *Base and the "proper" object with constructors, because VS2013
doesn't allow us to include objects without a trivial default constructor in an
enum, and I'd like to be sure that a NewAddressDescription object is always
valid, so we need initialization.
If we add the default case, we get a clang warning, though. I can add a check that we have one of those, before the switch, but it will end up ugly:
CHECK(descr.kind == kAddressKindWild || descr.kind == kAddressKindShadow || ...);
Should we also fix places like PrintHeapChunkAccess in asan_descriptions.cc, which does the same thing (not have a default case)?