<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/146040>146040</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[lldb] std::unordered_map const pointer presentation is different from non-const pointer
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
nd-work
</td>
</tr>
</table>
<pre>
This is similar to #145847 but for pointers.
To reproduce, debug the program:
```
#include <unordered_map>
int main() {
std::unordered_map<int, int> m;
m[1] = 2;
std::unordered_map<int, int> *ptr = &m;
const std::unordered_map<int, int> *const_ptr = &m;
return 0; //break
}
```
Once the breakpoint is reached print `ptr` and `const_ptr`.
Expected: they are shown in the same way.
Actual: they are shown differently:
```
> lldb a.out
(lldb) target create "a.out"
Current executable set to '/path/to/a.out' (arm64).
(lldb) version
lldb version 21.0.0git (git@github.com:llvm/llvm-project.git revision 8f71650baaeec599aae9443fbe2c3cd6b5611844)
clang revision 8f71650baaeec599aae9443fbe2c3cd6b5611844
llvm revision 8f71650baaeec599aae9443fbe2c3cd6b5611844
(lldb) b main.cpp:8
Breakpoint 1: where = a.out`main + 88 at main.cpp:8:3, address = 0x0000000100000540
(lldb) run
Process 40225 launched: '/path/to/a.out' (arm64)
Process 40225 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x0000000100000540 a.out`main at main.cpp:8:3
5 m[1] = 2;
6 std::unordered_map<int, int> *ptr = &m;
7 const std::unordered_map<int, int> *const_ptr = &m;
-> 8 return 0; //break
9 }
(lldb) frame var ptr -P 1
(std::unordered_map<int, int> *) ptr = 0x000000016fdff040 size=1 {
[0] = (first = 1, second = 2)
}
(lldb) frame var const_ptr -P 1
(const std::unordered_map<int, int> *) const_ptr = 0x000000016fdff040 size=1 {
[0] = {
__cc_ = (first = 1, second = 2)
}
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVk1z4zYM_TXwBWMNRerLBx_kOL52D3vPUCJksyuJKkklm_76Dillvc4mnWTbTMYaisAj8PAISDqnzyPRHvID5MeNnP3F2P2otk_Gfts0Rj3vv160Q-3Q6UH30qI3CFykWV5lJTazx85YnIwePVmXAKuB1V8NWpqsUXNLwO9QUTOf0V8IJ2vOVg4g6sUSCrb-sxq40GPbz4oQxN08GqvIknoY5ATifrHXo8dB6hF4BXyHUB6A1YjOqwAp6lded3r0IYDwEPc4gFjsB8gPKeRHBHFE_vL2gyjA68nb6Aq8-IHZmtH5T2BE-4e3kCz52Y7IQBwQ-An4qbEkvwUGyuNr0lj9x9hSJDdaxVKEglmS7YUUTja8gIJN3kLBUI4qrH4cDwVby3b_faLWU0gg4D2jtITuYp5G1GM8wcmB8Ek-rw5162fZv2GudNeRpdH3z2-XWtxj36sGZWJmH2tfhXWoqZf2TB5bS9ITAueLDefA6rvZBlSk79TOXjY9oSO_aLIEfpqkvwA_eQP8tLqVCLySdigy4Lvk9qhHsk6bEVgdg1mXyNOEJeysfXA9aw9ZWFzmJmlNkG7fPw7AT-Gxnaz5k1qfBGtLjzoCVF2ZFjlrpCRq891OStplmega4q1oVdHkRZpWWYhokU4vx_NvuAffEMVvuf7EQxPvVNJOE4i6AlYfrkpKQ3mfLmQp6nRhtWDBAYEfsKpQ-lt_UYsgdamUJeeiG_vOlr80_uYZu43AzqEKX6xpg0fGOM-xl_MYFBwC-Fh5f4Fw3kwTqXhWEKklqWL7CvH9NdNM6-UrWzMkcpp6SkIq28U0nnoXUcJ1cmaM5j_dszRJYxUQOxvuBnDBQry_5nvL3FuUsRpzRAS2e69BYfGy_99aFZYLyv_VsrZhv3qJ7f32hYi7xWptZFcBLPQ9SosBfvsF02X_48EFlJfQrvQXneo6ljF0-m8CcUx_zAzID-yFYeBVp63zcRHF4ag1oVFG-qOy_iXkKy_XwD_LbUC85ffTSazvEB8e2vbhw4khrqndDpeN2gu1Ezu5oX1a5ilLRc755rLvqFRUZmlDnNqClOA7ymUquciUynm10XvOeM4KXrJKVBlPMiaylO0KJZngolKQMRqk7pPQvBJjzxvt3Ez7NCtYxja9bKh38aOE85GeMO6GCZAfN3Yf-24znx1krNfOuyuM176PXzOxRvnxHf5X4a9fLThZcjR66UMH1e46vbCzZsDRjNsbh81s-_3F-8kF7Kjwn-bDMhhezQfgp5iEA35as3zc838CAAD__7n3y1g">