From fed5a5acc523097a03d9e543cb3f968c5a542606 Mon Sep 17 00:00:00 2001 From: Kavitha Natarajan Date: Thu, 28 Oct 2021 10:51:32 +0530 Subject: [PATCH] [gdb/testsuite] Initialize anonymous union in gdb.cp/koenig.cc GDB test fails while running the test case gdb.cp/koenig.exp using clang compiler: [...] p foo (p_union) No symbol "p_union" in current context. (gdb) FAIL: gdb.cp/koenig.exp: p foo (p_union) [...] In the testcase, "p_union" is an unused/uninitialized variable of anonymous union type. Clang does not emit symbol for unused anonymous union/struct variables at any optimization level. Since the compiler itself is not emitting the symbol for "p_union", debug info is also not emitted when built with debug option. If the anonymous union is initialized (or used), then clang emits the symbol "p_union" which enables emitting debug info for "p_union". [...] p foo (p_union) Cannot resolve function foo to any overloaded instance (gdb) PASS: gdb.cp/koenig.exp: p foo (p_union) [...] --- gdb/testsuite/gdb.cp/koenig.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gdb/testsuite/gdb.cp/koenig.cc b/gdb/testsuite/gdb.cp/koenig.cc index 01e2637cfbd..f7dd083b044 100644 --- a/gdb/testsuite/gdb.cp/koenig.cc +++ b/gdb/testsuite/gdb.cp/koenig.cc @@ -305,6 +305,8 @@ main () TTOA ttoa; foo (ttoa, 'a'); + p_union = {0}; + P::Q q; q == 5; q == 5.0f; -- 2.30.2