diff options
author | Pedro Alves <palves@redhat.com> | 2017-01-31 17:56:35 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2017-01-31 17:56:35 +0000 |
commit | 60adb36c08942fd4a2f8bf598864254c043668a1 (patch) | |
tree | 1ee9ea12a16283ab6788c6a9a1f6999806064110 /gdb/ChangeLog | |
parent | 1273da0414a2f2a31288749a17fe44cbef615ab5 (diff) | |
download | gdb-60adb36c08942fd4a2f8bf598864254c043668a1.zip gdb-60adb36c08942fd4a2f8bf598864254c043668a1.tar.gz gdb-60adb36c08942fd4a2f8bf598864254c043668a1.tar.bz2 |
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.
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r-- | gdb/ChangeLog | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 327b327..3e86d55 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +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. + 2017-01-27 Walfred Tedeschi <walfred.tedeschi@intel.com> Richard Henderson <rth@redhat.com> |