Fix endianness bug.
authorRui Ueyama <ruiu@google.com>
Wed, 5 Mar 2014 00:32:34 +0000 (00:32 +0000)
committerRui Ueyama <ruiu@google.com>
Wed, 5 Mar 2014 00:32:34 +0000 (00:32 +0000)
Looks like llvm-readobj is the only customer of this code, and apparently
there's no test to cover this function. I'll write it after finishing
plumbing from llvm-objdump to there.

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

include/llvm/Support/Win64EH.h

index ecce713680412d4b9c577a6f969f5159233ded32..8966c0d04ebea83f4164c9ab3dc1462a745bdefd 100644 (file)
@@ -108,17 +108,20 @@ struct UnwindInfo {
 
   /// \brief Return pointer to language specific data part of UnwindInfo.
   const void *getLanguageSpecificData() const {
-    return reinterpret_cast<const void *>(&UnwindCodes[(NumCodes+1) & ~1]);
+    return reinterpret_cast<const support::ulittle32_t *>(
+        &UnwindCodes[(NumCodes + 1) & ~1]);
   }
 
   /// \brief Return image-relative offset of language-specific exception handler.
   uint32_t getLanguageSpecificHandlerOffset() const {
-    return *reinterpret_cast<const uint32_t *>(getLanguageSpecificData());
+    return *reinterpret_cast<const support::ulittle32_t *>(
+               getLanguageSpecificData());
   }
 
   /// \brief Set image-relative offset of language-specific exception handler.
   void setLanguageSpecificHandlerOffset(uint32_t offset) {
-    *reinterpret_cast<uint32_t *>(getLanguageSpecificData()) = offset;
+    *reinterpret_cast<support::ulittle32_t *>(getLanguageSpecificData()) =
+        offset;
   }
 
   /// \brief Return pointer to exception-specific data.