Skip to content

Commit 4581eb7

Browse files
authored
Merge pull request #67965 from gottesmm/pr-80bd06d8a243366f1ba0f2d7b358215aa28bf517
[silgen] Add a new private API on CleanupManager called isFormalAccessCleanup
2 parents c38b9b1 + a897257 commit 4581eb7

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

lib/SILGen/Cleanup.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,12 @@ void CleanupManager::setCleanupState(CleanupsDepth depth, CleanupState state) {
220220
popTopDeadCleanups();
221221
}
222222

223+
bool CleanupManager::isFormalAccessCleanup(CleanupHandle depth) {
224+
using RawTy = std::underlying_type<Cleanup::Flags>::type;
225+
auto state = getFlagsAndWritebackBuffer(depth);
226+
return RawTy(std::get<0>(state)) & RawTy(Cleanup::Flags::FormalAccessCleanup);
227+
}
228+
223229
std::tuple<Cleanup::Flags, llvm::Optional<SILValue>>
224230
CleanupManager::getFlagsAndWritebackBuffer(CleanupHandle depth) {
225231
auto iter = stack.find(depth);

lib/SILGen/Cleanup.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,8 @@ class LLVM_LIBRARY_VISIBILITY CleanupManager {
294294
// cleanup at \p depth. If
295295
std::tuple<Cleanup::Flags, llvm::Optional<SILValue>>
296296
getFlagsAndWritebackBuffer(CleanupHandle depth);
297+
298+
bool isFormalAccessCleanup(CleanupHandle depth);
297299
};
298300

299301
/// An RAII object that allows the state of a cleanup to be

0 commit comments

Comments
 (0)