This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: experimental testsuite patch


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
 }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]