[Lldb-commits] [clang] [lldb] [clang][RecordLayoutBuilder] Be stricter about inferring packed-ness in ExternalLayouts (PR #97443)

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Mon Dec 23 04:16:22 PST 2024


labath wrote:

FWIW, I came across another no_unique_address-related crash today:
```
$ cat a.cc
struct S {
private:
  int i;
  short s;
};
static_assert(sizeof(S) == 8);

struct T {
  [[no_unique_address]] S s;
  char c;
};
static_assert(sizeof(T) == 8);

T t;
$ clang++ -c -o /tmp/a.out /tmp/a.cc -g
$ lldb /tmp/a.out -o "expr t" -x
(lldb) target create "/tmp/a.out"
Current executable set to '/tmp/a.out' (x86_64).
(lldb) expr t
assertion failed at clang/lib/CodeGen/CGRecordLayoutBuilder.cpp:960 in void (anonymous namespace)::CGRecordLowering::checkBitfieldClipping(bool) const: M.Offset >= Tail && "Bitfield access unit is not clipped"
...
```

I was hoping this PR would fix it, but it doesn't appear to help.

https://github.com/llvm/llvm-project/pull/97443


More information about the lldb-commits mailing list