This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: experimental testsuite patch
- From: François Dumont <frs dot dumont at gmail dot com>
- To: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- Cc: Paolo Carlini <paolo dot carlini at oracle dot com>, "libstdc++ at gcc dot gnu dot org" <libstdc++ at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Sun, 19 Jan 2014 21:50:10 +0100
- Subject: Re: experimental testsuite patch
- Authentication-results: sourceware.org; auth=none
- References: <52D6BDC7 dot 1000803 at gmail dot com> <CAH6eHdRZ_CKPQ_Vqy0T=cj7+kosdjVx6zJSmOgv0zfeodTJHMQ at mail dot gmail dot com> <52D6C3D8 dot 6030901 at oracle dot com> <CAH6eHdS0ZYK2PrKShKOUcj8TTNnHLZXJjoXdtY91E7wdnduiqA at mail dot gmail dot com>
So here is another patch proposal with the faulty debug assertion
commented for the moment.
2014-01-20 François Dumont <fdumont@gcc.gnu.org>
* scripts/create_testsuite_files: Add testsuite/experimental in
the list of folders to introspect for tests.
* include/experimental/string_view
(basic_string_view<>::operator[]): Comment _GLIBCXX_DEBUG_ASSERT,
incompatible with constexpr qualifier.
(basic_string_view<>::front()): Likewise.
(basic_string_view<>::back()): Likewise.
* testsuite/experimental/string_view/element_access/wchar_t/2.cc:
Merge dg-options directives into one.
* testsuite/experimental/string_view/element_access/char/2.cc:
Likewise. Remove invalid experimental namespace scope on
string_view_type.
Tested under Linux x86_64 normal, debug modes.
Ok to commit ?
François
On 01/15/2014 06:43 PM, Jonathan Wakely wrote:
On 15 January 2014 17:22, Paolo Carlini wrote:
On 01/15/2014 06:17 PM, Jonathan Wakely wrote:
I think we decided we want functions to be constexpr in debug mode if
they are constexpr in normal mode.
I think std::array has solved the same problem without losing the
constexpr qualifier.
Yes, I think the only complete solution we know of is that kind of strategy.
But IMO it could wait, for the time being we could just comment out the
checks and add comments about that (make sure first that the various make
check* are clean as we are approaching the release of 4.9.0)
Yes, that would be the safest option. The assertions are not essential.
Index: include/experimental/string_view
===================================================================
--- include/experimental/string_view (revision 206782)
+++ include/experimental/string_view (working copy)
@@ -181,7 +181,8 @@
constexpr const _CharT&
operator[](size_type __pos) const
{
- _GLIBCXX_DEBUG_ASSERT(__pos <= this->_M_len);
+ // TODO: Assert to restore in a way compatible with the constexpr.
+ // _GLIBCXX_DEBUG_ASSERT(__pos <= this->_M_len);
return *(this->_M_str + __pos);
}
@@ -200,14 +201,16 @@
constexpr const _CharT&
front() const
{
- _GLIBCXX_DEBUG_ASSERT(this->_M_len > 0);
+ // TODO: Assert to restore in a way compatible with the constexpr.
+ // _GLIBCXX_DEBUG_ASSERT(this->_M_len > 0);
return *this->_M_str;
}
constexpr const _CharT&
back() const
{
- _GLIBCXX_DEBUG_ASSERT(this->_M_len > 0);
+ // TODO: Assert to restore in a way compatible with the constexpr.
+ // _GLIBCXX_DEBUG_ASSERT(this->_M_len > 0);
return *(this->_M_str + this->_M_len - 1);
}
Index: scripts/create_testsuite_files
===================================================================
--- scripts/create_testsuite_files (revision 206782)
+++ scripts/create_testsuite_files (working copy)
@@ -32,7 +32,7 @@
# This is the ugly version of "everything but the current directory". It's
# what has to happen when find(1) doesn't support -mindepth, or -xtype.
dlist=`echo [0-9][0-9]*`
-dlist="$dlist abi backward ext performance tr1 tr2 decimal"
+dlist="$dlist abi backward ext performance tr1 tr2 decimal experimental"
find $dlist "(" -type f -o -type l ")" -name "*.cc" -print > $tmp.01
find $dlist "(" -type f -o -type l ")" -name "*.c" -print > $tmp.02
cat $tmp.01 $tmp.02 | sort > $tmp.1
Index: testsuite/experimental/string_view/element_access/wchar_t/2.cc
===================================================================
--- testsuite/experimental/string_view/element_access/wchar_t/2.cc (revision 206782)
+++ testsuite/experimental/string_view/element_access/wchar_t/2.cc (working copy)
@@ -1,6 +1,5 @@
-// { dg-options "-std=gnu++1y" }
// { dg-do run { xfail *-*-* } }
-// { dg-options "-O0" }
+// { dg-options "-std=gnu++1y -O0" }
// { dg-require-debug-mode "" }
// Copyright (C) 2013-2014 Free Software Foundation, Inc.
Index: testsuite/experimental/string_view/element_access/char/2.cc
===================================================================
--- testsuite/experimental/string_view/element_access/char/2.cc (revision 206782)
+++ testsuite/experimental/string_view/element_access/char/2.cc (working copy)
@@ -1,6 +1,5 @@
-// { dg-options "-std=gnu++1y" }
// { dg-do run { xfail *-*-* } }
-// { dg-options "-O0" }
+// { dg-options "-std=gnu++1y -O0" }
// { dg-require-debug-mode "" }
// Copyright (C) 2013-2014 Free Software Foundation, Inc.
@@ -26,6 +25,6 @@
main()
{
typedef std::experimental::string_view string_view_type;
- experimental::string_view_type s;
+ string_view_type s;
s[0]; // abort
}