OSDN Git Service

Object, COFF: Don't consider AuxFunctionDefinition for getSymbolSize
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 6 Nov 2014 21:46:55 +0000 (21:46 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 6 Nov 2014 21:46:55 +0000 (21:46 +0000)
mingw lies about the size of a function's AuxFunctionDefinition.  Ignore
the field and rely on our heuristic to determine the symbol's size.

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

lib/Object/COFFObjectFile.cpp

index 7a0892d..eea84c7 100644 (file)
@@ -240,16 +240,6 @@ std::error_code COFFObjectFile::getSymbolSize(DataRefImpl Ref,
     Result = Symb.getValue();
     return object_error::success;
   }
-  if (Symb.isFunctionDefinition()) {
-    ArrayRef<uint8_t> AuxData = getSymbolAuxData(Symb);
-    if (!AuxData.empty()) {
-      const auto *CAFD =
-          reinterpret_cast<const coff_aux_function_definition *>(
-              AuxData.data());
-      Result = CAFD->TotalSize;
-      return object_error::success;
-    }
-  }
 
   // Let's attempt to get the size of the symbol by looking at the address of
   // the symbol after the symbol in question.