Add GDB XMethods for shared_ptr and unique_ptr<T[]>
commitac98398ddc2e5156dee3e820ba95116280b999c3
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Dec 2016 12:45:42 +0000 (15 12:45 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Dec 2016 12:45:42 +0000 (15 12:45 +0000)
treeae1599078d94ec2e2137bc68e7a9105f160f8870
parent543772ad7747d360be1a2a4dda4db06e18e6e00b
Add GDB XMethods for shared_ptr and unique_ptr<T[]>

* python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker.__init__): Use
correct element type for unique_ptr<T[]>.
(UniquePtrGetWorker._supports, UniquePtrDerefWorker._supports): New
functions to disable unsupported operators for unique_ptr<T[]>.
(UniquePtrSubscriptWorker): New worker for operator[].
(UniquePtrMethodsMatcher.__init__): Register UniquePtrSubscriptWorker.
(UniquePtrMethodsMatcher.match): Call _supports on the chosen worker.
(SharedPtrGetWorker, SharedPtrDerefWorker, SharedPtrSubscriptWorker)
(SharedPtrUseCountWorker, SharedPtrUniqueWorker): New workers.
(SharedPtrMethodsMatcher): New matcher for shared_ptr.
(register_libstdcxx_xmethods): Register SharedPtrMethodsMatcher.
* testsuite/libstdc++-xmethods/unique_ptr.cc: Test arrays.
* testsuite/libstdc++-xmethods/shared_ptr.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@243688 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/python/libstdcxx/v6/xmethods.py
libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc [copied from libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc with 61% similarity]
libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc