mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-12 23:31:38 -07:00
correctly handle bitfield type operators in eval viz string iterator
This commit is contained in:
@@ -1769,6 +1769,18 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string)
|
||||
new_task.eval.irtree.type_key = e_type_key_direct(eval.irtree.type_key);
|
||||
}break;
|
||||
|
||||
//////////////////////////
|
||||
//- rjf: bitfields
|
||||
//
|
||||
case E_TypeKind_Bitfield:
|
||||
{
|
||||
need_pop = 1;
|
||||
need_new_task = 1;
|
||||
new_task.params = *params;
|
||||
new_task.eval = e_value_eval_from_eval(eval);
|
||||
new_task.eval.irtree.type_key = e_type_key_direct(eval.irtree.type_key);
|
||||
}break;
|
||||
|
||||
//////////////////////////
|
||||
//- rjf: pointers
|
||||
//
|
||||
|
||||
@@ -523,6 +523,20 @@ type_coverage_eval_tests(void)
|
||||
|
||||
Has_Enums has_enums = {(Kind)4, (Flag)7};
|
||||
|
||||
struct EnumBitfields
|
||||
{
|
||||
Kind k1 : 4;
|
||||
Kind k2 : 3;
|
||||
Kind k3 : 1;
|
||||
Kind k4 : 16;
|
||||
};
|
||||
|
||||
EnumBitfields enum_bitfields = {};
|
||||
enum_bitfields.k1 = Kind_First;
|
||||
enum_bitfields.k2 = Kind_Second;
|
||||
enum_bitfields.k3 = Kind_None;
|
||||
enum_bitfields.k4 = Kind_Fourth;
|
||||
|
||||
Crazy_Union crazy_union = {};
|
||||
|
||||
crazy_union.kind = Kind_First;
|
||||
|
||||
Reference in New Issue
Block a user