JDevlieghere created this revision.
JDevlieghere added reviewers: labath, DavidSpickett, jingham, bulbazord.
Herald added a project: All.
JDevlieghere requested review of this revision.

Add an LLDB_DEPRECATED macro similar to LLVM_DEPRECATED. We cannot
directly reuse the LLVM one, because it's defined in Compiler.h which is
not something we can include in the SB API.

For the SB API, the macro is undef'd if:

1. We're building the SWIG bindings. We might still want to expose deprecated 
methods to our scripting users.
2. We're targeting anything older than C++14 as the [[deprecated]] attribute 
was added for C++14 and the SB API can be used by projects compiling against an 
older language version.


https://reviews.llvm.org/D147736

Files:
  lldb/include/lldb/API/SBDefines.h
  lldb/include/lldb/API/SBTarget.h
  lldb/include/lldb/lldb-defines.h


Index: lldb/include/lldb/lldb-defines.h
===================================================================
--- lldb/include/lldb/lldb-defines.h
+++ lldb/include/lldb/lldb-defines.h
@@ -125,4 +125,10 @@
 
 #define UNUSED_IF_ASSERT_DISABLED(x) ((void)(x))
 
+#if defined(__clang__)
+#define LLDB_DEPRECATED(MSG, FIX) __attribute__((deprecated(MSG, FIX)))
+#else
+#define LLDB_DEPRECATED(MSG, FIX) [[deprecated(MSG)]]
+#endif
+
 #endif // LLDB_LLDB_DEFINES_H
Index: lldb/include/lldb/API/SBTarget.h
===================================================================
--- lldb/include/lldb/API/SBTarget.h
+++ lldb/include/lldb/API/SBTarget.h
@@ -390,7 +390,8 @@
   /// \return
   ///     An error to indicate success, fail, and any reason for
   ///     failure.
-  [[deprecated("Use SetModuleLoadAddress(lldb::SBModule, uint64_t)")]]
+  LLDB_DEPRECATED("Use SetModuleLoadAddress(lldb::SBModule, uint64_t)",
+                  "SetModuleLoadAddress(lldb::SBModule, uint64_t)")
   lldb::SBError SetModuleLoadAddress(lldb::SBModule module,
                                      int64_t sections_offset);
 #endif
Index: lldb/include/lldb/API/SBDefines.h
===================================================================
--- lldb/include/lldb/API/SBDefines.h
+++ lldb/include/lldb/API/SBDefines.h
@@ -27,6 +27,11 @@
 #endif
 #endif
 
+#if defined(SWIG) or _cplusplus < 201300
+#undef LLDB_DEPRECATED
+#define LLDB_DEPRECATED(MSG, FIX)
+#endif
+
 // Forward Declarations
 namespace lldb {
 


Index: lldb/include/lldb/lldb-defines.h
===================================================================
--- lldb/include/lldb/lldb-defines.h
+++ lldb/include/lldb/lldb-defines.h
@@ -125,4 +125,10 @@
 
 #define UNUSED_IF_ASSERT_DISABLED(x) ((void)(x))
 
+#if defined(__clang__)
+#define LLDB_DEPRECATED(MSG, FIX) __attribute__((deprecated(MSG, FIX)))
+#else
+#define LLDB_DEPRECATED(MSG, FIX) [[deprecated(MSG)]]
+#endif
+
 #endif // LLDB_LLDB_DEFINES_H
Index: lldb/include/lldb/API/SBTarget.h
===================================================================
--- lldb/include/lldb/API/SBTarget.h
+++ lldb/include/lldb/API/SBTarget.h
@@ -390,7 +390,8 @@
   /// \return
   ///     An error to indicate success, fail, and any reason for
   ///     failure.
-  [[deprecated("Use SetModuleLoadAddress(lldb::SBModule, uint64_t)")]]
+  LLDB_DEPRECATED("Use SetModuleLoadAddress(lldb::SBModule, uint64_t)",
+                  "SetModuleLoadAddress(lldb::SBModule, uint64_t)")
   lldb::SBError SetModuleLoadAddress(lldb::SBModule module,
                                      int64_t sections_offset);
 #endif
Index: lldb/include/lldb/API/SBDefines.h
===================================================================
--- lldb/include/lldb/API/SBDefines.h
+++ lldb/include/lldb/API/SBDefines.h
@@ -27,6 +27,11 @@
 #endif
 #endif
 
+#if defined(SWIG) or _cplusplus < 201300
+#undef LLDB_DEPRECATED
+#define LLDB_DEPRECATED(MSG, FIX)
+#endif
+
 // Forward Declarations
 namespace lldb {
 
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to