diff --git a/lldb/source/Target/ThreadPlan.cpp b/lldb/source/Target/ThreadPlan.cpp
index bf9a054..f86d10d 100644
--- a/lldb/source/Target/ThreadPlan.cpp
+++ b/lldb/source/Target/ThreadPlan.cpp
@@ -241,14 +241,14 @@
 {
 #ifdef LLDB_CONFIGURATION_DEBUG
     fprintf(stderr, "error: %s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-            __PRETTY_FUNCTION__,
+            LLVM_PRETTY_FUNCTION,
             m_thread.GetID(),
             m_thread.GetProtocolID());
 #else
     Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_THREAD));
     if (log)
         log->Error("%s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-                    __PRETTY_FUNCTION__,
+                    LLVM_PRETTY_FUNCTION,
                     m_thread.GetID(),
                     m_thread.GetProtocolID());
 #endif
@@ -260,14 +260,14 @@
 {
 #ifdef LLDB_CONFIGURATION_DEBUG
     fprintf(stderr, "error: %s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-            __PRETTY_FUNCTION__,
+            LLVM_PRETTY_FUNCTION,
             m_thread.GetID(),
             m_thread.GetProtocolID());
 #else
     Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_THREAD));
     if (log)
         log->Error("%s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-                    __PRETTY_FUNCTION__,
+                    LLVM_PRETTY_FUNCTION,
                     m_thread.GetID(),
                     m_thread.GetProtocolID());
 #endif
@@ -279,14 +279,14 @@
 {
 #ifdef LLDB_CONFIGURATION_DEBUG
     fprintf(stderr, "error: %s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-            __PRETTY_FUNCTION__,
+            LLVM_PRETTY_FUNCTION,
             m_thread.GetID(),
             m_thread.GetProtocolID());
 #else
     Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_THREAD));
     if (log)
         log->Error("%s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-                    __PRETTY_FUNCTION__,
+                    LLVM_PRETTY_FUNCTION,
                     m_thread.GetID(),
                     m_thread.GetProtocolID());
 #endif
@@ -298,14 +298,14 @@
 {
 #ifdef LLDB_CONFIGURATION_DEBUG
     fprintf(stderr, "error: %s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-            __PRETTY_FUNCTION__,
+            LLVM_PRETTY_FUNCTION,
             m_thread.GetID(),
             m_thread.GetProtocolID());
 #else
     Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_THREAD));
     if (log)
         log->Error("%s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-                   __PRETTY_FUNCTION__,
+                   LLVM_PRETTY_FUNCTION,
                    m_thread.GetID(),
                    m_thread.GetProtocolID());
 #endif
@@ -319,14 +319,14 @@
     // The null plan is never done.
 #ifdef LLDB_CONFIGURATION_DEBUG
     fprintf(stderr, "error: %s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-            __PRETTY_FUNCTION__,
+            LLVM_PRETTY_FUNCTION,
             m_thread.GetID(),
             m_thread.GetProtocolID());
 #else
     Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_THREAD));
     if (log)
         log->Error("%s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-                   __PRETTY_FUNCTION__,
+                   LLVM_PRETTY_FUNCTION,
                    m_thread.GetID(),
                    m_thread.GetProtocolID());
 #endif
@@ -339,14 +339,14 @@
     // Not sure what to return here.  This is a dead thread.
 #ifdef LLDB_CONFIGURATION_DEBUG
     fprintf(stderr, "error: %s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-            __PRETTY_FUNCTION__,
+            LLVM_PRETTY_FUNCTION,
             m_thread.GetID(),
             m_thread.GetProtocolID());
 #else
     Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_THREAD));
     if (log)
         log->Error("%s called on thread that has been destroyed (tid = 0x%" PRIx64 ", ptid = 0x%" PRIx64 ")",
-                   __PRETTY_FUNCTION__,
+                   LLVM_PRETTY_FUNCTION,
                    m_thread.GetID(),
                    m_thread.GetProtocolID());
 #endif
