[Lldb-commits] [lldb] [lldb] Disable warning about codecvt_utf8 deprecation (NFC) (PR #112446)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Tue Oct 15 15:21:48 PDT 2024
https://github.com/JDevlieghere created https://github.com/llvm/llvm-project/pull/112446
Disable -Wdeprecated-declarations for codecvt_utf8 in Editline. This is in preparation for #112276 which narrows the scope of -Wno-deprecated-declarations for building LLDB.
>From 4c53565414c95ddd49050363d3302452cbb99b27 Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <jonas at devlieghere.com>
Date: Tue, 15 Oct 2024 15:19:16 -0700
Subject: [PATCH] [lldb] Disable warning about codecvt_utf8 deprecation (NFC)
Disable -Wdeprecated-declarations for codecvt_utf8 in Editline. This is
in preparation for #112276 which narrows the scope of
-Wno-deprecated-declarations for building LLDB.
---
lldb/include/lldb/Host/Editline.h | 22 ++++++++++++++++++++++
lldb/source/Host/common/Editline.cpp | 2 ++
2 files changed, 24 insertions(+)
diff --git a/lldb/include/lldb/Host/Editline.h b/lldb/include/lldb/Host/Editline.h
index 9049b106f02a34..f5d461d32b72fa 100644
--- a/lldb/include/lldb/Host/Editline.h
+++ b/lldb/include/lldb/Host/Editline.h
@@ -57,6 +57,26 @@
#include "llvm/ADT/FunctionExtras.h"
+#if defined(__clang__) && defined(__has_warning)
+#if __has_warning("-Wimplicit-fallthrough")
+#define EL_DISABLE_DEPRECATED_DECLARATION_WARNINGS \
+ _Pragma("clang diagnostic push") \
+ _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
+#define RESTORE_DEPRECATED_DECLARATION_WARNINGS _Pragma("clang diagnostic pop")
+#endif
+#elif defined(__GNUC__) && __GNUC__ > 6
+#define EL_DISABLE_DEPRECATED_DECLARATION_WARNINGS \
+ _Pragma("GCC diagnostic push") \
+ _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
+#define RESTORE_DEPRECATED_DECLARATION_WARNINGS _Pragma("GCC diagnostic pop")
+#endif
+#ifndef EL_DISABLE_DEPRECATED_DECLARATION_WARNINGS
+#define EL_DISABLE_DEPRECATED_DECLARATION_WARNINGS
+#endif
+#ifndef EL_RESTORE_DEPRECATED_DECLARATION_WARNINGS
+#define EL_RESTORE_DEPRECATED_DECLARATION_WARNINGS
+#endif
+
namespace lldb_private {
namespace line_editor {
@@ -367,7 +387,9 @@ class Editline {
void SetGetCharacterFunction(EditlineGetCharCallbackType callbackFn);
#if LLDB_EDITLINE_USE_WCHAR
+ EL_DISABLE_DEPRECATED_DECLARATION_WARNINGS
std::wstring_convert<std::codecvt_utf8<wchar_t>> m_utf8conv;
+ EL_RESTORE_DEPRECATED_DECLARATION_WARNINGS
#endif
::EditLine *m_editline = nullptr;
EditlineHistorySP m_history_sp;
diff --git a/lldb/source/Host/common/Editline.cpp b/lldb/source/Host/common/Editline.cpp
index 561ec228cdb23f..b5b8d46c0721cf 100644
--- a/lldb/source/Host/common/Editline.cpp
+++ b/lldb/source/Host/common/Editline.cpp
@@ -1574,7 +1574,9 @@ bool Editline::CompleteCharacter(char ch, EditLineGetCharType &out) {
out = (unsigned char)ch;
return true;
#else
+ EL_DISABLE_DEPRECATED_DECLARATION_WARNINGS
std::codecvt_utf8<wchar_t> cvt;
+ EL_RESTORE_DEPRECATED_DECLARATION_WARNINGS
llvm::SmallString<4> input;
for (;;) {
const char *from_next;
More information about the lldb-commits
mailing list