<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55928>55928</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LF_POINTER with ptr32 kind has size 8 bytes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
debuginfo,
platform:windows
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ZequanWu
</td>
</tr>
</table>
<pre>
I made the following change to llvm-pdbutil to dump pointer type size.
```
diff --git a/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp b/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp
index be7e487673fb..07a05cc12e1a 100644
--- a/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp
+++ b/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp
@@ -204,9 +204,9 @@ static std::string formatPointerAttrs(const PointerRecord &Record) {
PointerMode Mode = Record.getMode();
PointerOptions Opts = Record.getOptions();
PointerKind Kind = Record.getPointerKind();
- return std::string(formatv("mode = {0}, opts = {1}, kind = {2}",
+ return std::string(formatv("mode = {0}, opts = {1}, kind = {2}, size = {3}",
formatPointerMode(Mode), pointerOptions(Opts),
- pointerKind(Kind)));
+ pointerKind(Kind), Record.getSize()));
}
```
In chrome.dll.pdb, I saw the following that the pointer's kind is ptr32 meaning it's a 32-bit pointer but its size is 8 bytes. It's a pointer to member function, so I think the size is correct and kind is wrong. Maybe it's just the kind generated incorrectly.
```
Showing 1 records.
0x7B9FF9 | LF_POINTER [size = 20]
referent = 0x7B9732, mode = member fn pointer, opts = None, kind = ptr32, size = 8
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1Vd-PmzgQ_mvIywgEBkJ44GF300hRb9uqrVSpL5UBA27B5mzTNPfX32BDdpPbVrqeDlkYz4_P4_k8Qynrc3GEgdYMTMegkX0vT1y0UHVUtCiU0PffB3-sy8nwfl7X0zDCKLkwTIE5jww0_4sF4IV7L7zztuEy7LLmTQO-33ID1COHGQsnI2Wvl-UKjctHLvhA-4-IucdNmAqqcYTy9_zc_lzU7AeULGPJLttmcVMGQZjRMK2qiLCIQhSG2yRxxr7v_26Uy-HJvRv_LWgvCXGAT8LEIw85IODl06m0oYZXONVefIdDGzWT1kg1UPPOcXNnjMJ9d5UU2sAifM8qqWpE3LovjyBmdu_2BVjNHiVeCPvy4j0406BlZhYhJHp58T-c3o6G416As77xW1Q_dX2NPIF9Xfs9U9_4-gCKmUmJ2ySgnUvDd-tBhvUUeMzQy_aYRpBrhCiLFtm3dXeUESsjKL7w-v9v92DraJXFNyHAL58r4heS3JTPwOMVQaibKXK6SzZ_8YxXLLgpX8bKh03Rv8d4eEb2Bzz-wvI1Nsy5eKm7uPdRYLdScmBB3fcBVtgMewRNTzc9zXTUWNESjEcy7YjgGkajYgIDo2I25cYqKcTEL7F5rf0Oqxd12lGFXjsoz4bpAI6rw6UzSgQbSvxqJlHNibcUS4zMdFx8s4GsMJgCxSrskRjLGtBJSdEG8EjPJVvj-TppdwJr1DLBFDUMzcWC0J9_0ogBPnQuCxHe5DnlOni6WeGP7D4_HOZe8AB_HL68e3t88_HVe_DS-8ulJKGX7l-8jIo1TDFhrJmFyuL55sKlGNZMiKfUPyuLN1Kwq5qwXFxVxO7FQ23qIq7zOKcbw03PimeRn7jpFk4tbEcX0hbGNpPqi86YUc_VTA448CfVTWVQyeGpebumreRXzC0uudYTm5t5muZkt-mKbU0py5o8KRuaVUlS0YiEUUTzdJuEWVJtelqyXheYSKzmmpVTy0UjXWVjGyZjT81cvRgFslPLk5516X7DCxISEm7DjERRlMYBKUm5DRnbVWmd17TB_wAbKO-DOcZAqnajChsu7qFR2XNt9JOSas1bwZgNBfHpZDqpis_sz4mKT9PGHq2w5_ob15htxA">