DIBuilder: retain a type when created with a unique identifier.
authorManman Ren <manman.ren@gmail.com>
Thu, 29 Aug 2013 23:17:54 +0000 (23:17 +0000)
committerManman Ren <manman.ren@gmail.com>
Thu, 29 Aug 2013 23:17:54 +0000 (23:17 +0000)
commit3a0e9b50f3a9031217a8fe209398ec37c54774eb
treeb8a247c41066863b5207395f0ac77d3452f2e6db
parent88acef0b8e93d065aa4de164422ce4c546a7cd5f
DIBuilder: retain a type when created with a unique identifier.

createClassType, createStructType, createUnionType, createEnumerationType,
and createForwardDecl will retain a type when created with a unique identifier,
to make sure they are treated as used even when all uses are replaced with
the identifiers.

Use TrackingVH<MDNode> instead of MDNode in AllRetainTypes, since the created
node can later be updated.

The change will be tested when clients of DIBuilder start to pass in non-empty
unique identifier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189621 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/DIBuilder.h
lib/IR/DIBuilder.cpp