Compiling the following:
struct b { template <typename c> void d(c e) { d(e); } }; void f() { b a; a.d(0); }
With clang -fsplit-dwarf-inlining -g -gsplit-dwarf -fdebug-info-for-profiling -O2 triggers assertion failures that the subprogram die should have already been created by getOrCreateSubprogramDIE. It appears to not be created because we skip that for split dwarf in some cases, so make sure we don't skip that when the -fdebug-info-for-profiling option is used.
Note: this fix only addresses one issue common to building this with either dwarf 4 or 5. There is a second crash here still present with dwarf 5.