.gdb_index writer: close the file before unlinking it
authorPedro Alves <palves@redhat.com>
Mon, 19 Jun 2017 11:46:47 +0000 (12:46 +0100)
committerPedro Alves <palves@redhat.com>
Mon, 19 Jun 2017 11:46:47 +0000 (12:46 +0100)
commit16b7a7199881fa26fc863279bbf08741e5674b5d
tree1c6382482a11c0a28d44fd0e5788a5cce8b0e608
parent72e84f969481f52daf6741c6bb4d0e92f9668389
.gdb_index writer: close the file before unlinking it

We should close the file before unlinking because on MS-Windows one
cannot delete a file that is still open.

I considered making 'gdb::unlinker::unlinker(const char *)'
'noexcept(true)' and then adding
  static_assert (noexcept (gdb::unlinker (filename.c_str ())), "");

but that doesn't really work because gdb::unlinker has a gdb_assert,
which can throw a QUIT if/when the assertion fails.  'noexcept(true)'
would cause GDB to abruptly terminate if/when the assertion fails.

gdb/ChangeLog:
2017-06-19  Pedro Alves  <palves@redhat.com>

* dwarf2read.c (write_psymtabs_to_index): Construct file_closer
after gdb::unlinker.
gdb/ChangeLog
gdb/dwarf2read.c