Ted, Daniel, do you have any concerns about this patch?
On Sun, May 11, 2014 at 11:08 AM, Nico Weber <[email protected]> wrote: > Hi Ted and Daniel, > > we're trying to get clang LSan-clean: completely free of leaks (PR19521). > One of the last areas where leaks are still reported are in c-index-tests – > I believe for the tests that test crash recovery. If libclang detects that > it has crashed, it doesn't free the CXTranslationUnit > in clang_disposeTranslationUnit(). > > There are a few other places in clang that intentionally leak things, > so BuryPointer() (in lib/Frontend/CompilerInvocation.cpp) exists to mark > pointers that are not going to be freed. The attached patch lets > clang_disposeTranslationUnit() call BuryPointer() when it's not going to > free things. > > BuryPointer only increments an atomic unsigned and then writes to a global > array indexed by said unsigned, so this should be a relatively safe thing > to do. I suppose if libclang crashes and one is very unlucky, some rogue > code could have overwritten the atomic int, but BuryPointer() does range > checking. I think this is a safe change to make, but it's tricky code so I > thought pre-commit review is the way to go here. > > Thanks, > Nico >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
