old-cross-binutils/gdb/testsuite/gdb.cp/mb-ctor.cc
Vladimir Prus ed0616c6b7 * breakpoint.c (remove_sal): New.
(expand_line_sal_maybe): New.
	(create_breakpoints): Call expand_line_sal_maybe.
	(clear_command): Add comment.
	(breakpoint_re_set_one): Call expand_line_sal_maybe.
	* linespec.c (decode_indirect): Set explicit_pc to 1.
	(decode_all_digits): Set explicit_line to 1.
	(append_expanded_sal): New.
	(expand_line_sal): New.
	* linespec.h (expand_line_sal): Declare.
	* symtab.c (init_sal): Initialize explicit_pc
	and explicit_line.
	* symtab.h (struct symtab_and_line): New fields
	explicit_pc and explicit_line.
2007-09-24 07:40:32 +00:00

58 lines
762 B
C++

#include <stdio.h>
class Base
{
public:
Base(int k);
~Base();
virtual void foo() {}
private:
int k;
};
Base::Base(int k)
{
this->k = k;
}
Base::~Base()
{
printf("~Base\n");
}
class Derived : public virtual Base
{
public:
Derived(int i);
~Derived();
private:
int i;
};
Derived::Derived(int i) : Base(i)
{
this->i = i;
}
Derived::~Derived()
{
printf("~Derived\n");
}
class DeeplyDerived : public Derived
{
public:
DeeplyDerived(int i) : Base(i), Derived(i) {}
};
int main()
{
/* Invokes the Derived ctor that constructs both
Derived and Base. */
Derived d(7);
/* Invokes the Derived ctor that constructs only
Derived. Base is constructed separately by
DeeplyDerived's ctor. */
DeeplyDerived dd(15);
}