[gdb/testsuite] Initialize anonymous union in gdb.cp/koenig.cc
authorKavitha Natarajan <kavitha.natarajan@amd.com>
Thu, 28 Oct 2021 05:21:32 +0000 (10:51 +0530)
committerKavitha Natarajan <kavitha.natarajan@amd.com>
Thu, 28 Oct 2021 05:21:32 +0000 (10:51 +0530)
commitfed5a5acc523097a03d9e543cb3f968c5a542606
treed8dbb1f97805578ee5a28e9b14c281ebf6827d4d
parent0a0ff9d931ea7b2f0bc3c7c9ef6029f3d08e5a90
[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