]> granicus.if.org Git - llvm/commitdiff
[codeview] use 32-bit integer for RelocOffset in DebugLinesSubsection
authorBob Haarman <llvm@inglorion.net>
Fri, 9 Jun 2017 01:18:10 +0000 (01:18 +0000)
committerBob Haarman <llvm@inglorion.net>
Fri, 9 Jun 2017 01:18:10 +0000 (01:18 +0000)
Summary:
RelocOffset is a 32-bit value, but we previously truncated it to 16 bits.

Fixes PR33335.

Reviewers: zturner, hiraditya!

Reviewed By: zturner

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D33968

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

include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h
lib/DebugInfo/CodeView/DebugLinesSubsection.cpp
test/DebugInfo/PDB/Inputs/debug-subsections.yaml

index 1b63af59c2ed688106dadceb9bbdd1f9b1f4cca6..b31c9f8f0fdc7c3a0594bca1d7c1abc01a8867bb 100644 (file)
@@ -122,7 +122,7 @@ public:
   uint32_t calculateSerializedSize() const override;
   Error commit(BinaryStreamWriter &Writer) const override;
 
-  void setRelocationAddress(uint16_t Segment, uint16_t Offset);
+  void setRelocationAddress(uint16_t Segment, uint32_t Offset);
   void setCodeSize(uint32_t Size);
   void setFlags(LineFlags Flags);
 
@@ -131,7 +131,7 @@ public:
 private:
   DebugChecksumsSubsection &Checksums;
 
-  uint16_t RelocOffset = 0;
+  uint32_t RelocOffset = 0;
   uint16_t RelocSegment = 0;
   uint32_t CodeSize = 0;
   LineFlags Flags = LF_None;
index 2fce06ca2a17c499ce194c8dcc06cc5c8f6f49fe..33a8f78beb3e1bde4b8488201fdcaba70599183f 100644 (file)
@@ -145,7 +145,7 @@ uint32_t DebugLinesSubsection::calculateSerializedSize() const {
 }
 
 void DebugLinesSubsection::setRelocationAddress(uint16_t Segment,
-                                                uint16_t Offset) {
+                                                uint32_t Offset) {
   RelocOffset = Offset;
   RelocSegment = Segment;
 }
index efe79b976d5422ca77bd83a55cd0fda6a346b07e..ab199d2f21a0a9848e585cbbc4edf173d5636cab 100644 (file)
@@ -38,7 +38,7 @@ DbiStream:
         - !Lines
           CodeSize:        10
           Flags:           [  ]
-          RelocOffset:     16
+          RelocOffset:     100016
           RelocSegment:    1
           Blocks:
             - FileName:        'd:\src\llvm\test\debuginfo\pdb\inputs\empty.cpp'