Re: gdb.c++ testsuite 1.3: member_data_static.exp (resend)

B. Kosnik
2002-05-29T15:19:44Z

> Compile the testcase (just -c will do). Then run `nm' over the
> symbols. Look for the `data' member; it isn't there. <optimized out>
> is correct. My C++ lawyering is a little rusty, but I believe this is
> correct; it's a templated member, and not explicitly instantiated, and
> not even implicitly instantiated. I don't see a reason for it to be
> emitted, and if it isn't emitted GDB can't help you figure out what
> its value is.

Aaah. You are correct.

Adding:
template class __gnu_test::gnu_obj_3<long>;
template class __gnu_test::gnu_obj_2<int>;

Gives:

(gdb) p test3
$1 = {static data = {<gnu_obj_1> = {static test = true, static key1 = 5,

static key2 = 77, static value = oriental}, _vptr.gnu_obj_2 =
0x8092fac,
static value_derived = etruscan}}

So, with this addition, this test case would pass, no?

-benjamin