data.SetByteOrder (m_data.GetByteOrder());
data.SetAddressByteSize(m_data.GetAddressByteSize());
- m_error = m_value.GetValueAsData (&exe_ctx, ast, data, 0, GetModule().get());
+ if (IsBitfield())
+ {
+ Value v(Scalar(GetValueAsUnsigned(UINT64_MAX)));
+ m_error = v.GetValueAsData (&exe_ctx, ast, data, 0, GetModule().get());
+ }
+ else
+ m_error = m_value.GetValueAsData (&exe_ctx, ast, data, 0, GetModule().get());
valobj_sp = ValueObjectConstResult::Create (exe_ctx.GetBestExecutionContextScope(),
ast,
expr_path_options,
var_sp,
error);
+ // if this expression results in a bitfield, we give up and let the IR handle it
+ if (result_valobj_sp && result_valobj_sp->IsBitfield())
+ result_valobj_sp.reset();
}
}
else if (m_process_sp)