diff options
| -rw-r--r-- | mlir/lib/Analysis/NestedMatcher.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/mlir/lib/Analysis/NestedMatcher.cpp b/mlir/lib/Analysis/NestedMatcher.cpp index 43e3b332a58..46bf5ad0b97 100644 --- a/mlir/lib/Analysis/NestedMatcher.cpp +++ b/mlir/lib/Analysis/NestedMatcher.cpp @@ -51,10 +51,12 @@ llvm::BumpPtrAllocator *&NestedPattern::allocator() { NestedPattern::NestedPattern(Instruction::Kind k, ArrayRef<NestedPattern> nested, FilterFunctionType filter) - : kind(k), nestedPatterns(ArrayRef<NestedPattern>(nested)), filter(filter) { - auto *newNested = allocator()->Allocate<NestedPattern>(nested.size()); - std::uninitialized_copy(nested.begin(), nested.end(), newNested); - nestedPatterns = ArrayRef<NestedPattern>(newNested, nested.size()); + : kind(k), nestedPatterns(), filter(filter), skip(nullptr) { + if (!nested.empty()) { + auto *newNested = allocator()->Allocate<NestedPattern>(nested.size()); + std::uninitialized_copy(nested.begin(), nested.end(), newNested); + nestedPatterns = ArrayRef<NestedPattern>(newNested, nested.size()); + } } unsigned NestedPattern::getDepth() const { |

