The _v_a_l_u_e___m_a_s_k argument specifies the fields of the GC that will be initialized with the respective members of the _v_a_l_u_e_s structure. The _d_y_n_a_m_i_c___m_a_s_k argument specifies fields that the caller intends to modify during program execution. The caller must ensure that the corresponding GC field is set prior to each use of the GC. The _u_n_u_s_e_d___m_a_s_k argument specifies fields of the GC that are of no interest to the caller. The caller may make no assumptions about the contents of any fields specified in _u_n_u_s_e_d___m_a_s_k. The caller may assume that at all times all fields not specified in either _d_y_n_a_m_i_c___m_a_s_k or _u_n_u_s_e_d___m_a_s_k have their default value if not specified in _v_a_l_u_e___m_a_s_k or the value specified by _v_a_l_u_e_s. If a field is specified in both _v_a_l_u_e___m_a_s_k and _d_y_n_a_m_i_c___m_a_s_k, the effect is as if it were specified only in _d_y_n_a_m_i_c___m_a_s_k and then immediately set to the value in _v_a_l_u_e_s. If a field is set in _u_n_u_s_e_d___m_a_s_k and also in either _v_a_l_u_e___m_a_s_k or _d_y_n_a_m_i_c___m_a_s_k, the specification in _u_n_u_s_e_d___m_a_s_k is ignored.
_X_t_A_l_l_o_c_a_t_e_G_C tries to minimize the number of unique GCs created by comparing the arguments with those of previous calls and returning an existing GC when there are no conflicts. _X_t_A_l_l_o_c_a_t_e_G_C may modify and return an existing GC if it was allocated with a nonzero _u_n_u_s_e_d___m_a_s_k.