Clang can emit unreachable call-graph from valid C++ code. There
is no point keeping this into the binary, and also sometimes the
generated code is broken and does not link, for example:
#include <iostream>
#include <string>
namespace {
struct VA { }; struct A : virtual public VA { A() { static bool b = false; std::string str; } };
}
int main(int argc, char* argv[]) {
A::A a;
}
See: http://lists.llvm.org/pipermail/cfe-dev/2016-October/051152.html