mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
PR19598: Provide the ability to RAUW a declaration with itself, creating a non-temporary copy and using that to RAUW.
Also, provide the ability to create temporary and non-temporary declarations, as not all declarations may be replaced by definitions later on. This provides the necessary infrastructure for Clang to fix PR19598, leaking temporary MDNodes in Clang's debug info generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208054 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -434,7 +434,7 @@ namespace llvm {
|
||||
/// flag set.
|
||||
DIType createObjectPointerType(DIType Ty);
|
||||
|
||||
/// createForwardDecl - Create a temporary forward-declared type.
|
||||
/// \brief Create a permanent forward-declared type.
|
||||
DICompositeType createForwardDecl(unsigned Tag, StringRef Name,
|
||||
DIDescriptor Scope, DIFile F,
|
||||
unsigned Line, unsigned RuntimeLang = 0,
|
||||
@@ -442,6 +442,12 @@ namespace llvm {
|
||||
uint64_t AlignInBits = 0,
|
||||
StringRef UniqueIdentifier = StringRef());
|
||||
|
||||
/// \brief Create a temporary forward-declared type.
|
||||
DICompositeType createReplaceableForwardDecl(
|
||||
unsigned Tag, StringRef Name, DIDescriptor Scope, DIFile F,
|
||||
unsigned Line, unsigned RuntimeLang = 0, uint64_t SizeInBits = 0,
|
||||
uint64_t AlignInBits = 0, StringRef UniqueIdentifier = StringRef());
|
||||
|
||||
/// retainType - Retain DIType in a module even if it is not referenced
|
||||
/// through debug info anchors.
|
||||
void retainType(DIType T);
|
||||
|
||||
Reference in New Issue
Block a user