diff mbox

experimental testsuite patch

Message ID 52DC3A82.9070004@gmail.com
State New
Headers show

Commit Message

François Dumont Jan. 19, 2014, 8:50 p.m. UTC
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.
>

Comments

Jonathan Wakely Jan. 20, 2014, 9:40 a.m. UTC | #1
On 19 January 2014 20:50, François Dumont wrote:
> 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 ?

Yes, but please change "introspect" in the ChangeLog to just "inspect"
or "search" - thanks.
diff mbox

Patch

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
 }