aaron.ballman added inline comments.

================
Comment at: clang/include/clang/Frontend/SARIFDiagnostic.h:30-33
+  SARIFDiagnostic & operator= ( const SARIFDiagnostic && ) = delete;
+  SARIFDiagnostic ( SARIFDiagnostic && ) = delete;
+  SARIFDiagnostic &  operator= ( const SARIFDiagnostic & ) = delete;
+  SARIFDiagnostic ( const SARIFDiagnostic & ) = delete;
----------------
Formatting nits.


================
Comment at: clang/include/clang/Frontend/SARIFDiagnostic.h:45-47
+  void emitCodeContext(FullSourceLoc Loc, DiagnosticsEngine::Level Level,
+                       SmallVectorImpl<CharSourceRange> &Ranges,
+                       ArrayRef<FixItHint> Hints) override {}
----------------
Move this implementation to live with the rest and give it an assertion?


================
Comment at: clang/include/clang/Frontend/SARIFDiagnosticPrinter.h:72
+
+  bool OwnsOutputStream;
+};
----------------
This can go away, this never owns the output stream.


================
Comment at: clang/lib/Frontend/SARIFDiagnosticPrinter.cpp:42
+  // Build the SARIFDiagnostic utility.
+  assert(hasSarifWriter() && "Writer not set!");
+  SARIFDiag = std::make_unique<SARIFDiagnostic>(OS, LO, &*DiagOpts, &*Writer);
----------------
Should we also assert that we don't already have a valid `SARIFDiag` object (in 
case someone calls `BeginSourceFile()` twice)?


================
Comment at: clang/lib/Frontend/SARIFDiagnosticPrinter.cpp:53
+  OS.flush();
+}
+
----------------
Should we be invalidating that `SARIFDiag` object here so the printer cannot be 
used after the source file has ended?


================
Comment at: clang/lib/Frontend/SARIFDiagnosticPrinter.cpp:35-36
+SARIFDiagnosticPrinter::~SARIFDiagnosticPrinter() {
+  if (OwnsOutputStream)
+    delete &OS;
+}
----------------
cjdb wrote:
> This makes me very uncomfortable. @aaron.ballman do we have a smart-pointer 
> that works like `variant<T*, unique_ptr<T>>`?
No, but we shouldn't need it -- this object *never* owns the output stream, so 
I think we should remove the member variable and this code (we can default the 
dtor then).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D131632

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to