1 1.1 mrg /* Language-dependent trees for LTO. 2 1.12 mrg Copyright (C) 2009-2022 Free Software Foundation, Inc. 3 1.1 mrg Contributed by CodeSourcery, Inc. 4 1.1 mrg 5 1.1 mrg This file is part of GCC. 6 1.1 mrg 7 1.1 mrg GCC is free software; you can redistribute it and/or modify it under 8 1.1 mrg the terms of the GNU General Public License as published by the Free 9 1.1 mrg Software Foundation; either version 3, or (at your option) any later 10 1.1 mrg version. 11 1.1 mrg 12 1.1 mrg GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13 1.1 mrg WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 1.1 mrg FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 1.1 mrg for more details. 16 1.1 mrg 17 1.1 mrg You should have received a copy of the GNU General Public License 18 1.1 mrg along with GCC; see the file COPYING3. If not see 19 1.1 mrg <http://www.gnu.org/licenses/>. */ 20 1.1 mrg 21 1.1 mrg #ifndef GCC_LTO_TREE_H 22 1.1 mrg #define GCC_LTO_TREE_H 23 1.1 mrg 24 1.1 mrg struct GTY(()) lang_identifier 25 1.1 mrg { 26 1.1 mrg struct tree_identifier base; 27 1.1 mrg }; 28 1.1 mrg 29 1.5 mrg struct GTY(()) lang_decl 30 1.1 mrg { 31 1.1 mrg int dummy; /* Added because ggc does not like empty structs. */ 32 1.1 mrg }; 33 1.1 mrg 34 1.5 mrg struct GTY(()) lang_type 35 1.1 mrg { 36 1.1 mrg int dummy; /* Added because ggc does not like empty structs. */ 37 1.1 mrg }; 38 1.1 mrg 39 1.1 mrg struct GTY(()) language_function 40 1.1 mrg { 41 1.1 mrg int dummy; /* Added because ggc does not like empty structs. */ 42 1.1 mrg }; 43 1.1 mrg 44 1.1 mrg enum lto_tree_node_structure_enum { 45 1.1 mrg TS_LTO_GENERIC 46 1.1 mrg }; 47 1.1 mrg 48 1.1 mrg union GTY((desc ("lto_tree_node_structure (&%h)"), 49 1.5 mrg chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_TYPE_COMMON) ? ((union lang_tree_node *) %h.generic.type_common.next_variant) : CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) %h.generic.common.chain) : NULL"))) 50 1.1 mrg lang_tree_node 51 1.1 mrg { 52 1.1 mrg union tree_node GTY ((tag ("TS_LTO_GENERIC"), 53 1.1 mrg desc ("tree_node_structure (&%h)"))) generic; 54 1.1 mrg }; 55 1.1 mrg 56 1.1 mrg #endif /* GCC_LTO_TREE_H */ 57