From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 876663857432; Thu, 28 Apr 2022 09:09:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 876663857432 From: "guojiufu at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/105418] New: debug_tree does not support well for std::construct_at Date: Thu, 28 Apr 2022 09:09:07 +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: 12.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: guojiufu 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: Thu, 28 Apr 2022 09:09:07 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D105418 Bug ID: 105418 Summary: debug_tree does not support well for std::construct_at Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: guojiufu at gcc dot gnu.org Target Milestone: --- During debug GCC, when call "debug_tree" inside gdb, I found "debug_tree" f= ail on "std::construct_at". It fails from "decl_as_string" To reproduce this issue quicker, the below patch could be used.=20 ----------- diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc index cebf9c35c1d..ead4112dd37 100644 --- a/gcc/cp/module.cc +++ b/gcc/cp/module.cc @@ -4793,10 +4793,12 @@ trees_out::get_tag (tree t) } /* Insert T into the map, return its tag number. */ - +const char* decl_as_string(tree, int);//void debug_tree(tree); int trees_out::insert (tree t, walk_kind walk) { + if (TREE_CODE (t) =3D=3D FUNCTION_DECL) + decl_as_string (t,TFF_DECL_SPECIFIERS);//debug_tree (t); gcc_checking_assert (walk !=3D WK_normal || !TREE_VISITED (t)); int tag =3D --ref_num; bool existed; ---------- configure the GCC with below command: $ configure --enable-languages=3Dc,c++ --with-cpu=3Dnative --enable-checking --with-long-double-128 --prefix=3D/home/guojiufu/gcc/install/gcc-mainline-base-debug --disable-boo= tstrap Using test case: t.cc ----------- #include struct S { int x; float y; double z; S(int x, float y, double z) : x{x}, y{y}, z{z} { } }; void foo() { alignas(S) unsigned char storage[sizeof(S)]; S* ptr =3D std::construct_at(reinterpret_cast(storage), 42, 2.71828= f, 3.1415); std::destroy_at(ptr); } ------------ $ g++ -fmodule-header t.cc -std=3Dgnu++20 In file included from /home/guojiufu/gcc/build/gcc-mainline-base-debug/powerpc64le-unknown-linux-= gnu/libstdc++-v3/include/bits/stl_iterator.h:85, from /home/guojiufu/gcc/build/gcc-mainline-base-debug/powerpc64le-unknown-linux-= gnu/libstdc++-v3/include/bits/stl_algobase.h:67, from /home/guojiufu/gcc/build/gcc-mainline-base-debug/powerpc64le-unknown-linux-= gnu/libstdc++-v3/include/memory:63, from t.cc:1: /home/guojiufu/gcc/build/gcc-mainline-base-debug/powerpc64le-unknown-linux-= gnu/libstdc++-v3/include/bits/stl_construct.h:96:17: internal compiler error: in perform_overload_resolution, at cp/call.cc:4710 96 | -> decltype(::new((void*)0) _Tp(std::declval<_Args>()...)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x106b32cb perform_overload_resolution /home/guojiufu/gcc/gcc-mainline-base/gcc/cp/call.cc:4710 0x106b3d9f build_operator_new_call(tree_node*, vec**, tree_node**, tree_node**, tree_node*, tree_node*, tree_node**, int) /home/guojiufu/gcc/gcc-mainline-base/gcc/cp/call.cc:4929 0x108d0743 build_new_1 /home/guojiufu/gcc/gcc-mainline-base/gcc/cp/init.cc:3412 0x108d300f build_new(unsigned int, vec**, tree_node*, tree_node*, vec**, int, int) /home/guojiufu/gcc/gcc-mainline-base/gcc/cp/init.cc:4014 0x10b210ef tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, b= ool, bool) /home/guojiufu/gcc/gcc-mainline-base/gcc/cp/pt.cc:20557 0x10b01ddf tsubst(tree_node*, tree_node*, int, tree_node*) /home/guojiufu/gcc/gcc-mainline-base/gcc/cp/pt.cc:16306 0x10896f6b dump_template_bindings /home/guojiufu/gcc/gcc-mainline-base/gcc/cp/error.cc:486 0x1089f887 dump_substitution /home/guojiufu/gcc/gcc-mainline-base/gcc/cp/error.cc:1654=