Michael137 added a comment.

In D134493#3811097 <https://reviews.llvm.org/D134493#3811097>, @labath wrote:

> In D134493#3810290 <https://reviews.llvm.org/D134493#3810290>, @Michael137 
> wrote:
>
>> Wasn't sure how to properly test this since the original reproducer 
>> technically relies on implementation-defined behaviour (i.e., initialising a 
>> bitfield with an out-of-range value). Suggestions are welcome
>
> I'm probably missing something, but what exactly is undefined about that test 
> program? The number eight fits comfortably in four bits, and afaik it is a 
> valid value for the `EnumVals` type because it has a fixed underlying type.
>
> Other than that, this seems fine to me.

Ah yes, absolutely true! Misinterpreted it from some of the other reproducers.
It's enough for the value we assign (here `8`) to be out of range of the 
bit-field (if it were signed). Since we previously treated
all bit-fields of enum type as signed, that would incorrectly left-fill with 1s.
I.e., if the bit-field were of width 16, then 32768 would sign-extend 
incorrectly. I'll update the test description accordingly


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134493/new/

https://reviews.llvm.org/D134493

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to