[v3] xfail experimental/memory_resource/resource_adaptor.cc on 32-bit Solaris/x86 (PR libstdc++/77691)

Message ID ydd7eq4juk4.fsf@CeBiTec.Uni-Bielefeld.DE
State New
Headers show
Series
  • [v3] xfail experimental/memory_resource/resource_adaptor.cc on 32-bit Solaris/x86 (PR libstdc++/77691)
Related show

Commit Message

Rainer Orth March 22, 2018, 10:03 a.m.
experimental/memory_resource/resource_adaptor.cc currently FAILs on
32-bit Solaris/x86:

Assertion failed: aligned<max_align_t>(p), file /vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc, line 56, function test05

As detailed in the PR, this happens because Solaris <stddef.h> and the
Studio 12.6 compilers know nothing about __float128/_Float128 and malloc
only returns pointers aligned to 8 bytes, not 16 bytes as expected by
gcc/ginclude/stddef.h (max_align_t).

Thus, while checking if Solaris i386 malloc can be changed here, I'm
xfailing the test.

Tested on i386-pc-solaris2.11, amd64-pc-solaris2.11, and
sparc-sun-solaris2.11.

Ok for mainline?

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libstdc++/77691
	* testsuite/experimental/memory_resource/resource_adaptor.cc:
	xfail execution on 32-bit Solaris/x86.

Comments

Jonathan Wakely March 22, 2018, 11:55 a.m. | #1
On 22/03/18 11:03 +0100, Rainer Orth wrote:
>experimental/memory_resource/resource_adaptor.cc currently FAILs on

>32-bit Solaris/x86:

>

>Assertion failed: aligned<max_align_t>(p), file /vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc, line 56, function test05

>

>As detailed in the PR, this happens because Solaris <stddef.h> and the

>Studio 12.6 compilers know nothing about __float128/_Float128 and malloc

>only returns pointers aligned to 8 bytes, not 16 bytes as expected by

>gcc/ginclude/stddef.h (max_align_t).

>

>Thus, while checking if Solaris i386 malloc can be changed here, I'm

>xfailing the test.

>

>Tested on i386-pc-solaris2.11, amd64-pc-solaris2.11, and

>sparc-sun-solaris2.11.

>

>Ok for mainline?


OK, thanks.
Rainer Orth March 22, 2018, 1:42 p.m. | #2
Hi Jonathan,

> On 22/03/18 11:03 +0100, Rainer Orth wrote:

>>experimental/memory_resource/resource_adaptor.cc currently FAILs on

>>32-bit Solaris/x86:

>>

>>Assertion failed: aligned<max_align_t>(p), file

>> /vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc,

>> line 56, function test05

>>

>>As detailed in the PR, this happens because Solaris <stddef.h> and the

>>Studio 12.6 compilers know nothing about __float128/_Float128 and malloc

>>only returns pointers aligned to 8 bytes, not 16 bytes as expected by

>>gcc/ginclude/stddef.h (max_align_t).

>>

>>Thus, while checking if Solaris i386 malloc can be changed here, I'm

>>xfailing the test.

>>

>>Tested on i386-pc-solaris2.11, amd64-pc-solaris2.11, and

>>sparc-sun-solaris2.11.

>>

>>Ok for mainline?

>

> OK, thanks.


installed on mainline.  I just noticed that the bug is marked as 7
regression; I guess it's ok to backport to the gcc-7 branch, too?

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
Jonathan Wakely March 22, 2018, 2:23 p.m. | #3
On 22 March 2018 at 13:42, Rainer Orth wrote:
> Hi Jonathan,

>

>> On 22/03/18 11:03 +0100, Rainer Orth wrote:

>>>experimental/memory_resource/resource_adaptor.cc currently FAILs on

>>>32-bit Solaris/x86:

>>>

>>>Assertion failed: aligned<max_align_t>(p), file

>>> /vol/gcc/src/hg/trunk/local/libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc,

>>> line 56, function test05

>>>

>>>As detailed in the PR, this happens because Solaris <stddef.h> and the

>>>Studio 12.6 compilers know nothing about __float128/_Float128 and malloc

>>>only returns pointers aligned to 8 bytes, not 16 bytes as expected by

>>>gcc/ginclude/stddef.h (max_align_t).

>>>

>>>Thus, while checking if Solaris i386 malloc can be changed here, I'm

>>>xfailing the test.

>>>

>>>Tested on i386-pc-solaris2.11, amd64-pc-solaris2.11, and

>>>sparc-sun-solaris2.11.

>>>

>>>Ok for mainline?

>>

>> OK, thanks.

>

> installed on mainline.  I just noticed that the bug is marked as 7

> regression; I guess it's ok to backport to the gcc-7 branch, too?


Yes please.

Patch

# HG changeset patch
# Parent  0d630469e1009ecfe592a698e6e006be425518b8
xfail experimental/memory_resource/resource_adaptor.cc on 32-bit Solaris/x86 (PR libstdc++/77691)

diff --git a/libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc b/libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc
--- a/libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc
+++ b/libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc
@@ -1,4 +1,5 @@ 
 // { dg-do run { target c++14 } }
+// { dg-xfail-run-if "PR libstdc++/77691" { { i?86-*-solaris2.* x86_64-*-solaris2.* } && ilp32 } }
 
 // Copyright (C) 2016-2018 Free Software Foundation, Inc.
 //