/* 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_byte_type_node = make_unsigned_type(8); elna_float_type_node = double_type_node; elna_bool_type_node = boolean_type_node; elna_bool_true_node = boolean_true_node; elna_bool_false_node = boolean_false_node; elna_pointer_nil_node = null_pointer_node; elna_string_type_node = make_node(RECORD_TYPE); tree string_ptr_type = build_pointer_type_for_mode(elna_char_type_node, VOIDmode, true); elna_string_length_field_node = build_field(UNKNOWN_LOCATION, elna_string_type_node, "length", elna_word_type_node); elna_string_ptr_field_node = build_field(UNKNOWN_LOCATION, elna_string_type_node, "ptr", string_ptr_type); TYPE_FIELDS(elna_string_type_node) = chainon(elna_string_ptr_field_node, elna_string_length_field_node); layout_type(elna_string_type_node); } } }