Author: Jonas Devlieghere
Date: 2020-04-16T14:03:55-07:00
New Revision: 9f6a308457d1bfebf1cee94b0306e738f270e512

URL: 
https://github.com/llvm/llvm-project/commit/9f6a308457d1bfebf1cee94b0306e738f270e512
DIFF: 
https://github.com/llvm/llvm-project/commit/9f6a308457d1bfebf1cee94b0306e738f270e512.diff

LOG: [lldb/Utility] Fix a bug in stringify_append for printing addresses.

The recent change in the API macros revealed that we were not printing
the pointer address for a bunch of methods, but rather the address of
the pointer. It's something I had already noticed while looking at some
reproducer traces, but hadn't made it to the top of my list yet. This
fixes the issue by providing a more specific overload.

Added: 
    

Modified: 
    lldb/include/lldb/Utility/ReproducerInstrumentation.h

Removed: 
    


################################################################################
diff  --git a/lldb/include/lldb/Utility/ReproducerInstrumentation.h 
b/lldb/include/lldb/Utility/ReproducerInstrumentation.h
index 3728e19386d1..3b5dde3d2e2a 100644
--- a/lldb/include/lldb/Utility/ReproducerInstrumentation.h
+++ b/lldb/include/lldb/Utility/ReproducerInstrumentation.h
@@ -32,6 +32,11 @@ inline void stringify_append(llvm::raw_string_ostream &ss, 
const T &t) {
   ss << &t;
 }
 
+template <typename T>
+inline void stringify_append(llvm::raw_string_ostream &ss, T *t) {
+  ss << reinterpret_cast<void *>(t);
+}
+
 template <typename T>
 inline void stringify_append(llvm::raw_string_ostream &ss, const T *t) {
   ss << reinterpret_cast<const void *>(t);
@@ -115,7 +120,7 @@ template <typename... Ts> inline std::string 
stringify_args(const Ts &... ts) {
 
 #define LLDB_CONSTRUCT_(T, ...)                                                
\
   lldb_private::repro::Recorder _recorder(LLVM_PRETTY_FUNCTION,                
\
-                                          stringify_args(__VA_ARGS__));        
\
+                                          stringify_args(this, __VA_ARGS__));  
\
   if (lldb_private::repro::InstrumentationData _data =                         
\
           LLDB_GET_INSTRUMENTATION_DATA()) {                                   
\
     _recorder.Record(_data.GetSerializer(), _data.GetRegistry(),               
\


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

Reply via email to