[PATCH] D65189: [MC] Support returning a structured rich disassembly output

Seiya Nuta via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 30 05:11:45 PDT 2019


seiya marked an inline comment as done.
seiya added inline comments.


================
Comment at: llvm/include/llvm/MC/MCInstPrinter.h:63
+  // InnerSpans contains one MarkupSpan which represents `<reg:%rip>`.
+  std::unique_ptr<std::vector<MarkupSpan>> InnerSpans;
+
----------------
jhenderson wrote:
> Why is this a unique_ptr? Can't you just have a std::vector here directly?
I think it should be a unique_ptr to prevent dangling pointer reference here:

```lang=cpp
      auto *InnerSpans =
          const_cast<std::vector<MarkupSpan> *>(Span.InnerSpans.get());
      M.State.Spans.back()->push_back(std::move(Span));
      // Span is now moved to the "M.State.Spans.back()" but InnerSpans is still valid
      // since Span.InnerSpans is an unique_ptr.
      M.State.Spans.push_back(InnerSpans);
```




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65189/new/

https://reviews.llvm.org/D65189





More information about the llvm-commits mailing list