{ std::swap_ranges(begin(), end(), __other.begin()); }
// Iterators.
- [[__nodiscard__]]
+ [[__gnu__::__const__, __nodiscard__]]
_GLIBCXX17_CONSTEXPR iterator
begin() noexcept
{ return iterator(data()); }
begin() const noexcept
{ return const_iterator(data()); }
- [[__nodiscard__]]
+ [[__gnu__::__const__, __nodiscard__]]
_GLIBCXX17_CONSTEXPR iterator
end() noexcept
{ return iterator(data() + _Nm); }
end() const noexcept
{ return const_iterator(data() + _Nm); }
- [[__nodiscard__]]
+ [[__gnu__::__const__, __nodiscard__]]
_GLIBCXX17_CONSTEXPR reverse_iterator
rbegin() noexcept
{ return reverse_iterator(end()); }
rbegin() const noexcept
{ return const_reverse_iterator(end()); }
- [[__nodiscard__]]
+ [[__gnu__::__const__, __nodiscard__]]
_GLIBCXX17_CONSTEXPR reverse_iterator
rend() noexcept
{ return reverse_iterator(begin()); }
{ return const_reverse_iterator(begin()); }
// Capacity.
- [[__nodiscard__]]
+ [[__gnu__::__const__, __nodiscard__]]
constexpr size_type
size() const noexcept { return _Nm; }
- [[__nodiscard__]]
+ [[__gnu__::__const__, __nodiscard__]]
constexpr size_type
max_size() const noexcept { return _Nm; }
- [[__nodiscard__]]
+ [[__gnu__::__const__, __nodiscard__]]
constexpr bool
empty() const noexcept { return size() == 0; }
: _AT_Type::_S_ref(_M_elems, 0);
}
- [[__nodiscard__]]
+ [[__gnu__::__const__, __nodiscard__]]
_GLIBCXX17_CONSTEXPR pointer
data() noexcept
{ return _AT_Type::_S_ptr(_M_elems); }
--- /dev/null
+// { dg-do compile { target c++11 } }
+
+#include <array>
+
+#pragma GCC push_options
+#pragma GCC optimize "0"
+
+extern void
+sink (const void*, ...);
+
+void
+test01()
+{
+ {
+ const std::size_t len = 1;
+ typedef std::array<int, len> array_type;
+ typedef array_type::iterator iterator;;
+ array_type a;
+
+ iterator b = a.begin(); // { dg-bogus "-Wmaybe-uninitialized" }
+ iterator e = a.end(); // { dg-bogus "-Wmaybe-uninitialized" }
+
+ sink(&b, &e);
+ }
+
+ {
+ const std::size_t len = 3;
+ typedef std::array<int, len> array_type;
+ typedef array_type::reverse_iterator reverse_iterator;
+ array_type a;
+
+ reverse_iterator b = a.rbegin(); // { dg-bogus "-Wmaybe-uninitialized" }
+ reverse_iterator e = a.rend(); // { dg-bogus "-Wmaybe-uninitialized" }
+
+ sink(&b, &e);
+ }
+}
+
+#pragma GCC pop_options