[PATCH] D97449: [Diagnose] Unify MCContext and LLVMContext diagnosing

Yuanfang Chen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 1 09:44:50 PST 2021


ychen added inline comments.


================
Comment at: clang/lib/CodeGen/CodeGenAction.cpp:477
+  StringRef Message = D.getMessage();
+  if (Message.startswith("error: "))
+    Message = Message.substr(7);
----------------
MaskRay wrote:
> `StringRef::consume_front`
> 
> I know you are moving code, but do you know why it needs to chop off the `error: ` prefix (why does the message get a prefix here?)
It was introduced by https://github.com/llvm/llvm-project/commit/5ec32e7fd845e0b7db33689f33cc2ef7c83710fa. 

I guess it is to canonicalize error messages in case the user just throws in an "error: " prefix like `Ctx.diagnose("error: xxx")` which would give two `error` prefixes otherwise.


================
Comment at: llvm/lib/MC/MCContext.cpp:869
+    SMLoc Loc,
+    std::function<void(SMDiagnostic &, const SourceMgr *)> GetMessage) {
+  SourceMgr SM;
----------------
MaskRay wrote:
> Use lightweight function_ref since you don't need to store the callback.
I was hesitant to do this because it requires including `STLExtras.h` in MCContext.h which could be bad for compile-time. 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D97449



More information about the cfe-commits mailing list