summaryrefslogtreecommitdiffstats
path: root/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-05-06 03:42:01 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-05-06 03:42:01 +0000
commitf427b00b9ac9dfbcd12655b77409bf4ca5857e7c (patch)
treeeb7c80b25ae350918a446f7d46387d88bf1982c6 /clang/examples/PrintFunctionNames/PrintFunctionNames.cpp
parentd3f094a33be49952b8506fba5a34278781c9b113 (diff)
downloadbcm5719-llvm-f427b00b9ac9dfbcd12655b77409bf4ca5857e7c.tar.gz
bcm5719-llvm-f427b00b9ac9dfbcd12655b77409bf4ca5857e7c.zip
PR19598: Ensure temporary metadata nodes used in debug info are destroyed.
CGDebugInfo and DIBuilder were lax in their handling of temporary MDNodes. All temporary nodes need to be deleted, which means they need to be RAUW'd with a permanent node. This was not happening. To ensure this, leverage DIBuilder's new ability to create both permanent and temporary declarations. Ensure all temporary declarations are RAUW'd, even with itself. (DIDescriptor::RAUW handles the case where it is replaced with itself and creates a new, duplicate permanent node to replace itself with) This means that all temporary declarations must be added to the ReplacementMap even if they're never upgraded to definitions - so move the point of insertion into the map to the point of creation of the declarations. llvm-svn: 208055
Diffstat (limited to 'clang/examples/PrintFunctionNames/PrintFunctionNames.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud