From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 7942E386186A; Wed, 2 Sep 2020 16:51:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7942E386186A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1599065519; bh=9SbVSq7OIjEPkhnE1jK1zsmZJZ0iDa5zBdVXkqfTZGo=; h=From:To:Subject:Date:From; b=AHgtJxVZnUexHYNnhpb5Bu6aEL+lW0B7BtPSq7F4NyX3KK8Oq0II8Bjy4Uvvx73bH uB5ffY8bKT2z/x1nHnPKtDNYKMQhUjvHeyYZRykgrAisrOdvqy1pemFMOTDK/93EuM k90+qMY1A398/crNYzZne8x6lM2IEbe5NTDXTjdU= From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/96901] New: [11 Regression] Many libstdc++ tests FAIL on i686-linux due to a PCH FE bug Date: Wed, 02 Sep 2020 16:51:59 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Sep 2020 16:51:59 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D96901 Bug ID: 96901 Summary: [11 Regression] Many libstdc++ tests FAIL on i686-linux due to a PCH FE bug Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- I'm seeing following regressions between Monday and Tuesday evening CET tru= nk bootstraps: Running target unix +FAIL: 20_util/bind/42593.cc (test for excess errors) +FAIL: 20_util/bind/48698.cc (test for excess errors) +FAIL: 20_util/is_compound/value.cc (test for excess errors) +FAIL: 20_util/is_fundamental/value.cc (test for excess errors) +FAIL: 20_util/is_signed/value.cc (test for excess errors) +FAIL: 20_util/is_unsigned/value.cc (test for excess errors) +FAIL: 20_util/unique_ptr/assign/nullptr.cc (test for excess errors) +UNRESOLVED: 20_util/unique_ptr/assign/nullptr.cc compilation failed to pro= duce executable +FAIL: 20_util/unique_ptr/cons/convertible_neg.cc (test for excess errors) +FAIL: 20_util/unique_ptr/cons/incomplete.cc (test for excess errors) +FAIL: 20_util/unique_ptr/cons/nullptr.cc (test for excess errors) +UNRESOLVED: 20_util/unique_ptr/cons/nullptr.cc compilation failed to produ= ce executable +FAIL: 20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiati= on.cc (test for excess errors) +FAIL: 21_strings/basic_string/allocator/wchar_t/noexcept.cc (test for exce= ss errors) +FAIL: 22_locale/conversions/string/requirements/typedefs-2.cc (test for ex= cess errors) +FAIL: 23_containers/list/allocator/noexcept.cc (test for excess errors) +FAIL: 23_containers/map/modifiers/insert/2.cc (test for excess errors) +UNRESOLVED: 23_containers/map/modifiers/insert/2.cc compilation failed to produce executable +FAIL: 23_containers/map/modifiers/insert/5.cc (test for excess errors) +UNRESOLVED: 23_containers/map/modifiers/insert/5.cc compilation failed to produce executable +FAIL: 23_containers/multimap/modifiers/insert/2.cc (test for excess errors) +UNRESOLVED: 23_containers/multimap/modifiers/insert/2.cc compilation faile= d to produce executable +FAIL: 23_containers/multimap/modifiers/insert/22102.cc (test for excess errors) +UNRESOLVED: 23_containers/multimap/modifiers/insert/22102.cc compilation failed to produce executable +FAIL: 23_containers/multimap/modifiers/insert/4.cc (test for excess errors) +UNRESOLVED: 23_containers/multimap/modifiers/insert/4.cc compilation faile= d to produce executable +FAIL: 23_containers/multiset/allocator/swap.cc (test for excess errors) +UNRESOLVED: 23_containers/multiset/allocator/swap.cc compilation failed to produce executable +FAIL: 23_containers/set/allocator/swap.cc (test for excess errors) +UNRESOLVED: 23_containers/set/allocator/swap.cc compilation failed to prod= uce executable +FAIL: 23_containers/unordered_map/insert/map_single_move-2.cc (test for ex= cess errors) +UNRESOLVED: 23_containers/unordered_map/insert/map_single_move-2.cc compilation failed to produce executable +FAIL: 23_containers/unordered_map/modifiers/reserve.cc (test for excess errors) +UNRESOLVED: 23_containers/unordered_map/modifiers/reserve.cc compilation failed to produce executable +FAIL: 23_containers/vector/allocator/noexcept.cc (test for excess errors) +FAIL: 23_containers/vector/bool/allocator/noexcept.cc (test for excess err= ors) +FAIL: 25_algorithms/max/constexpr.cc (test for excess errors) +FAIL: 25_algorithms/min/constexpr.cc (test for excess errors) +FAIL: 26_numerics/random/cauchy_distribution/cons/default.cc (test for exc= ess errors) +UNRESOLVED: 26_numerics/random/cauchy_distribution/cons/default.cc compila= tion failed to produce executable +FAIL: 26_numerics/random/extreme_value_distribution/cons/default.cc (test = for excess errors) +UNRESOLVED: 26_numerics/random/extreme_value_distribution/cons/default.cc compilation failed to produce executable +FAIL: 26_numerics/random/normal_distribution/cons/default.cc (test for exc= ess errors) +UNRESOLVED: 26_numerics/random/normal_distribution/cons/default.cc compila= tion failed to produce executable +FAIL: 26_numerics/random/student_t_distribution/cons/default.cc (test for excess errors) +UNRESOLVED: 26_numerics/random/student_t_distribution/cons/default.cc compilation failed to produce executable +FAIL: 28_regex/match_results/ctors/wchar_t/default.cc (test for excess err= ors) +UNRESOLVED: 28_regex/match_results/ctors/wchar_t/default.cc compilation fa= iled to produce executable FAIL: 29_atomics/atomic_float/1.cc execution test +FAIL: 30_threads/thread/adl.cc (test for excess errors) +FAIL: experimental/net/buffer/traits.cc (test for excess errors) +FAIL: experimental/net/execution_context/make_service.cc (test for excess errors) FAIL: experimental/net/internet/resolver/ops/lookup.cc execution test +FAIL: experimental/optional/relops/2.cc (test for excess errors) +UNRESOLVED: experimental/optional/relops/2.cc compilation failed to produce executable +FAIL: experimental/optional/relops/3.cc (test for excess errors) +UNRESOLVED: experimental/optional/relops/3.cc compilation failed to produce executable +FAIL: ext/random/normal_mv_distribution/cons/default.cc (test for excess errors) +UNRESOLVED: ext/random/normal_mv_distribution/cons/default.cc compilation failed to produce executable =3D=3D=3D libstdc++ Summary =3D=3D=3D -# of expected passes 15192 -# of unexpected failures 2 +# of expected passes 15136 +# of unexpected failures 40 # of expected failures 98 +# of unresolved testcases 19 # of unsupported tests 334 -Compiler version: 11.0.0 20200831 (experimental) (GCC)=20 +Compiler version: 11.0.0 20200901 (experimental) (GCC)=20 Platform: i686-pc-linux-gnu The regressions ICEs are all PCH related, with ICEs like: FAIL: 20_util/bind/42593.cc (test for excess errors) Excess errors: /home/jakub/src/gcc/obj71/i686-pc-linux-gnu/libstdc++-v3/include/chrono:441= :=20=20 in 'constexpr' expansion of 'std::chrono::duration >::_S_gcd(((intmax_t)std::ratio<1>::den), ((intmax_t)std::ratio= <1, 1000000000>::den))' /home/jakub/src/gcc/obj71/i686-pc-linux-gnu/libstdc++-v3/include/chrono:442: internal compiler error: Segmentation fault 0x8dd035a crash_signal ../../gcc/toplev.c:327 0x86877b6 cxx_eval_call_expression ../../gcc/cp/constexpr.c:2622 0x8688782 cxx_eval_constant_expression ../../gcc/cp/constexpr.c:5765 0x868bcab cxx_eval_outermost_constant_expr ../../gcc/cp/constexpr.c:6772 0x86901c0 maybe_constant_value(tree_node*, tree_node*, bool) ../../gcc/cp/constexpr.c:7045 0x87195dc fold_for_warn(tree_node*) ../../gcc/cp/expr.c:418 It is PCH related and very hard to reproduce, after all, the same cc1plus doesn't crash always, but only sometimes. I've tracked it to what seems to be another occurrence of PR92458, this tim= e on fundef_copies_table. This is a non-deletable non-cache hash_map preserved across PCH, which means it is hashed when compiling the PCH header using pointer hashing of the decls, then PCH reassigns addresses to GC registered objects. When PCH is read, the hash_map will usually contain ke= ys with different hash values compared to what it hashed originally, so there = are chances that some fundef->decl isn't found. The ICE is because we don't fi= nd an entry for _S_gcd, so add a for now NULL value to that function, but the addition to the hash table results in later call not finding that NULL ent= ry, but some other one from before PCH was saved, which results in very bad thi= ngs for recursive constexpr calls.=