This is the mail archive of the
gdb-testers@sourceware.org
mailing list for the GDB project.
[binutils-gdb] gdb: make_scoped_restore and types convertible to T
- From: sergiodj+buildbot at sergiodj dot net
- To: gdb-testers at sourceware dot org
- Date: Tue, 31 Jan 2017 18:53:12 -0500
- Subject: [binutils-gdb] gdb: make_scoped_restore and types convertible to T
- Authentication-results: sourceware.org; auth=none
*** TEST RESULTS FOR COMMIT 60adb36c08942fd4a2f8bf598864254c043668a1 ***
Author: Pedro Alves <palves@redhat.com>
Branch: master
Commit: 60adb36c08942fd4a2f8bf598864254c043668a1
gdb: make_scoped_restore and types convertible to T
A following patch will want to do
string_file str_file;
scoped_restore save_stdout
= make_scoped_restore (&gdb_stdout, &str_file);
where gdb_stdout is a ui_file *, and string_file is a type that
inherits from ui_file, but that doesn't compile today:
src/gdb/top.c: In function std::__cxx11::string execute_command_to_string(char*, int):
src/gdb/top.c:710:50: error: no matching function for call to make_scoped_restore(ui_file**, string_file*)
= make_scoped_restore (&gdb_stdout, &str_file);
^
[...]
In file included from src/gdb/utils.h:25:0,
from src/gdb/defs.h:732,
from src/gdb/top.c:20:
src/gdb/common/scoped_restore.h:94:24: note: candidate: template<class T> scoped_restore_tmpl<T> make_scoped_restore(T*, T)
scoped_restore_tmpl<T> make_scoped_restore (T *var, T value)
^
src/gdb/common/scoped_restore.h:94:24: note: template argument deduction/substitution failed:
src/gdb/top.c:710:50: note: deduced conflicting types for parameter T (ui_file* and string_file*)
= make_scoped_restore (&gdb_stdout, &str_file);
^
This commit makes code such as the above possible.
gdb/ChangeLog:
2017-01-31 Pedro Alves <palves@redhat.com>
* common/scoped_restore.h
(scoped_restore_tmpl::scoped_restore_tmpl): Template on T2, and
change the value's parameter type to T2.
(make_scoped_restore): Likewise.
- Follow-Ups:
- Failures on Debian-s390x-native-extended-gdbserver-m64, branch master
- Failures on Ubuntu-AArch64-native-gdbserver-m64, branch master
- Failures on Fedora-ppc64le-native-gdbserver-m64, branch master
- Failures on Debian-s390x-m64, branch master
- Failures on Fedora-ppc64le-m64, branch master
- Failures on Fedora-ppc64be-native-extended-gdbserver-m64, branch master
- Failures on Fedora-ppc64le-native-extended-gdbserver-m64, branch master
- Failures on Fedora-ppc64le-cc-with-index, branch master
- Failures on Fedora-x86_64-native-extended-gdbserver-m32, branch master
- Failures on Fedora-i686, branch master