/* Type information for ggc-tests.cc. Copyright (C) 2004-2023 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ /* This file is machine generated. Do not edit. */ void gt_ggc_mx_test_struct (void *x_p) { struct test_struct * const x = (struct test_struct *)x_p; if (ggc_test_and_set_mark (x)) { gt_ggc_m_11test_struct ((*x).other); } } void gt_ggc_mx_test_of_length (void *x_p) { struct test_of_length * const x = (struct test_of_length *)x_p; if (ggc_test_and_set_mark (x)) { { size_t l0 = (size_t)(((*x)).num_elem); { size_t i0; for (i0 = 0; i0 != l0; i0++) { gt_ggc_m_14test_of_length ((*x).elem[i0]); } } } } } void gt_ggc_mx_test_other (void *x_p) { struct test_other * const x = (struct test_other *)x_p; if (ggc_test_and_set_mark (x)) { gt_ggc_m_11test_struct ((*x).m_ptr); } } void gt_ggc_mx_test_of_union (void *x_p) { struct test_of_union * const x = (struct test_of_union *)x_p; if (ggc_test_and_set_mark (x)) { switch ((int) (calc_desc ((*x).m_kind))) { case WHICH_FIELD_USE_TEST_STRUCT: gt_ggc_m_11test_struct ((*x).m_u.u_test_struct); break; case WHICH_FIELD_USE_TEST_OTHER: gt_ggc_m_10test_other ((*x).m_u.u_test_other); break; default: break; } } } void gt_ggc_mx_example_base (void *x_p) { struct example_base * const x = (struct example_base *)x_p; if (ggc_test_and_set_mark (x)) { switch ((int) (((*x)).m_kind)) { case 0: gt_ggc_m_11test_struct ((*x).m_a); break; case 2: { some_other_subclass *sub = static_cast (x); gt_ggc_m_11test_struct ((*sub).m_c); gt_ggc_m_11test_struct ((*sub).m_a); } break; case 1: { some_subclass *sub = static_cast (x); gt_ggc_m_11test_struct ((*sub).m_b); gt_ggc_m_11test_struct ((*sub).m_a); } break; /* Unrecognized tag value. */ default: gcc_unreachable (); } } } void gt_ggc_mx_test_node (void *x_p) { struct test_node * x = (struct test_node *)x_p; struct test_node * xlimit = x; while (ggc_test_and_set_mark (xlimit)) xlimit = ((*xlimit).m_next); if (x != xlimit) for (;;) { struct test_node * const xprev = ((*x).m_prev); if (xprev == NULL) break; x = xprev; (void) ggc_test_and_set_mark (xprev); } while (x != xlimit) { gt_ggc_m_9test_node ((*x).m_prev); gt_ggc_m_9test_node ((*x).m_next); x = ((*x).m_next); } } void gt_ggc_mx_user_struct (void *x_p) { user_struct * const x = (user_struct *)x_p; if (ggc_test_and_set_mark (x)) { gt_ggc_mx (x); } } void gt_pch_nx_test_struct (void *x_p) { struct test_struct * const x = (struct test_struct *)x_p; if (gt_pch_note_object (x, x, gt_pch_p_11test_struct)) { gt_pch_n_11test_struct ((*x).other); } } void gt_pch_nx_test_of_length (void *x_p) { struct test_of_length * const x = (struct test_of_length *)x_p; if (gt_pch_note_object (x, x, gt_pch_p_14test_of_length)) { { size_t l0 = (size_t)(((*x)).num_elem); { size_t i0; for (i0 = 0; i0 != l0; i0++) { gt_pch_n_14test_of_length ((*x).elem[i0]); } } } } } void gt_pch_nx_test_other (void *x_p) { struct test_other * const x = (struct test_other *)x_p; if (gt_pch_note_object (x, x, gt_pch_p_10test_other)) { gt_pch_n_11test_struct ((*x).m_ptr); } } void gt_pch_nx_test_of_union (void *x_p) { struct test_of_union * const x = (struct test_of_union *)x_p; if (gt_pch_note_object (x, x, gt_pch_p_13test_of_union)) { switch ((int) (calc_desc ((*x).m_kind))) { case WHICH_FIELD_USE_TEST_STRUCT: gt_pch_n_11test_struct ((*x).m_u.u_test_struct); break; case WHICH_FIELD_USE_TEST_OTHER: gt_pch_n_10test_other ((*x).m_u.u_test_other); break; default: break; } } } void gt_pch_nx_example_base (void *x_p) { struct example_base * const x = (struct example_base *)x_p; if (gt_pch_note_object (x, x, gt_pch_p_12example_base)) { switch ((int) (((*x)).m_kind)) { case 0: gt_pch_n_11test_struct ((*x).m_a); break; case 2: { some_other_subclass *sub = static_cast (x); gt_pch_n_11test_struct ((*sub).m_c); gt_pch_n_11test_struct ((*sub).m_a); } break; case 1: { some_subclass *sub = static_cast (x); gt_pch_n_11test_struct ((*sub).m_b); gt_pch_n_11test_struct ((*sub).m_a); } break; /* Unrecognized tag value. */ default: gcc_unreachable (); } } } void gt_pch_nx_test_node (void *x_p) { struct test_node * x = (struct test_node *)x_p; struct test_node * xlimit = x; while (gt_pch_note_object (xlimit, xlimit, gt_pch_p_9test_node)) xlimit = ((*xlimit).m_next); if (x != xlimit) for (;;) { struct test_node * const xprev = ((*x).m_prev); if (xprev == NULL) break; x = xprev; (void) gt_pch_note_object (xprev, xprev, gt_pch_p_9test_node); } while (x != xlimit) { gt_pch_n_9test_node ((*x).m_prev); gt_pch_n_9test_node ((*x).m_next); x = ((*x).m_next); } } void gt_pch_nx_user_struct (void *x_p) { user_struct * const x = (user_struct *)x_p; if (gt_pch_note_object (x, x, gt_pch_p_11user_struct)) { gt_pch_nx (x); } } void gt_pch_p_11test_struct (ATTRIBUTE_UNUSED void *this_obj, void *x_p, ATTRIBUTE_UNUSED gt_pointer_operator op, ATTRIBUTE_UNUSED void *cookie) { struct test_struct * x ATTRIBUTE_UNUSED = (struct test_struct *)x_p; if ((void *)(x) == this_obj) op (&((*x).other), NULL, cookie); } void gt_pch_p_14test_of_length (ATTRIBUTE_UNUSED void *this_obj, void *x_p, ATTRIBUTE_UNUSED gt_pointer_operator op, ATTRIBUTE_UNUSED void *cookie) { struct test_of_length * x ATTRIBUTE_UNUSED = (struct test_of_length *)x_p; { size_t l0 = (size_t)(((*x)).num_elem); { size_t i0; for (i0 = 0; i0 != l0; i0++) { if ((void *)(x) == this_obj) op (&((*x).elem[i0]), NULL, cookie); } } } } void gt_pch_p_10test_other (ATTRIBUTE_UNUSED void *this_obj, void *x_p, ATTRIBUTE_UNUSED gt_pointer_operator op, ATTRIBUTE_UNUSED void *cookie) { struct test_other * x ATTRIBUTE_UNUSED = (struct test_other *)x_p; if ((void *)(x) == this_obj) op (&((*x).m_ptr), NULL, cookie); } void gt_pch_p_13test_of_union (ATTRIBUTE_UNUSED void *this_obj, void *x_p, ATTRIBUTE_UNUSED gt_pointer_operator op, ATTRIBUTE_UNUSED void *cookie) { struct test_of_union * x ATTRIBUTE_UNUSED = (struct test_of_union *)x_p; switch ((int) (calc_desc ((*x).m_kind))) { case WHICH_FIELD_USE_TEST_STRUCT: if ((void *)(x) == this_obj) op (&((*x).m_u.u_test_struct), NULL, cookie); break; case WHICH_FIELD_USE_TEST_OTHER: if ((void *)(x) == this_obj) op (&((*x).m_u.u_test_other), NULL, cookie); break; default: break; } } void gt_pch_p_12example_base (ATTRIBUTE_UNUSED void *this_obj, void *x_p, ATTRIBUTE_UNUSED gt_pointer_operator op, ATTRIBUTE_UNUSED void *cookie) { struct example_base * x ATTRIBUTE_UNUSED = (struct example_base *)x_p; switch ((int) (((*x)).m_kind)) { case 0: if ((void *)(x) == this_obj) op (&((*x).m_a), NULL, cookie); break; case 2: { some_other_subclass *sub = static_cast (x); if ((void *)(x) == this_obj) op (&((*sub).m_c), NULL, cookie); if ((void *)(x) == this_obj) op (&((*sub).m_a), NULL, cookie); } break; case 1: { some_subclass *sub = static_cast (x); if ((void *)(x) == this_obj) op (&((*sub).m_b), NULL, cookie); if ((void *)(x) == this_obj) op (&((*sub).m_a), NULL, cookie); } break; /* Unrecognized tag value. */ default: gcc_unreachable (); } } void gt_pch_p_9test_node (ATTRIBUTE_UNUSED void *this_obj, void *x_p, ATTRIBUTE_UNUSED gt_pointer_operator op, ATTRIBUTE_UNUSED void *cookie) { struct test_node * x ATTRIBUTE_UNUSED = (struct test_node *)x_p; if ((void *)(x) == this_obj) op (&((*x).m_prev), NULL, cookie); if ((void *)(x) == this_obj) op (&((*x).m_next), NULL, cookie); } void gt_pch_p_11user_struct (ATTRIBUTE_UNUSED void *this_obj, void *x_p, ATTRIBUTE_UNUSED gt_pointer_operator op, ATTRIBUTE_UNUSED void *cookie) { struct user_struct * x ATTRIBUTE_UNUSED = (struct user_struct *)x_p; if ((void *)(x) == this_obj) gt_pch_nx (&((*x)), op, cookie); } /* GC roots. */ EXPORTED_CONST struct ggc_root_tab gt_ggc_r_gt_ggc_tests_h[] = { { &dummy_unittesting_tree, 1, sizeof (dummy_unittesting_tree), >_ggc_mx_tree_node, >_pch_nx_tree_node }, { &root_user_struct_ptr, 1, sizeof (root_user_struct_ptr), >_ggc_mx_user_struct, >_pch_nx_user_struct }, { &root_test_node, 1, sizeof (root_test_node), >_ggc_mx_test_node, >_pch_nx_test_node }, { &test_some_other_subclass_as_base_ptr, 1, sizeof (test_some_other_subclass_as_base_ptr), >_ggc_mx_example_base, >_pch_nx_example_base }, { &test_some_subclass_as_base_ptr, 1, sizeof (test_some_subclass_as_base_ptr), >_ggc_mx_example_base, >_pch_nx_example_base }, { &test_some_other_subclass, 1, sizeof (test_some_other_subclass), >_ggc_mx_example_base, >_pch_nx_example_base }, { &test_some_subclass, 1, sizeof (test_some_subclass), >_ggc_mx_example_base, >_pch_nx_example_base }, { &test_example_base, 1, sizeof (test_example_base), >_ggc_mx_example_base, >_pch_nx_example_base }, { &root_test_of_union_2, 1, sizeof (root_test_of_union_2), >_ggc_mx_test_of_union, >_pch_nx_test_of_union }, { &root_test_of_union_1, 1, sizeof (root_test_of_union_1), >_ggc_mx_test_of_union, >_pch_nx_test_of_union }, { &root_test_of_length, 1, sizeof (root_test_of_length), >_ggc_mx_test_of_length, >_pch_nx_test_of_length }, { &root_test_struct, 1, sizeof (root_test_struct), >_ggc_mx_test_struct, >_pch_nx_test_struct }, LAST_GGC_ROOT_TAB }; EXPORTED_CONST struct ggc_root_tab gt_ggc_rd_gt_ggc_tests_h[] = { { &test_of_deletable, 1, sizeof (test_of_deletable), NULL, NULL }, LAST_GGC_ROOT_TAB };