<div dir="ltr">Currently UndefinedInternals grows an entry each time an internal function is ODR-used before it is defined, and this mapping is filtered only when diagnostics are emitted.<div><br></div><div>This patch shrinks that list by removing entries as functions are defined. Because that's a performance sensitive path, we test to see whether there even is a previous function declaration, and if so that it was ODR-used, before doing the lookup that would remove the entry. Secondly, this patch applies the same filtering used when emitting diagnostics to emitting PCH.</div>

<div style><br></div><div style>A large chunk of this patch is reverting the switch to MapVector in r173538, as MapVector does not (and can not) support efficient removals.</div><div style><br></div><div style>Please review!</div>

<div style><br></div><div style>Nick</div></div>