aboutsummaryrefslogtreecommitdiff
path: root/gdb/stack.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2017-01-31 17:56:35 +0000
committerPedro Alves <palves@redhat.com>2017-01-31 17:56:35 +0000
commit60adb36c08942fd4a2f8bf598864254c043668a1 (patch)
tree1ee9ea12a16283ab6788c6a9a1f6999806064110 /gdb/stack.c
parent1273da0414a2f2a31288749a17fe44cbef615ab5 (diff)
downloadbinutils-60adb36c08942fd4a2f8bf598864254c043668a1.zip
binutils-60adb36c08942fd4a2f8bf598864254c043668a1.tar.gz
binutils-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/stack.c')
0 files changed, 0 insertions, 0 deletions