From ae97b5acf85de913d05f720f982d7a017369a01a Mon Sep 17 00:00:00 2001 From: River Riddle Date: Tue, 23 Aug 2022 17:43:41 -0700 Subject: [PATCH] [mlir:Bytecode] Move variable to inside of the lambda to fix MSVC build MSVC is not picking up a variable capture somehow, try moving it inside. --- mlir/lib/Bytecode/Writer/BytecodeWriter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp b/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp index 6fc2fb4354db..460471b649e5 100644 --- a/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp +++ b/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp @@ -401,9 +401,6 @@ void BytecodeWriter::writeAttrTypeSection(EncodingEmitter &emitter) { offsetEmitter.emitVarInt(llvm::size(numberingState.getAttributes())); offsetEmitter.emitVarInt(llvm::size(numberingState.getTypes())); - // The writer used when emitting using a custom bytecode encoding. - DialectWriter dialectWriter(attrTypeEmitter, numberingState, stringSection); - // A functor used to emit an attribute or type entry. uint64_t prevOffset = 0; auto emitAttrOrType = [&](auto &entry) { @@ -412,6 +409,10 @@ void BytecodeWriter::writeAttrTypeSection(EncodingEmitter &emitter) { // First, try to emit this entry using the dialect bytecode interface. bool hasCustomEncoding = false; if (const BytecodeDialectInterface *interface = entry.dialect->interface) { + // The writer used when emitting using a custom bytecode encoding. + DialectWriter dialectWriter(attrTypeEmitter, numberingState, + stringSection); + if constexpr (std::is_same_v, Type>) { // TODO: We don't currently support custom encoded mutable types. hasCustomEncoding =