On Wed, 1 Oct 2025 at 13:38, Jonathan Wakely wrote:
>
> These tests are currently evaluated as (err == failbit)|eofbit which is
> not what we want. It should be err == (failbit|eofbit).
>
> libstdc++-v3/ChangeLog:
>
>         * testsuite/22_locale/time_get/get/char/3.cc: Add parentheses to
>         x == y|z expression.
>         * testsuite/28_regex/algorithms/regex_match/multiline.cc:
>         Likewise.


There's another case of the same bug:

--- a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
@@ -226,7 +226,7 @@ test01()
  format = L"%e";
  ret = tget.get(iter(iss), end, iss, err, &time,
                format.data(), format.data()+format.size());
-  VERIFY( err == ios_base::failbit|ios_base::eofbit );
+  VERIFY( err == (ios_base::failbit|ios_base::eofbit) );
  VERIFY( ret == end );

  iss.str(L"35");

I've fixed that locally.





>
> ---
>
> Tested powerpc64le-linux.
>
>  libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc       | 2 +-
>  .../testsuite/28_regex/algorithms/regex_match/multiline.cc    | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc 
> b/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
> index 48a5f12e26e8..49bcd2adbcb1 100644
> --- a/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
> +++ b/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
> @@ -226,7 +226,7 @@ test01()
>    format = "%e";
>    ret = tget.get(iter(iss), end, iss, err, &time,
>                  format.data(), format.data()+format.size());
> -  VERIFY( err == ios_base::failbit|ios_base::eofbit );
> +  VERIFY( err == (ios_base::failbit|ios_base::eofbit) );
>    VERIFY( ret == end );
>
>    iss.str("35");
> diff --git 
> a/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc 
> b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
> index a1982fc8f786..f4b3cf03a225 100644
> --- a/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
> +++ b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
> @@ -27,11 +27,11 @@ test01()
>    VERIFY(std::regex_search("x\nab\nx", ml));
>
>    ml.assign("a$\n^b$\n^c", ECMAScript|__multiline);
> -  VERIFY( ml.flags() == ECMAScript|__multiline );
> +  VERIFY( ml.flags() == (ECMAScript|__multiline) );
>    VERIFY( regex_search("a\nb\nc", ml) );
>
>    ml.assign("a$\n^b$\n^c", ECMAScript|__multiline|icase);
> -  VERIFY( ml.flags() == ECMAScript|__multiline|icase );
> +  VERIFY( ml.flags() == (ECMAScript|__multiline|icase) );
>    VERIFY( regex_search("A\nB\nC", ml) );
>  }
>
> --
> 2.51.0
>

Reply via email to