[nvptx, libgomp] Fix memleak in GOMP_OFFLOAD_fini_device
authorTom de Vries <tdevries@suse.de>
Thu, 24 Jan 2019 14:12:19 +0000 (14:12 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Thu, 24 Jan 2019 14:12:19 +0000 (14:12 +0000)
commit738c56d4104867713d8fe64dd0ddbdef56f9c67b
tree6accba5f52360417d24f463315367a1eb43c4be8
parent0e2eb6abeb77d86e672f0872bca5dd3528134734
[nvptx, libgomp] Fix memleak in GOMP_OFFLOAD_fini_device

I wrote a test-case:
...
int
main (void)
{
  for (unsigned i = 0; i < 128; ++i)
    {
      acc_init (acc_device_nvidia);
      acc_shutdown (acc_device_nvidia);
    }

  return 0;
}
...
and ran it under valgrind.  The only leak location reported with a frequency
of 128, was the allocation of ptx_devices in nvptx_init.

Fix this by freeing ptx_devices in GOMP_OFFLOAD_fini_device, once
instantiated_devices drops to 0.

2019-01-24  Tom de Vries  <tdevries@suse.de>

* plugin/plugin-nvptx.c (GOMP_OFFLOAD_fini_device): Free ptx_devices
once instantiated_devices drops to 0.

From-SVN: r268237
libgomp/ChangeLog
libgomp/plugin/plugin-nvptx.c