<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">