- out_c += "\t" + struct_name + " *inp = (" + struct_name + " *)(arg & ~1);\n"
- out_c += "\tuint64_t res_ptr = (uint64_t)&inp->" + var[1] + ";\n"
- out_c += "\tDO_ASSERT((res_ptr & 1) == 0);\n"
- out_c += "\treturn (int64_t)(res_ptr | 1);\n"
+ out_c += "\t" + struct_name + " *inp = (" + struct_name + " *)untag_ptr(arg);\n"
+ out_c += "\treturn tag_ptr(&inp->" + var[1] + ", false);\n"