From da1e84e33de1a9c2cc1745b8f42bc7f0cee8fc5c Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 9 Oct 2026 23:35:03 +0200 Subject: Add const sections --- gcc/gcc/elna-generic.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'gcc') diff --git a/gcc/gcc/elna-generic.cc b/gcc/gcc/elna-generic.cc index bf4784b..57c8c22 100644 --- a/gcc/gcc/elna-generic.cc +++ b/gcc/gcc/elna-generic.cc @@ -454,6 +454,16 @@ namespace elna::gcc } } + void generic_visitor::visit(boot::constant_declaration *declaration) + { + const std::string& name = declaration->identifier.name(); + const std::shared_ptr symbol = this->bag.lookup(name); + const std::shared_ptr constant_symbol = symbol->is_constant(); + tree type = get_inner_alias(constant_symbol->symbol, this->symbols); + tree constant_tree = constant_to_tree(constant_symbol->value, this->symbols, type); + this->symbols->enter(name, constant_tree); + } + void generic_visitor::visit(boot::procedure_declaration *declaration) { tree fndecl = this->symbols->lookup(declaration->identifier.name()); @@ -470,6 +480,7 @@ namespace elna::gcc { this->symbols->enter(IDENTIFIER_POINTER(DECL_NAME(argument_chain)), argument_chain); } + visit_all(this, declaration->body.value().constants); visit_all(this, declaration->body.value().variables); visit_statements(declaration->body.value().statements); @@ -1134,6 +1145,7 @@ namespace elna::gcc void generic_visitor::visit_block(boot::block& body) { this->bag.enter(body.symbols); + visit_all(this, body.constants); visit_all(this, body.variables); visit_statements(body.statements); this->bag.leave(); -- cgit v1.2.3