diff options
author | Doug Evans <dje@google.com> | 2015-05-26 23:06:55 +0000 |
---|---|---|
committer | Doug Evans <devans@gcc.gnu.org> | 2015-05-26 23:06:55 +0000 |
commit | 419587a0bb9c22c0088e6fca5449af957db2c5bb (patch) | |
tree | 56f1102ebf225578799af23855f6725d2cdffad8 | |
parent | afa5920a97b539b111a2f1593717ee7ef14f7bdb (diff) | |
download | gcc-419587a0bb9c22c0088e6fca5449af957db2c5bb.zip gcc-419587a0bb9c22c0088e6fca5449af957db2c5bb.tar.gz gcc-419587a0bb9c22c0088e6fca5449af957db2c5bb.tar.bz2 |
xmethods.py (UniquePtrMethodsMatcher): Add operator-> support.
* python/libstdcxx/v6/xmethods.py (UniquePtrMethodsMatcher): Add
operator-> support.
* testsuite/libstdc++-xmethods/unique_ptr.cc: Add tests for
operator->.
From-SVN: r223723
-rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/python/libstdcxx/v6/xmethods.py | 1 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc | 19 |
3 files changed, 26 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index af08a73..fa3963d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2015-05-26 Doug Evans <dje@google.com> + + * python/libstdcxx/v6/xmethods.py (UniquePtrMethodsMatcher): Add + operator-> support. + * testsuite/libstdc++-xmethods/unique_ptr.cc: Add tests for + operator->. + 2015-05-26 Jonathan Wakely <jwakely@redhat.com> * include/bits/locale_conv.h: Fix copyright years. diff --git a/libstdc++-v3/python/libstdcxx/v6/xmethods.py b/libstdc++-v3/python/libstdcxx/v6/xmethods.py index 6db0e16..c85dd67 100644 --- a/libstdc++-v3/python/libstdcxx/v6/xmethods.py +++ b/libstdc++-v3/python/libstdcxx/v6/xmethods.py @@ -584,6 +584,7 @@ class UniquePtrMethodsMatcher(gdb.xmethod.XMethodMatcher): matcher_name_prefix + 'unique_ptr') self._method_dict = { 'get': LibStdCxxXMethod('get', UniquePtrGetWorker), + 'operator->': LibStdCxxXMethod('operator->', UniquePtrGetWorker), 'operator*': LibStdCxxXMethod('operator*', UniquePtrDerefWorker), } self.methods = [self._method_dict[m] for m in self._method_dict] diff --git a/libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc b/libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc index 5d59b55..c449f52 100644 --- a/libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc +++ b/libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc @@ -20,19 +20,36 @@ #include <memory> +struct x_struct +{ + int y; +}; + int main () { int *i = new int; *i = 10; - std::unique_ptr<int> p(i); + + x_struct *x = new x_struct; + x->y = 23; + std::unique_ptr<x_struct> q(x); + // { dg-final { note-test *p 10 } } // { dg-final { regexp-test p.get() 0x.* } } // { dg-final { whatis-test *p int } } // { dg-final { whatis-test p.get() "int \*" } } +// { dg-final { note-test *q {\{y = 23\}} } } +// { dg-final { regexp-test q.get() 0x.* } } +// { dg-final { note-test q->y 23 } } + +// { dg-final { whatis-test *q x_struct } } +// { dg-final { whatis-test q.get() "x_struct \*" } } +// { dg-final { whatis-test q->y int } } + return 0; // Mark SPOT } |