| 219 | } |
| 220 | |
| 221 | Metadata *BitcodeReaderMetadataList::getMetadataFwdRef(unsigned Idx) { |
| 222 | if (Idx >= size()) |
| 223 | resize(Idx + 1); |
| 224 | |
| 225 | if (Metadata *MD = MetadataPtrs[Idx]) |
| 226 | return MD; |
| 227 | |
| 228 | // Track forward refs to be resolved later. |
| 229 | ForwardReference.insert(Idx); |
| 230 | |
| 231 | // Create and return a placeholder, which will later be RAUW'd. |
| 232 | ++NumMDNodeTemporary; |
| 233 | Metadata *MD = MDNode::getTemporary(Context, None).release(); |
| 234 | MetadataPtrs[Idx].reset(MD); |
| 235 | return MD; |
| 236 | } |
| 237 | |
| 238 | Metadata *BitcodeReaderMetadataList::getMetadataIfResolved(unsigned Idx) { |
| 239 | Metadata *MD = lookup(Idx); |
no test coverage detected