<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/148838>148838</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LLDB crashes evaluating a no_unique_address structure with tail padding
</td>
</tr>
<tr>
<th>Labels</th>
<td>
lldb
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
labath
</td>
</tr>
</table>
<pre>
(Note you need to have assertions enabled for this to crash. With assertions disabled this seems to work, but presumably the assertion is there for a reason.)
```
$ cat a.cc
struct NoAddr {
private:
int large_member;
char small_member;
};
struct Padder {
[[no_unique_address]] NoAddr no_addr;
char member_in_padding;
};
Padder *padder;
$ clang++ a.cc -c -g -o a.o -fstandalone-debug
$ lldb a.o -o "expr -- *padder"
(lldb) target create "a.o"
Current executable set to '/tmp/a.o' (x86_64).
(lldb) expr -- *padder
lldb: clang/lib/CodeGen/CGRecordLayoutBuilder.cpp:960: void {anonymous}::CGRecordLow
ering::checkBitfieldClipping(bool) const: Assertion `M.Offset >= Tail && "Bitfield access unit is not clipped"' failed.
LLDB diagnostics will be written to /tmp/diagnostics-ef7e28
Please include the directory content when filing a bug report
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrac
e.
Stack dump:
0. Program arguments: lldb a.o -o "expr -- *padder"
#0 0x00005625ccf52ad0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (lldb+0x65ad0)
#1 0x00005625ccf500da SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007f2324e4ac50 (/lib64/libc.so.6+0x3cc50)
#3 0x00007f2324f2024d syscall (/lib64/libc.so.6+0x11224d)
#4 0x00007f2329fcf3e2 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#5 0x00007f2324e4ac50 (/lib64/libc.so.6+0x3cc50)
#6 0x00007f2324ea11bc (/lib64/libc.so.6+0x931bc)
#7 0x00007f2324e4aba6 raise (/lib64/libc.so.6+0x3cba6)
#8 0x00007f2324e328fa abort (/lib64/libc.so.6+0x248fa)
#9 0x00007f2324e3281e (/lib64/libc.so.6+0x2481e)
#10 0x00007f2324e42f16 (/lib64/libc.so.6+0x34f16)
#11 0x00007f232bc869bc (anonymous namespace)::CGRecordLowering::lower(bool) CGRecordLayoutBuilder.cpp:0:0
#12 0x00007f232bc86ef5 clang::CodeGen::CodeGenTypes::ComputeRecordLayout(clang::RecordDecl const*, llvm::
StructType*) CGRecordLayoutBuilder.cpp:0:0
#13 0x00007f232bc78e7f clang::CodeGen::CodeGenTypes::ConvertRecordDeclType(clang::RecordDecl const*) Code
GenTypes.cpp:0:0
#14 0x00007f232bc7c575 clang::CodeGen::CodeGenTypes::ConvertTypeForMem(clang::QualType) CodeGenTypes.cpp:
0:0
#15 0x00007f232bc9f89a EmitPointerWithAlignment(clang::Expr const*, clang::CodeGen::LValueBaseInfo*, clan
g::CodeGen::TBAAAccessInfo*, clang::CodeGen::KnownNonNull_t, clang::CodeGen::CodeGenFunction&) CGExpr.cpp
:0:0
...
```
A possible fix in #122197.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysV11z47rN_jXMDSYairK-LnwhJ_F532nOdtvdaS8zFAnZ7FKkSlL5-PcdUnJiJ9ucc9rOJGNKBPA8AEEA4t6rg0HcknJHytsrPoejdVvNex6OV72VL1vCmi82ILzYGQyihGDhyB8RuPfogrLGAxrea5QwWAfhqHyUEY77YwZ_V-F4LiqVX2STnEcck_STdT8Iu4F-DjA59PPIe_0C4XiGA9HwER0mHA4OubcmI6wltIt_FV3_aEfYBgQPwDMhCO18cLMI8MV2Ujog9Y7QbnLqkQckRdQFUCaA5u6ADyOOPTpSRCEQR-7Aj1zri_ekvl0Xr8a_cinxZBwgRXRn7MNs1D9nfOBSOvSelLekvD0xMTa9X7EWsAXmQZmHiUupzOEj4gmKdVNarRvRZ83NgbAdYbvkO1wLuD7AtQWeWbgefOBGcm0NXkvs58OqprXsFwkLhDF8nhxcX58BMJYkmyhIWAshRiqAcMgDRhWe2UXoZnYOTQB8RjGHeNbgMcQzJqwmbB_GibB9Eq-BsOa5qR6qDWFtdonwkQPt0l7Rnbzca9UTtr-xEn9BE1e__BWFdfKev9g57GalJbpMTBMpuraiUfXRKhnPiBtrXkY7-xTXjhTdq7J9IrRDlyIfN8QRxY-dCoNCLW-0mqa4xZreWh2ZCmt8iLa710wlFf01-_MwRM9JcUeKW_jOlQbCKsKqGK-TPeBCoPcwGxVighsbQEQMlDGerIaBK40yRuf-_nYHUvGDsT4o4eFJaQ09wpNTIaBZgrxG-EzuGocaWRMTRyP3CMoIPUtM10sqhyJY9xL9CPHkno5oYFBamQNw6OcDOJysC1H__q77dgd-7kcVLjZTWQhh8jFmbE_Y_qDCce4zYcd4Uvrx9HM9OfsPFIGwvfJ-Rk_YHriRF6xS9YCeix_B8XiDMQbgW-DiB8h5nJZbSzNC26_OHhwfgbvDPKIJkcHvTGggrKBAnymltKxYKcRQMi4pJLrp8P2LXxZfnTIhEfjuuMCUqSchx58erA8O-ZhO-CZWk5gar_m8o89VySVdilXEzd_hUio5fFMHw_X_cSN15NgkMzfg1UGZwT4Ewrr4HJM4LdtVw69JTtP_AsBWgHpgBdvghouSRkLLvYlXLv6KzNusSgQLIcozgsWF_sAo20jwL15wrT-1k-eMbeSboc25oXYQQ4Hsf-pp-V96Wl3q8zzvxaf6bZH34k2_fo_f8wocVx5_g0XPqzcrzaWVgjUDB97Hu_WZFbZpBv5mpf1gJf-cBds0Oa49lBU5fecLG_Lqcy82Q1696efn-r1oqnaJ5Wu9BcNH9FO6Qu2HyntWdnV8OiuznxX3UzZEBuw9AxzKtWMsaGu7OH_4_jKhP70ZpzngORZhzZn-snOLQq-Vf8nUt2qQClUcCaLVNXl_L_niknzdYD38IfLmEV14o7hQ-E36LURbhHYncz-htnlHTZT1H4trohbf7K37FcdLWn-Z-Up24fKOSCz2Z1zKSy7t0LQc7kYVvlplAro4dXZaHUxsCJdAd7EVnB_cv3Ph_m9cz7jjHv_fDPZMmNDuZ_Lfd13XpWb-Tv5nwn8y9sl8sebLrPVD-ExyfdjPRsTRIvWXmE_RjxQc2p0dVJZl7ydh2nUwWe9VHMUG9QzKpP7DWN7W2ZXcFrItWn6F27wuWdmwgjVXxy1rNoI37SDkMNCWVrJClFUuqqIesK_pldoyykpa52XOWMmarBF9VUtJ62rT5HHc2lAcudJZvBqZdYer1O-3-aZpiuZK8x61T18ejC1dksVvELdNU0I_HzzZUK188G8Wggoat2kQSiMCesBHrmcelmnlw7wNy3Q-O4Sn-CkS4hi2DtZXs9Pb_3xoWf143LJ_BQAA__9UZQey">