diff mbox

[libstdc++,Testsuite] isctype test fails for newlib.

Message ID 54D8F34F.1070209@arm.com
State New
Headers show

Commit Message

Matthew Wahab Feb. 9, 2015, 5:50 p.m. UTC
On 09/02/15 13:18, Hans-Peter Nilsson wrote:
> On Mon, 9 Feb 2015, Matthew Wahab wrote:
>> On 07/02/15 00:11, Jonathan Wakely wrote:
>>> Any idea why HP still sees the tests fail? See comment 8 at
>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64467#c8
>>
>> It looks like he's found the problem: that _NEWLIB_ is a recent addition that
>> isn't in the version he's using. I'll try replacing _NEWLIB_ with
>> _NEWLIB_VERSION_ as suggested.
>
> (Careful with that macro spelling, if nothing else.)
>
> Better to use existing mechanisms and stop playing with
> target-related macros.  Add this at the top (see other
> placements of dg-options) and replace "#if defined (__NEWLIB__)"
> with "#ifdef NEWLINE_IN_CLASS_BLANK":
>
> // { dg-options "-DNEWLINE_IN_CLASS_BLANK" { target newlib } }
>

Attached a patch to replace the test for macro __NEWLIB__ with a test 
for macro NEWLINE_IN_CLASS_BLANK, defined by
   { dg-additional-options "-DNEWLINE_IN_CLASS_BLANK" { target newlib } }

Tested with check-target-libstdc++-v3, with the modified tests, for 
arm-none-eabi and aarch64-none-linux-gnu.

Does this look ok to commit?
Matthew

libstdc++-v3/testsuite/
2015-02-09  Matthew Wahab  <matthew.wahab@arm.com>

	* 28_regex/traits/char/isctype.cc (test01): Replace test
	for __NEWLIB__ macro with a dejagnu set macro.
	* 28_regex/traits/wchar_t/isctype.cc (test01): Likewise.
diff mbox

Patch

diff --git a/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc b/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
index 7c47045..b6fd6ff 100644
--- a/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
+++ b/libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
@@ -1,5 +1,6 @@ 
 // { dg-do run }
 // { dg-options "-std=gnu++11" }
+// { dg-additional-options "-DNEWLINE_IN_CLASS_BLANK" { target newlib } }
 
 //
 // 2010-06-23  Stephen M. Webb <stephen.webb@bregmasoft.ca>
@@ -53,8 +54,8 @@  test01()
   VERIFY(!t.isctype('_', t.lookup_classname(range(digit))));
   VERIFY( t.isctype(' ', t.lookup_classname(range(blank))));
   VERIFY( t.isctype('\t', t.lookup_classname(range(blank))));
-#if defined (__NEWLIB__)
-  /* newlib includes '\n' in class 'blank'.
+#if defined (NEWLINE_IN_CLASS_BLANK)
+  /* On some targets, '\n' is in class 'blank'.
      See https://gcc.gnu.org/ml/gcc-patches/2015-02/msg00059.html.  */
   VERIFY( t.isctype('\n', t.lookup_classname(range(blank))));
 #else
diff --git a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
index 1b3d69a..9ba609c 100644
--- a/libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
+++ b/libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
@@ -1,5 +1,6 @@ 
 // { dg-do run }
 // { dg-options "-std=gnu++11" }
+// { dg-additional-options "-DNEWLINE_IN_CLASS_BLANK" { target newlib } }
 
 // Copyright (C) 2010-2015 Free Software Foundation, Inc.
 //
@@ -51,7 +52,7 @@  test01()
   VERIFY( t.isctype(L' ', t.lookup_classname(range(blank))));
   VERIFY( t.isctype(L'\t', t.lookup_classname(range(blank))));
 #if defined (__NEWLIB__)
-  /* newlib includes '\n' in class 'blank'.
+  /* On some targets, '\n' is in class 'blank'.
      See https://gcc.gnu.org/ml/gcc-patches/2015-02/msg00059.html.  */
   VERIFY( t.isctype(L'\n', t.lookup_classname(range(blank))));
 #else