[PATCH] D25916: Modules: emit an error instead of a random crash (or a misleading error) due to use-after-free.

Manman Ren via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 24 11:40:46 PDT 2016


manmanren added a comment.

In this testing case, the first clang invocation builds a system module X and a non-system module Y (X imports Y). At the second clang invocation, the parent thread validates the existing module X and module Y. Because X is a system module, we don't diagnose the differences in diagnostic options. When building module Z in the child thread, since Z is not a system module, we will spot the diagnostic differences and invalidate module Y. But the parent thread will continue accessing the deleted FileEntry for module Y.


https://reviews.llvm.org/D25916





More information about the cfe-commits mailing list