[PATCH] D142844: [LTO] Demangle the function name in DiagnosticInfoDontCall message

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 30 10:16:16 PST 2023


This revision was not accepted when it landed; it landed in state "Needs Revision".
This revision was automatically updated to reflect the committed changes.
Closed by commit rGcb05c2ffc79e: [LTO] Demangle the function name in DiagnosticInfoDontCall message (authored by ChoKyuWon, committed by aeubanks).

Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142844

Files:
  llvm/lib/IR/DiagnosticInfo.cpp
  llvm/test/CodeGen/X86/attr-dontcall.ll


Index: llvm/test/CodeGen/X86/attr-dontcall.ll
===================================================================
--- llvm/test/CodeGen/X86/attr-dontcall.ll
+++ llvm/test/CodeGen/X86/attr-dontcall.ll
@@ -27,7 +27,34 @@
   ret void
 }
 
+declare i32 @_Z3fooi(i32) "dontcall-error"
+define void @demangle1() {
+  call i32 @_Z3fooi (i32 0)
+  ret void
+}
+declare float @_Z3barf(float) "dontcall-error"
+define void @demangle2() {
+  call float @_Z3barf(float 0.0)
+  ret void
+}
+
+declare i32 @_RNvC1a3baz() "dontcall-error"
+define void @demangle3() {
+  call i32 @_RNvC1a3baz()
+  ret void
+}
+
+
+declare i32 @_Z3fooILi79EEbU7_ExtIntIXT_EEi(i32) "dontcall-error"
+define void @demangle4() {
+  call i32 @_Z3fooILi79EEbU7_ExtIntIXT_EEi(i32 0)
+  ret void
+}
 ; CHECK: error: call to foo marked "dontcall-error": e
 ; CHECK: warning: call to foo2 marked "dontcall-warn": w
 ; CHECK: warning: call to foo3 marked "dontcall-warn"{{$}}
 ; CHECK: warning: call to foo4 marked "dontcall-warn": cast
+; CHECK: error: call to foo(int) marked "dontcall-error"
+; CHECK: error: call to bar(float) marked "dontcall-error"
+; CHECK: error: call to a::baz marked "dontcall-error"
+; CHECK: error: call to bool foo<79>(int _ExtInt<79>) marked "dontcall-error"
\ No newline at end of file
Index: llvm/lib/IR/DiagnosticInfo.cpp
===================================================================
--- llvm/lib/IR/DiagnosticInfo.cpp
+++ llvm/lib/IR/DiagnosticInfo.cpp
@@ -15,6 +15,7 @@
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Demangle/Demangle.h"
 #include "llvm/IR/BasicBlock.h"
 #include "llvm/IR/Constants.h"
 #include "llvm/IR/DebugInfoMetadata.h"
@@ -440,7 +441,8 @@
 }
 
 void DiagnosticInfoDontCall::print(DiagnosticPrinter &DP) const {
-  DP << "call to " << getFunctionName() << " marked \"dontcall-";
+  DP << "call to " << demangle(getFunctionName().str())
+     << " marked \"dontcall-";
   if (getSeverity() == DiagnosticSeverity::DS_Error)
     DP << "error\"";
   else


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D142844.493350.patch
Type: text/x-patch
Size: 2046 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230130/aa07dcfb/attachment.bin>


More information about the llvm-commits mailing list