From a96427d2db361da79a13c4093ee89a0ac2ffb6b2 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Wed, 20 Dec 2023 14:55:31 -0600 Subject: [PATCH] [FIRRTL] Intrinsics: Fix lifetime issues in lambda. Fixes #6533. --- include/circt/Dialect/FIRRTL/FIRRTLIntrinsics.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/circt/Dialect/FIRRTL/FIRRTLIntrinsics.h b/include/circt/Dialect/FIRRTL/FIRRTLIntrinsics.h index 1d6be7578cdb..8c3f35356138 100644 --- a/include/circt/Dialect/FIRRTL/FIRRTLIntrinsics.h +++ b/include/circt/Dialect/FIRRTL/FIRRTLIntrinsics.h @@ -131,10 +131,11 @@ class IntrinsicLowerings { template void addConverter(DenseMap &map, StringRef name) { auto nameAttr = StringAttr::get(context, name); - map.try_emplace(nameAttr, [&](FModuleLike mod) -> LogicalResult { - T conv(name, mod); - return doLowering(mod, conv); - }); + map.try_emplace(nameAttr, + [this, nameAttr](FModuleLike mod) -> LogicalResult { + T conv(nameAttr.getValue(), mod); + return doLowering(mod, conv); + }); } LogicalResult doLowering(FModuleLike mod, IntrinsicConverter &conv);