summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-22 02:02:33 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-22 02:02:33 +0000
commit70d4fb0d97287117fe7a09fbb5e352ffe1f6eebc (patch)
treeb7b30ab7d8c9dd49cf3d948f235279a1fbfab064 /clang/lib/CodeGen/CodeGenModule.cpp
parent0dfed43a5b3a559669b86d5739d507d1f9445f3b (diff)
downloadbcm5719-llvm-70d4fb0d97287117fe7a09fbb5e352ffe1f6eebc.tar.gz
bcm5719-llvm-70d4fb0d97287117fe7a09fbb5e352ffe1f6eebc.zip
Add a TrackingVH value handle.
This is designed for tracking a value even when it might move (like WeakVH), but it is an error to delete the referenced value (unlike WeakVH0. TrackingVH is templated like AssertingVH on the tracked Value subclass, it is an error to RAUW a tracked value to an incompatible type. For implementation reasons the latter error is only diagnosed on accesses to a mis-RAUWed TrackingVH, because we don't want a virtual interface in a templated class. The former error is also only diagnosed on access, so that clients are allowed to delete a tracked value, as long as they don't use it. This makes it easier for the client to reason about destruction. llvm-svn: 82506
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud