Similar to
911438f9f4 ("gdbsupport: fix array-view compilation with
c++11 && _GLIBCXX_DEBUG"), but for gdb::optional.
I get this error when building with Clang 14 and -std=c++11:
CXX agent.o
In file included from /home/simark/src/binutils-gdb/gdbsupport/agent.cc:20:
In file included from /home/simark/src/binutils-gdb/gdbsupport/common-defs.h:210:
In file included from /home/simark/src/binutils-gdb/gdbsupport/common-debug.h:23:
/home/simark/src/binutils-gdb/gdbsupport/../gdbsupport/gdb_optional.h:213:5: error: use of this statement in a constexpr function is a C++14 extension [-Werror,-Wc++14-extensions]
gdb_assert (this->has_value ());
^
/home/simark/src/binutils-gdb/gdbsupport/gdb_assert.h:35:3: note: expanded from macro 'gdb_assert'
((void) ((expr) ? 0 : \
^
Change-Id: If0cf55607fc9dbd1925ccb97cd9abbf8993ff264
/* The get operations have m_instantiated as a precondition. */
T &get () noexcept
{
-#if defined(_GLIBCXX_DEBUG)
+#if defined(_GLIBCXX_DEBUG) && __cplusplus >= 201402L
gdb_assert (this->has_value ());
#endif
return m_item;
}
constexpr const T &get () const noexcept
{
-#if defined(_GLIBCXX_DEBUG)
+#if defined(_GLIBCXX_DEBUG) && __cplusplus >= 201402L
gdb_assert (this->has_value ());
#endif
return m_item;