/* Builtin definitions. Copyright (C) 2025 Free Software Foundation, Inc. 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 . */ #include "elna/gcc/elna-builtins.h" #include "elna/gcc/elna1.h" #include "stor-layout.h" #include "stringpool.h" #include "elna/gcc/elna-tree.h" namespace elna { namespace gcc { void init_ttree() { elna_int_type_node = long_integer_type_node; elna_word_type_node = size_type_node; elna_char_type_node = unsigned_char_type_node; elna_bool_type_node = boolean_type_node; elna_byte_type_node = make_unsigned_type(8); elna_float_type_node = double_type_node; elna_string_type_node = make_node(RECORD_TYPE); tree string_ptr_type = build_pointer_type_for_mode(elna_char_type_node, VOIDmode, true); tree record_chain = NULL_TREE; record_chain = chainon(record_chain, build_field(UNKNOWN_LOCATION, elna_string_type_node, "length", elna_word_type_node)); record_chain = chainon(record_chain, build_field(UNKNOWN_LOCATION, elna_string_type_node, "ptr", string_ptr_type)); TYPE_FIELDS(elna_string_type_node) = record_chain; layout_type(elna_string_type_node); } } }