cxx11.cc (struct datum): New.

* testsuite/libstdc++-prettyprinters/cxx11.cc (struct datum):
	New.
	(global): New global.
	(main): Add test for unique_ptr.
	* python/libstdcxx/v6/printers.py
	(UniquePointerPrinter.to_string): Extract the pointer and also
	print its type.

From-SVN: r190417
This commit is contained in:
Tom Tromey 2012-08-15 18:37:30 +00:00 committed by Tom Tromey
parent 5dfe1ad496
commit c4269a634c
3 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,13 @@
2012-08-15 Tom Tromey <tromey@redhat.com>
* testsuite/libstdc++-prettyprinters/cxx11.cc (struct datum):
New.
(global): New global.
(main): Add test for unique_ptr.
* python/libstdcxx/v6/printers.py
(UniquePointerPrinter.to_string): Extract the pointer and also
print its type.
2012-08-13 David Adler <d.adler.s@gmail.com>
PR libstdc++/54185

View File

@ -71,7 +71,9 @@ class UniquePointerPrinter:
self.val = val
def to_string (self):
return self.val['_M_t']
v = self.val['_M_t']['_M_head_impl']
return ('std::unique_ptr<%s> containing %s' % (str(v.type.target()),
str(v)))
class StdListPrinter:
"Print a std::list"

View File

@ -48,6 +48,14 @@ use(const T &container)
placeholder(*i);
}
struct datum
{
std::string s;
int i;
};
std::unique_ptr<datum> global;
int
main()
{
@ -86,6 +94,11 @@ main()
uoms.insert(5);
// { dg-final { note-test uoms {std::unordered_multiset with 1 elements = {[0] = 5}} } }
std::unique_ptr<datum> uptr (new datum);
uptr->s = "hi bob";
uptr->i = 23;
// { dg-final { regexp-test uptr {std::unique_ptr.datum. containing 0x.*} } }
placeholder(""); // Mark SPOT
use(efl);
use(fl);
@ -93,6 +106,8 @@ main()
use(eumm);
use(eus);
use(eums);
use(uoms);
use(uptr->s);
return 0;
}