Endilll wrote:

> It shouldn't be necessary to analyze uint64_t Storage directly through a 
> debugger. It's handled via the Bitfield getters and setters. Is that not 
> sufficient for debugging purposes?

Unfortunately, it's not. Not every debugger can run getters while displaying 
the value (e.g. 
https://github.com/llvm/llvm-project/blob/main/clang/utils/ClangVisualizers/clang.natvis),
 ones that can (e.g. LLDB) do that in a matter of seconds, which is way beyond 
acceptable performance to keep debugger responsive.

> My sinister reason for wanting to do this is that many of the 
> const_cast<IdentifierInfo>(...) constructs are there because some of these 
> fields are updated. I'd like to get rid of those by making the storage 
> mutable (pardon my French).

I don't find removing couple of `const_cast`s be worth the regression of 
debugging experience on something as important as `IdentifierInfo`. Moreover, 
replacing them with `mutable` to me sounds like replacing explicit workaround 
with implicit one, without addressing the root cause.

https://github.com/llvm/llvm-project/pull/79366
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to