The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. This fork is used to manage Swift’s stable releases of Clang as well as support the Swift project.
This mechanism was put into place to deal with SwiftASTContexts being torn down and replaced. While that may still happen, we no have a much better solution for the problem of dangling type references: CompilerType now holds a weak_ptr to the type system so it's safe to destroy a type system.
(cherry picked from commit 05f909db4935547b730cb2f3c635b746e12f7ac2)
This mechanism was put into place to deal with SwiftASTContexts being torn down and replaced. While that may still happen, we no have a much better solution for the problem of dangling type references: CompilerType now holds a weak_ptr to the type system so it's safe to destroy a type system.
(cherry picked from commit 05f909db4935547b730cb2f3c635b746e12f7ac2)