[Lldb-commits] [PATCH] D101237: [lldb] Fix [[no_unique_address]] and libstdc++ 11's std::unique_ptr
Shafik Yaghmour via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Mon Apr 26 18:33:08 PDT 2021
shafik added a comment.
I think @dblaikie original idea of adding a DWARF attribute for this case is the right way to go here. AFAICT this will change the answer to basic questions such as what size a `struct` is and this will likely lead to confusion from our users who will expect the answers in expression parsing to match what they are seeing elsewhere e.g.:
struct X {
int i;
[[no_unique_address]] Empty e;
};
struct X2 {
int i;
Empty e;
};
struct Z {
char c;
[[no_unique_address]] Empty e1, e2;
};
struct Z2 {
char c;
Empty e1, e2;
};
struct W {
char c[2];
[[no_unique_address]] Empty e1, e2;
};
struct W2 {
char c[2];
Empty e1, e2;
};
int main()
{
std::cout << sizeof(Empty) << "\n"
<< "X: " << sizeof(X) << "\n"
<< "X2: " << sizeof(X2) << "\n"
<< "Z: " << sizeof(Z) << "\n"
<< "Z2: " << sizeof(Z2) << "\n"
<< "W: " << sizeof(W) << "\n"
<< "W2: " << sizeof(W2) << "\n";
}
See godbolt <https://godbolt.org/z/qYzWeEh7n> which shows this result:
1
X: 4
X2: 8
Z: 2
Z2: 3
W: 3
W2: 4
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D101237/new/
https://reviews.llvm.org/D101237
More information about the lldb-commits
mailing list