Fix use of the getOpenFile api.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 23 Jul 2013 18:44:31 +0000 (18:44 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 23 Jul 2013 18:44:31 +0000 (18:44 +0000)
The gold plugin was passing the desired map size as the file size. This was
working for two reasons:
* Recent version of gold provide the get_view callback, so this code was not
  used.
* In older versions, getOpenFile was called, but the file size is never used
  if we don't require null terminated buffers and map size defaults to the
  file size.

Thanks to Eli Bendersky for noticing this.

I will try to make this api a bit less error prone.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186978 91177308-0d34-0410-b5e6-96231b3b80d8

tools/gold/gold-plugin.cpp

index 27fe3acd0cf17709b02a2f1142bf8b97f13a6fa4..133eca48e50e070ef19eef4de097693e6856631e 100644 (file)
@@ -253,8 +253,8 @@ static ld_plugin_status claim_file_hook(const ld_plugin_input_file *file,
       offset = file->offset;
     }
     if (error_code ec =
-        MemoryBuffer::getOpenFile(file->fd, file->name, buffer, file->filesize,
-                                  -1, offset, false)) {
+        MemoryBuffer::getOpenFile(file->fd, file->name, buffer, -1,
+                                  file->filesize, offset, false)) {
       (*message)(LDPL_ERROR, ec.message().c_str());
       return LDPS_ERR;
     }