From: Kavitha Natarajan Date: Thu, 28 Oct 2021 05:21:32 +0000 (+0530) Subject: [gdb/testsuite] Initialize anonymous union in gdb.cp/koenig.cc X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fed5a5acc523097a03d9e543cb3f968c5a542606;p=binutils-gdb.git [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) [...] --- 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;