Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2110580

Summary: Rebase devtoolset-12-gcc to GCC 12.2
Product: Red Hat Developer Toolset Reporter: Marek Polacek <mpolacek>
Component: gccAssignee: Marek Polacek <mpolacek>
gcc sub component: gcc-toolset-12 QA Contact: Václav Kadlčík <vkadlcik>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: unspecified CC: vkadlcik
Version: DTS 12.0 RHEL 7Keywords: Bugfix, Triaged
Target Milestone: alphaFlags: pm-rhel: mirror+
Target Release: 12.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: devtoolset-12-gcc-12.2.1-4.el7 Doc Type: Rebase: Bug Fixes Only
Doc Text:
Important: if this rebase also contains *enhancements* (or contains only enhancements), select the correct option from the Doc Type drop-down list. Rebase package(s) to version: 12.2 Highlights and important bug fixes:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-05-23 11:27:18 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 Marek Polacek 2022-07-25 16:33:15 UTC
GCC 12.2 should be released rather soon, and we should consider rebasing DTS/GTS GCC from it.

Comment 1 Marek Polacek 2022-07-25 16:36:48 UTC
This may be moved to DTS 12.1 if we don't have the time to do the rebase.

Comment 2 Marek Polacek 2022-08-01 16:05:07 UTC
Moved to DTS 12.1.

Comment 3 Marek Polacek 2022-11-30 18:35:05 UTC
Rebase done.  I see a new fail:

833068:FAIL: g++.dg/torture/pr106922.C   -O2  (test for excess errors)
833133:FAIL: g++.dg/torture/pr106922.C   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess errors)
833198:FAIL: g++.dg/torture/pr106922.C   -O3 -g  (test for excess errors)
833266:FAIL: g++.dg/torture/pr106922.C   -O2 -flto -fno-use-linker-plugin -flto-partition=none  (test for excess errors)
1813595:FAIL: g++.dg/torture/pr106922.C   -O2  (test for excess errors)
1813660:FAIL: g++.dg/torture/pr106922.C   -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess errors)
1813725:FAIL: g++.dg/torture/pr106922.C   -O3 -g  (test for excess errors)
1813793:FAIL: g++.dg/torture/pr106922.C   -O2 -flto -fno-use-linker-plugin -flto-partition=none  (test for excess errors)

due to

Excess errors:
/builddir/build/BUILD/gcc-12.2.1-20221121/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/stl_vector.h:730:22: warning: '*(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)((char*)&externals + offsetof(MyOptionalsStruct, MyOptionalsStruct::external2.MyOptionalStructWithInt::myoptional.std::optional<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::<unnamed>.std::_Optional_base<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, false, false>::<unnamed>)).std::vector<std::basic_string<char> >::<anonymous>.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_M_impl.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_Vector_impl::<anonymous>.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_Vector_impl_data::_M_finish' may be used uninitialized [-Wmaybe-uninitialized]
/builddir/build/BUILD/gcc-12.2.1-20221121/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/stl_vector.h:730:22: warning: '*(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)((char*)&externals + offsetof(MyOptionalsStruct, MyOptionalsStruct::external2.MyOptionalStructWithInt::myoptional.std::optional<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::<unnamed>.std::_Optional_base<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, false, false>::<unnamed>)).std::vector<std::basic_string<char> >::<anonymous>.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_M_impl.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_Vector_impl::<anonymous>.std::_Vector_base<std::basic_string<char>, std::allocator<std::basic_string<char> > >::_Vector_impl_data::_M_start' may be used uninitialized [-Wmaybe-uninitialized]


that I can't reproduce with vanilla GCC 12.

Comment 4 Marek Polacek 2022-11-30 19:16:01 UTC
(In reply to Marek Polacek from comment #3)
> Rebase done.  I see a new fail:
> 
> 833068:FAIL: g++.dg/torture/pr106922.C   -O2  (test for excess errors)
> 833133:FAIL: g++.dg/torture/pr106922.C   -O3 -fomit-frame-pointer
> -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess
> errors)
> 833198:FAIL: g++.dg/torture/pr106922.C   -O3 -g  (test for excess errors)
> 833266:FAIL: g++.dg/torture/pr106922.C   -O2 -flto -fno-use-linker-plugin
> -flto-partition=none  (test for excess errors)
> 1813595:FAIL: g++.dg/torture/pr106922.C   -O2  (test for excess errors)
> 1813660:FAIL: g++.dg/torture/pr106922.C   -O3 -fomit-frame-pointer
> -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess
> errors)
> 1813725:FAIL: g++.dg/torture/pr106922.C   -O3 -g  (test for excess errors)
> 1813793:FAIL: g++.dg/torture/pr106922.C   -O2 -flto -fno-use-linker-plugin
> -flto-partition=none  (test for excess errors)
> 
> due to
> 
> Excess errors:
> /builddir/build/BUILD/gcc-12.2.1-20221121/obj-x86_64-redhat-linux/x86_64-
> redhat-linux/libstdc++-v3/include/bits/stl_vector.h:730:22: warning:
> '*(std::vector<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, std::allocator<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > > >*)((char*)&externals +
> offsetof(MyOptionalsStruct,
> MyOptionalsStruct::external2.MyOptionalStructWithInt::myoptional.std::
> optional<std::vector<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, std::allocator<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > > >
> >::<unnamed>.std::_Optional_base<std::vector<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::allocator<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > > >, false,
> false>::<unnamed>)).std::vector<std::basic_string<char>
> >::<anonymous>.std::_Vector_base<std::basic_string<char>,
> std::allocator<std::basic_string<char> >
> >::_M_impl.std::_Vector_base<std::basic_string<char>,
> std::allocator<std::basic_string<char> >
> >::_Vector_impl::<anonymous>.std::_Vector_base<std::basic_string<char>,
> std::allocator<std::basic_string<char> > >::_Vector_impl_data::_M_finish'
> may be used uninitialized [-Wmaybe-uninitialized]
> /builddir/build/BUILD/gcc-12.2.1-20221121/obj-x86_64-redhat-linux/x86_64-
> redhat-linux/libstdc++-v3/include/bits/stl_vector.h:730:22: warning:
> '*(std::vector<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, std::allocator<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > > >*)((char*)&externals +
> offsetof(MyOptionalsStruct,
> MyOptionalsStruct::external2.MyOptionalStructWithInt::myoptional.std::
> optional<std::vector<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, std::allocator<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > > >
> >::<unnamed>.std::_Optional_base<std::vector<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::allocator<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > > >, false,
> false>::<unnamed>)).std::vector<std::basic_string<char>
> >::<anonymous>.std::_Vector_base<std::basic_string<char>,
> std::allocator<std::basic_string<char> >
> >::_M_impl.std::_Vector_base<std::basic_string<char>,
> std::allocator<std::basic_string<char> >
> >::_Vector_impl::<anonymous>.std::_Vector_base<std::basic_string<char>,
> std::allocator<std::basic_string<char> > >::_Vector_impl_data::_M_start' may
> be used uninitialized [-Wmaybe-uninitialized]
> 
> 
> that I can't reproduce with vanilla GCC 12.

Reproduces with -D_GLIBCXX_USE_CXX11_ABI=0.  I think I'll fix the test by adding:

#define _GLIBCXX_USE_CXX11_ABI 1

but I won't do a rebuild just because of this.

Comment 10 errata-xmlrpc 2023-05-23 11:27:18 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 (devtoolset-12-gcc bug fix and enhancement update), and where to find the updated
files, follow the link below.

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

https://access.redhat.com/errata/RHBA-2023:3272