Skip to content

Commit 9cd4d5f

Browse files
author
Salinas, David
authored
[Comgr] Fix memory leak in name expression API (llvm#4116)
2 parents cc93ab3 + 425bfcd commit 9cd4d5f

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

amd/comgr/src/comgr.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2111,6 +2111,8 @@ amd_comgr_populate_name_expression_map(amd_comgr_data_t Data, size_t *Count) {
21112111
if (!RelaRangeOrError) {
21122112
llvm::logAllUnhandledErrors(RelaRangeOrError.takeError(), llvm::errs(),
21132113
"RelaRange creation error: ");
2114+
for (auto *Ptr : NameExpDataVec)
2115+
delete Ptr;
21142116
return AMD_COMGR_STATUS_ERROR;
21152117
}
21162118
auto RelaRange = std::move(RelaRangeOrError.get());
@@ -2131,6 +2133,8 @@ amd_comgr_populate_name_expression_map(amd_comgr_data_t Data, size_t *Count) {
21312133
if (!RodataOrError) {
21322134
llvm::logAllUnhandledErrors(RodataOrError.takeError(), llvm::errs(),
21332135
"Rodata creation error: ");
2136+
for (auto *Ptr : NameExpDataVec)
2137+
delete Ptr;
21342138
return AMD_COMGR_STATUS_ERROR;
21352139
}
21362140
auto Rodata = std::move(RodataOrError.get());
@@ -2161,6 +2165,8 @@ amd_comgr_populate_name_expression_map(amd_comgr_data_t Data, size_t *Count) {
21612165
}
21622166
}
21632167

2168+
for (auto *Ptr : NameExpDataVec)
2169+
delete Ptr;
21642170
} // end AMD_COMGR_DATA_KIND_EXECUTABLE conditional
21652171

21662172
*Count = DataP->NameExpressionMap.size();

0 commit comments

Comments
 (0)