Bug 1306657

Summary: polymake-2.14r1-6.fc24 FTBFS: '_M_data' is not a member of 'pm::std_list_traits<pm::facet_list::facet<true> >::Node {aka std::_List_node<pm::facet_list::facet<true> >}'
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: polymakeAssignee: Jerry James <loganjerry>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 24CC: jwakely, loganjerry
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://koji.fedoraproject.org/koji/buildinfo?buildID=728610
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-05 19:52:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Petr Pisar 2016-02-11 14:25:19 UTC
polymake-2.14r1-6.fc24 fails to build in F24:

g++ -c -o FacetList.o -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -I/usr/include/eigen3 -Wno-unused-local-typedefs -I/builddir/build/BUILD/polymake-2.14r1/include/core-wrappers -I/builddir/build/BUILD/polymake-2.14r1/include/core -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -I/usr/include/eigen3 -Wno-unused-local-typedefs -ftemplate-depth-200 -Wall -Wno-strict-aliasing -Wno-parentheses -fwrapv -fopenmp -I/builddir/build/BUILD/polymake-2.14r1/include/core-wrappers -I/builddir/build/BUILD/polymake-2.14r1/include/core -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches  -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -I/usr/include/eigen3 -Wno-unused-local-typedefs -ftemplate-depth-200 -Wall -Wno-strict-aliasing -Wno-parentheses -fwrapv -fopenmp -DNDEBUG -DPOLYMAKE_DEBUG=0 -O2 -MD     /builddir/build/BUILD/polymake-2.14r1/lib/core/src/FacetList.cc
In file included from /builddir/build/BUILD/polymake-2.14r1/include/core-wrappers/polymake/list:20:0,
                 from /builddir/build/BUILD/polymake-2.14r1/include/core/polymake/permutations.h:27,
                 from /builddir/build/BUILD/polymake-2.14r1/include/core/polymake/IncidenceMatrix.h:28,
                 from /builddir/build/BUILD/polymake-2.14r1/include/core-wrappers/polymake/IncidenceMatrix.h:20,
                 from /builddir/build/BUILD/polymake-2.14r1/include/core/polymake/FacetList.h:25,
                 from /builddir/build/BUILD/polymake-2.14r1/include/core-wrappers/polymake/FacetList.h:20,
                 from /builddir/build/BUILD/polymake-2.14r1/lib/core/src/FacetList.cc:21:
/builddir/build/BUILD/polymake-2.14r1/include/core/polymake/list: In instantiation of 'static pm::std_list_traits<Value, Alloc>::Node* pm::std_list_traits<Value, Alloc>::to_node(Value*) [with Value = pm::facet_list::facet<true>; Alloc = std::allocator<pm::facet_list::facet<true> >; pm::std_list_traits<Value, Alloc>::Node = std::_List_node<pm::facet_list::facet<true> >]':
/builddir/build/BUILD/polymake-2.14r1/include/core/polymake/FacetList.h:940:95:   required from here
/builddir/build/BUILD/polymake-2.14r1/include/core/polymake/list:52:33: error: '_M_data' is not a member of 'pm::std_list_traits<pm::facet_list::facet<true> >::Node {aka std::_List_node<pm::facet_list::facet<true> >}'
       return reverse_cast(data, &Node::_M_data);
                                 ^~~~~

This seems to be triggered by GCC 6.

Comment 1 Jonathan Wakely 2016-02-11 17:54:48 UTC
It's triggered by code that is completely undefined, nonportable, and should never have seen the light of day.

_M_data is a private implementation detail and this code has no business ever using it. That member is only present in C++98 mode, so fails when using -std=c++11, or the implicit -std=gnu++14 in GCC 6.

Comment 2 Jan Kurik 2016-02-24 14:29:52 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle.
Changing version to '24'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase