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.

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.

A large chunk of this patch is reverting the switch to MapVector in
r173538, as MapVector does not (and can not) support efficient removals.

Please review!

Nick

Attachment: undefined-internal-erase-on-define-1.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to