Bug 1416214 - GCC 4.8.5 valarray regression - fix available
Summary: GCC 4.8.5 valarray regression - fix available
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: gcc
Version: 7.3
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: Jakub Jelinek
QA Contact: Michael Petlan
Depends On:
TreeView+ depends on / blocked
Reported: 2017-01-24 21:44 UTC by Sébastien Aubry
Modified: 2017-08-01 22:35 UTC (History)
3 users (show)

Fixed In Version: gcc-4.8.5-12.el7
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2017-08-01 22:35:59 UTC
Target Upstream Version:

Attachments (Terms of Use)
Test this code with "g++ test.cpp" (258 bytes, text/x-csrc)
2017-01-24 21:44 UTC, Sébastien Aubry
no flags Details

System ID Private Priority Status Summary Last Updated
CentOS 12472 0 None None None 2017-01-25 21:13:03 UTC
GNU Compiler Collection 69116 0 None None None 2017-01-24 21:44:48 UTC
Red Hat Product Errata RHBA-2017:2094 0 normal SHIPPED_LIVE gcc bug fix update 2017-08-01 19:36:07 UTC

Description Sébastien Aubry 2017-01-24 21:44:49 UTC
Created attachment 1244090 [details]
Test this code with "g++ test.cpp"

The attached C++ code has been compiling fine since RHEL 5, and does not compile anymore under RHEL 7.3 using GCC 4.8.5.
The related bug (involving valarray, endl and <<) has been identified and fixed in GCC 4.9.4, 5.4 and 6.1: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69116

I would like to know if a backport to the 4.8 package is possible.


# gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)

# g++ test.cpp
In file included from test.cpp:2:0:
/usr/include/c++/4.8.2/valarray: In instantiation of 'class std::valarray<Logger>':
test.cpp:14:21: required from here
/usr/include/c++/4.8.2/valarray:926:5: error: cannot allocate an object of abstract type 'Logger'
     valarray<_Tp>::sum() const
test.cpp:4:7: note: because the following virtual functions are pure within 'Logger':
 class Logger {
test.cpp:9:18: note: virtual void Logger::write()
     virtual void write() = 0;

Comment 3 Michael Petlan 2017-05-31 14:12:45 UTC
The related test passes on all architectures with gcc-4.8.5-14.el7.

Comment 4 errata-xmlrpc 2017-08-01 22:35:59 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.