From d3318b89214fb892e1bc61474e45ef8892522459 Mon Sep 17 00:00:00 2001 From: Michael Ankele Date: Sun, 6 Oct 2024 16:51:22 +0200 Subject: [PATCH] [lib] update --- src/lib/base/array.h | 2 +- src/lib/base/macros.h | 4 +++- src/lib/hui/Application.cpp | 6 +++++- src/lib/hui/Controls/ControlExpanderGtk.cpp | 2 +- src/lib/hui/Controls/ControlGridGtk.cpp | 2 +- src/lib/hui/MenuGtk.cpp | 2 +- src/lib/hui/WindowGtk.cpp | 5 +++-- src/lib/hui/common_dlg_gtk.cpp | 21 ++++++++++++++++++--- src/lib/kaba/Interpreter.h | 8 ++++---- src/lib/kaba/compiler/Backend.h | 2 +- src/lib/kaba/compiler/CommandList.h | 5 ++--- src/lib/kaba/compiler/Compiler.cpp | 2 +- src/lib/kaba/compiler/Serializer.h | 4 ++-- src/lib/kaba/dynamic/call.cpp | 9 +++++---- src/lib/kaba/dynamic/dynamic.cpp | 9 +++------ src/lib/kaba/dynamic/exception.cpp | 8 +++----- src/lib/kaba/dynamic/sorting.cpp | 11 +++-------- src/lib/kaba/lib/lib.h | 16 ++++++++++++++++ src/lib/kaba/lib/lib_gl.cpp | 8 +++----- src/lib/kaba/lib/lib_kaba.cpp | 9 ++++----- src/lib/kaba/lib/lib_math.cpp | 8 +++----- src/lib/kaba/lib/lib_net.cpp | 9 ++------- src/lib/kaba/lib/lib_os.cpp | 10 ++-------- src/lib/kaba/lib/lib_vulkan.cpp | 8 +++----- src/lib/kaba/lib/optional.h | 8 +++----- src/lib/kaba/parser/Concretifier.cpp | 8 ++++---- src/lib/kaba/parser/Parser.cpp | 8 ++++---- src/lib/kaba/parser/import.cpp | 2 +- src/lib/kaba/parser/lexical.cpp | 6 +++--- src/lib/kaba/template/implicit_dict.cpp | 2 +- src/lib/kaba/template/template.cpp | 4 ++-- 31 files changed, 108 insertions(+), 100 deletions(-) diff --git a/src/lib/base/array.h b/src/lib/base/array.h index 78c19639..1da9f64d 100644 --- a/src/lib/base/array.h +++ b/src/lib/base/array.h @@ -97,7 +97,7 @@ class Array : public DynamicArray { (*this)[num - 1] = item; } T _cdecl pop() { - T r; + T r{}; if (num > 0) { //memcpy(&r, &back(), element_size); //DynamicArray::resize(num - 1); diff --git a/src/lib/base/macros.h b/src/lib/base/macros.h index 935b2494..926dde8f 100644 --- a/src/lib/base/macros.h +++ b/src/lib/base/macros.h @@ -30,7 +30,9 @@ // which compiler? #if defined(_MSC_VER) - #define COMPILER_VISUAL_STUDIO +#define COMPILER_VISUAL_STUDIO +#elif defined(__clang__) +#define COMPILER_CLANG #elif defined(__GNUC__) #define COMPILER_GCC #endif diff --git a/src/lib/hui/Application.cpp b/src/lib/hui/Application.cpp index c7ee91d9..fb7c868e 100644 --- a/src/lib/hui/Application.cpp +++ b/src/lib/hui/Application.cpp @@ -128,7 +128,6 @@ Application::Application(const string &app_name, const string &def_lang, Flags _ else if (os::fs::exists(directory_static | "icon.ico")) set_property("logo", str(directory_static | "icon.ico")); - // default "icon" used for windows (just name) set_property("icon", app_name); } @@ -238,6 +237,11 @@ static std::function _run_after_gui_init_func_; static void on_gtk_application_activate(GApplication *_g_app, gpointer user_data) { auto app = reinterpret_cast(user_data); _init_global_css_classes_(); + + // add local icon theme + auto icon_theme = gtk_icon_theme_get_for_display(gdk_display_get_default()); + gtk_icon_theme_add_search_path(icon_theme, str(Application::directory_static | "icons").c_str()); + if (_run_after_gui_init_func_) _run_after_gui_init_func_(); else diff --git a/src/lib/hui/Controls/ControlExpanderGtk.cpp b/src/lib/hui/Controls/ControlExpanderGtk.cpp index 8e45e659..bd89b76b 100644 --- a/src/lib/hui/Controls/ControlExpanderGtk.cpp +++ b/src/lib/hui/Controls/ControlExpanderGtk.cpp @@ -14,7 +14,7 @@ namespace hui { -const int FRAME_INDENT = 0; //20; +//const int FRAME_INDENT = 0; //20; void on_gtk_expander_expand(GObject* object, GParamSpec *param_spec, gpointer user_data) { auto expander = reinterpret_cast(user_data); diff --git a/src/lib/hui/Controls/ControlGridGtk.cpp b/src/lib/hui/Controls/ControlGridGtk.cpp index f1eca1af..9aa868e7 100644 --- a/src/lib/hui/Controls/ControlGridGtk.cpp +++ b/src/lib/hui/Controls/ControlGridGtk.cpp @@ -13,7 +13,7 @@ namespace hui { -const int FRAME_MARGIN = 8; +//const int FRAME_MARGIN = 8; void DBDEL_X(const string &m); diff --git a/src/lib/hui/MenuGtk.cpp b/src/lib/hui/MenuGtk.cpp index 6b5a9b8a..61097b12 100644 --- a/src/lib/hui/MenuGtk.cpp +++ b/src/lib/hui/MenuGtk.cpp @@ -72,7 +72,7 @@ void Menu::open_popup(Panel *panel) { #if GTK_CHECK_VERSION(4,0,0) // transform into panel coordinates int dx = 0, dy = 0; - panel->apply_foreach(panel->_get_cur_id_(), [this, panel, &dx, &dy] (Control *c) { + panel->apply_foreach(panel->_get_cur_id_(), [panel, &dx, &dy] (Control *c) { graphene_point_t A{0,0}, B; if (gtk_widget_compute_point (c->widget, panel->root_control->widget, &A, &B)) { dx = (int)B.x; diff --git a/src/lib/hui/WindowGtk.cpp b/src/lib/hui/WindowGtk.cpp index d5e0b304..c4521f05 100644 --- a/src/lib/hui/WindowGtk.cpp +++ b/src/lib/hui/WindowGtk.cpp @@ -210,10 +210,11 @@ void Window::_init_(const string &title, int width, int height, Window *_parent, // icon #if GTK_CHECK_VERSION(4,0,0) - auto icon_theme = gtk_icon_theme_get_for_display(gtk_widget_get_display(window)); - gtk_icon_theme_add_search_path(icon_theme, str(Application::directory_static | "icons").c_str()); + //[[maybe_unused]] auto icon_theme = gtk_icon_theme_get_for_display(gdk_display_get_default()); string icon = Application::get_property("icon"); + //msg_write(gtk_icon_theme_has_icon(icon_theme, icon.c_str())); + gtk_window_set_default_icon_name("tsunami"); gtk_window_set_icon_name(GTK_WINDOW(window), icon.c_str()); #else string logo = Application::get_property("logo"); diff --git a/src/lib/hui/common_dlg_gtk.cpp b/src/lib/hui/common_dlg_gtk.cpp index c0577b62..29b7c0e1 100644 --- a/src/lib/hui/common_dlg_gtk.cpp +++ b/src/lib/hui/common_dlg_gtk.cpp @@ -624,7 +624,7 @@ void about_box(Window *win) { auto documenters = sa2ca_nt(Application::get_property("documenter").explode(";")); auto translators = sa2ca_nt(Application::get_property("translator").explode(";")); - GError *error = nullptr; + [[maybe_unused]] GError *error = nullptr; auto dlg = gtk_about_dialog_new(); gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(dlg), Application::get_property("name").c_str()); gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dlg), Application::get_property("version").c_str()); @@ -632,8 +632,23 @@ void about_box(Window *win) { gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(dlg), Application::get_property("license").c_str()); gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dlg), Application::get_property("website").c_str()); #if GTK_CHECK_VERSION(4,0,0) - auto *_logo = gdk_texture_new_from_file(g_file_new_for_path(Application::get_property("logo").c_str()), &error); - gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(dlg), GDK_PAINTABLE(_logo)); + + auto icon_theme = gtk_icon_theme_get_for_display(gdk_display_get_default()); + auto icon = gtk_icon_theme_lookup_icon(icon_theme, + "tsunami", // icon name + nullptr, + 128, // icon size + 1, // scale + GTK_TEXT_DIR_NONE, + GTK_ICON_LOOKUP_FORCE_REGULAR); // flags); + + gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(dlg), GDK_PAINTABLE(icon)); + + //msg_write("ABOUT..." + Application::get_property("logo")); + /*auto *_logo = gdk_texture_new_from_file(g_file_new_for_path(Application::get_property("logo").c_str()), &error); + if (error) + msg_error(error->message); + gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(dlg), GDK_PAINTABLE(_logo));*/ /*auto icon_theme = gtk_icon_theme_get_for_display(gtk_widget_get_display(dlg)); diff --git a/src/lib/kaba/Interpreter.h b/src/lib/kaba/Interpreter.h index 326ae09f..aeaafb92 100644 --- a/src/lib/kaba/Interpreter.h +++ b/src/lib/kaba/Interpreter.h @@ -15,13 +15,13 @@ class Module; class SyntaxTree; class Function; class Serializer; -class CommandList; -class SerialNode; -class SerialNodeParam; +struct CommandList; +struct SerialNode; +struct SerialNodeParam; class Interpreter { public: - Interpreter(Module *m); + explicit Interpreter(Module *m); ~Interpreter(); void add_function(Function *f, Serializer *ser); diff --git a/src/lib/kaba/compiler/Backend.h b/src/lib/kaba/compiler/Backend.h index f38af4bc..56417e37 100644 --- a/src/lib/kaba/compiler/Backend.h +++ b/src/lib/kaba/compiler/Backend.h @@ -20,7 +20,7 @@ namespace Asm { namespace kaba { class Serializer; -class SerialNode; +struct SerialNode; diff --git a/src/lib/kaba/compiler/CommandList.h b/src/lib/kaba/compiler/CommandList.h index 9dddef85..d9c7cd53 100644 --- a/src/lib/kaba/compiler/CommandList.h +++ b/src/lib/kaba/compiler/CommandList.h @@ -20,9 +20,8 @@ namespace Asm { namespace kaba { class Serializer; -class VirtualRegister; -class SerialNode; -class SerialNodeParam; +struct SerialNode; +struct SerialNodeParam; class Class; diff --git a/src/lib/kaba/compiler/Compiler.cpp b/src/lib/kaba/compiler/Compiler.cpp index 85c3a646..fd8aaceb 100644 --- a/src/lib/kaba/compiler/Compiler.cpp +++ b/src/lib/kaba/compiler/Compiler.cpp @@ -194,7 +194,7 @@ void* get_nice_memory(int64 size, bool executable, Module *module) { return mem; //munmap(mem, size); //if (config.verbose) - msg_write("...try again"); + msg_write("...try again"); } if (i > 5000) { #if defined(OS_WINDOWS) || defined(OS_MINGW) diff --git a/src/lib/kaba/compiler/Serializer.h b/src/lib/kaba/compiler/Serializer.h index 577e1c25..d2d52f64 100644 --- a/src/lib/kaba/compiler/Serializer.h +++ b/src/lib/kaba/compiler/Serializer.h @@ -5,8 +5,8 @@ #include "SerialNode.h" namespace Asm { - class InstructionWithParamsList; - class InstructionParam; + struct InstructionWithParamsList; + struct InstructionParam; enum class RegID; enum class InstID; } diff --git a/src/lib/kaba/dynamic/call.cpp b/src/lib/kaba/dynamic/call.cpp index 3615ce10..edf773d9 100644 --- a/src/lib/kaba/dynamic/call.cpp +++ b/src/lib/kaba/dynamic/call.cpp @@ -30,13 +30,14 @@ extern const Class *TypeCallableBase; #define CALL_DEBUG_X 0 // call-by-reference dummy -class CBR { +struct +CBR { int _dummy_[1024]; }; -class vec2 { float a; float b; }; -class vec3 { float a; float b; float c; }; -class vec4 { float a; float b; float c; float d; }; +struct vec2 { float a; float b; }; +struct vec3 { float a; float b; float c; }; +struct vec4 { float a; float b; float c; float d; }; void call0_void(void *ff, void *ret, const Array ¶m) { ((void(*)())ff)(); diff --git a/src/lib/kaba/dynamic/dynamic.cpp b/src/lib/kaba/dynamic/dynamic.cpp index 2bb63366..49f99a9a 100644 --- a/src/lib/kaba/dynamic/dynamic.cpp +++ b/src/lib/kaba/dynamic/dynamic.cpp @@ -18,11 +18,7 @@ extern const Class *TypeSpecialFunction; -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") - +KABA_LINK_GROUP_BEGIN void var_assign(void *pa, const void *pb, const Class *type) { if ((type == TypeInt32) or (type == TypeFloat32)) { @@ -381,7 +377,8 @@ DynamicArray array_map(void *fff, DynamicArray *a, const Class *ti, const Class return r; } -#pragma GCC pop_options + +KABA_LINK_GROUP_END diff --git a/src/lib/kaba/dynamic/exception.cpp b/src/lib/kaba/dynamic/exception.cpp index e1e9a734..a261df79 100644 --- a/src/lib/kaba/dynamic/exception.cpp +++ b/src/lib/kaba/dynamic/exception.cpp @@ -306,10 +306,7 @@ Array get_stack_trace(const StackFrameInfo& frame) { // stack unwinding does not work if gcc does not use a stack frame... -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") +KABA_LINK_GROUP_BEGIN StackFrameInfo get_current_stack_frame() { void *rbp = nullptr; @@ -387,7 +384,8 @@ void _cdecl kaba_raise_exception(KabaException *kaba_exception) { just_die(kaba_exception, {}); #endif } -#pragma GCC pop_options + +KABA_LINK_GROUP_END #elif defined(CPU_ARM64) diff --git a/src/lib/kaba/dynamic/sorting.cpp b/src/lib/kaba/dynamic/sorting.cpp index 735ba0a1..1a0d2639 100644 --- a/src/lib/kaba/dynamic/sorting.cpp +++ b/src/lib/kaba/dynamic/sorting.cpp @@ -16,13 +16,8 @@ extern const Class *TypeAny; extern const Class *TypePath; - - -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") +KABA_LINK_GROUP_BEGIN void array_inplace_reverse(DynamicArray &array) { @@ -112,7 +107,7 @@ void _array_sort_p(DynamicArray &array, int offset_by, bool stable) { template void _array_sort_pf(DynamicArray &array, Function *func, bool stable) { auto f = [func] (void *a, void *b) { - T r1, r2; + T r1{}, r2{}; if (!call_function(func, &r1, {a}) or !call_function(func, &r2, {b})) kaba_raise_exception(new KabaException("call failed " + func->long_name())); return (r1 <= r2); @@ -221,7 +216,7 @@ DynamicArray _cdecl array_sort(DynamicArray &array, const Class *type, const str } -#pragma GCC pop_options +KABA_LINK_GROUP_END diff --git a/src/lib/kaba/lib/lib.h b/src/lib/kaba/lib/lib.h index 8b40e450..fa0bd60a 100644 --- a/src/lib/kaba/lib/lib.h +++ b/src/lib/kaba/lib/lib.h @@ -197,6 +197,22 @@ void add_operator(OperatorID primitive_op, const Class *return_type, const Class +#if defined(COMPILER_GCC) +#define KABA_LINK_GROUP_BEGIN _Pragma("GCC push_options") \ +_Pragma("GCC optimize(\"no-omit-frame-pointer\")") \ +_Pragma("GCC optimize(\"no-inline\")") \ +_Pragma("GCC optimize(\"0\")") +#elif defined(COMPILER_CLANG) +#define KABA_LINK_GROUP_BEGIN _Pragma("clang attribute push (__attribute((noinline)), apply_to = function)") +#endif + + +#if defined(COMPILER_GCC) +#define KABA_LINK_GROUP_END _Pragma("GCC pop_options") +#elif defined(COMPILER_CLANG) +#define KABA_LINK_GROUP_END _Pragma("clang attribute pop") +#endif + diff --git a/src/lib/kaba/lib/lib_gl.cpp b/src/lib/kaba/lib/lib_gl.cpp index ed3065ca..f953bc52 100644 --- a/src/lib/kaba/lib/lib_gl.cpp +++ b/src/lib/kaba/lib/lib_gl.cpp @@ -16,10 +16,8 @@ namespace kaba { #define gl_p(p) p -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") + +KABA_LINK_GROUP_BEGIN xfer __LoadTexture(const Path &filename) { KABA_EXCEPTION_WRAPPER(return nix::Texture::load(filename)); @@ -36,7 +34,7 @@ xfer __ContextCreateShader(nix::Context *ctx, const string &source) return nullptr; } -#pragma GCC pop_options +KABA_LINK_GROUP_END class KabaShader : public nix::Shader { public: diff --git a/src/lib/kaba/lib/lib_kaba.cpp b/src/lib/kaba/lib/lib_kaba.cpp index 575fa36b..6e571397 100644 --- a/src/lib/kaba/lib/lib_kaba.cpp +++ b/src/lib/kaba/lib/lib_kaba.cpp @@ -14,10 +14,9 @@ extern const Class* TypeSpecialFunctionRef; string function_link_name(Function *f); -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") + + +KABA_LINK_GROUP_BEGIN class KabaContext : public Context { public: @@ -36,7 +35,7 @@ class KabaContext : public Context { } }; -#pragma GCC pop_options +KABA_LINK_GROUP_END void show_func(Function *f) { diff --git a/src/lib/kaba/lib/lib_math.cpp b/src/lib/kaba/lib/lib_math.cpp index c7fdffd6..d0274a20 100644 --- a/src/lib/kaba/lib/lib_math.cpp +++ b/src/lib/kaba/lib/lib_math.cpp @@ -233,10 +233,7 @@ class KabaRect : public rect { }; -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") +KABA_LINK_GROUP_BEGIN class KabaAny : public Any { @@ -324,7 +321,8 @@ Any pointer2any(const void *p) { return Any(p); } -#pragma GCC pop_options + +KABA_LINK_GROUP_END template diff --git a/src/lib/kaba/lib/lib_net.cpp b/src/lib/kaba/lib/lib_net.cpp index 2a71e904..22a248bc 100644 --- a/src/lib/kaba/lib/lib_net.cpp +++ b/src/lib/kaba/lib/lib_net.cpp @@ -23,12 +23,7 @@ namespace kaba { #define GetDAAddress(x) 0 #endif - -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") - +KABA_LINK_GROUP_BEGIN xfer __socket_listen__(int port, bool block) { KABA_EXCEPTION_WRAPPER( return Socket::listen(port, block); ); @@ -45,7 +40,7 @@ xfer __socket_create_udp__(int port) { return nullptr; } -#pragma GCC pop_options +KABA_LINK_GROUP_END void SIAddPackageNet(Context *c) { add_package(c, "net"); diff --git a/src/lib/kaba/lib/lib_os.cpp b/src/lib/kaba/lib/lib_os.cpp index 1953762f..0d5eff23 100644 --- a/src/lib/kaba/lib/lib_os.cpp +++ b/src/lib/kaba/lib/lib_os.cpp @@ -43,12 +43,7 @@ Any _os_config_get(Configuration &c, const string &key) { static shared _kaba_stdin; -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") - - +KABA_LINK_GROUP_BEGIN class KabaFileError : public KabaException { public: @@ -204,8 +199,7 @@ string _cdecl kaba_shell_execute(const string &cmd) { return ""; } - -#pragma GCC pop_options +KABA_LINK_GROUP_END class KabaPath : public Path { public: diff --git a/src/lib/kaba/lib/lib_vulkan.cpp b/src/lib/kaba/lib/lib_vulkan.cpp index 4fa4ed14..b9175fd9 100644 --- a/src/lib/kaba/lib/lib_vulkan.cpp +++ b/src/lib/kaba/lib/lib_vulkan.cpp @@ -21,10 +21,8 @@ namespace kaba { -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") + +KABA_LINK_GROUP_BEGIN xfer __vulkan_load_texture(const Path &filename) { KABA_EXCEPTION_WRAPPER(return vulkan::Texture::load(filename)); @@ -46,7 +44,7 @@ xfer __vulkan_device_create_simple(vulkan::Instance *instance, GLFWwindow* return nullptr; } -#pragma GCC pop_options +KABA_LINK_GROUP_END class VulkanTexture : vulkan::Texture { public: diff --git a/src/lib/kaba/lib/optional.h b/src/lib/kaba/lib/optional.h index 4897683e..9af506d0 100644 --- a/src/lib/kaba/lib/optional.h +++ b/src/lib/kaba/lib/optional.h @@ -19,12 +19,10 @@ namespace kaba { extern const Class *TypeNone; -#pragma GCC push_options -#pragma GCC optimize("no-omit-frame-pointer") -#pragma GCC optimize("no-inline") -#pragma GCC optimize("0") +KABA_LINK_GROUP_BEGIN + template class XOptional : public base::optional { public: @@ -65,7 +63,7 @@ class XOptional : public base::optional { }*/ }; -#pragma GCC pop_options +KABA_LINK_GROUP_END template void lib_create_optional(const Class *tt) { diff --git a/src/lib/kaba/parser/Concretifier.cpp b/src/lib/kaba/parser/Concretifier.cpp index 19a18dba..ae664cc1 100644 --- a/src/lib/kaba/parser/Concretifier.cpp +++ b/src/lib/kaba/parser/Concretifier.cpp @@ -388,7 +388,7 @@ shared apply_macro(Concretifier *con, Function* f, shared node, shar con->do_error(format("can not pass %d parameters to a macro expecting %d", params.num, f->num_params), node); auto b = cp_node(f->block.get()); - con->tree->transform_block((Block*)b.get(), [con, f, params] (shared n) { + con->tree->transform_block((Block*)b.get(), [f, params] (shared n) { if (n->kind == NodeKind::AbstractToken) { for (int i=0; ias_token() == f->var[i]->name) { @@ -1416,7 +1416,7 @@ shared Concretifier::concretify_statement_match(shared node, Block * node->type = output_type; - bool is_exhaustive = false; + [[maybe_unused]] bool is_exhaustive = false; if (!has_default) { if (input_type->is_enum()) { @@ -1792,8 +1792,8 @@ shared Concretifier::concretify_node(shared node, Block *block, cons concretify_all_params(node, block, ns); if (auto t = try_digest_type(tree, node->params[0])) return add_node_class(tree->request_implicit_class_optional(t, node->token_id), node->token_id); - auto t = node->params[0]->type; - /*if (t->is_optional()) { + /*auto t = node->params[0]->type; + if (t->is_optional()) { auto n = new Node(NodeKind::MAYBE, 0, t->param[0], node->flags, node->token_id); n->set_num_params(1); n->set_param(0, node->params[0]); diff --git a/src/lib/kaba/parser/Parser.cpp b/src/lib/kaba/parser/Parser.cpp index c63a707c..850b63e3 100644 --- a/src/lib/kaba/parser/Parser.cpp +++ b/src/lib/kaba/parser/Parser.cpp @@ -412,7 +412,7 @@ shared_array Parser::parse_abstract_call_parameters(Block *block) { // list of parameters if (try_consume(")")) return params; - for (int p=0;;p++) { + while (true) { // find parameter params.add(parse_abstract_operand_greedy(block)); @@ -1549,8 +1549,8 @@ void Parser::parse_enum(Class *_namespace) { int next_value = 0; - for (int i=0;!Exp.end_of_file();i++) { - for (int j=0;!Exp.end_of_line();j++) { + while (!Exp.end_of_file()) { + while (!Exp.end_of_line()) { auto *c = tree->add_constant(_class, _class); c->name = Exp.consume(); @@ -2067,7 +2067,7 @@ Function *Parser::parse_function_header(const Class *default_type, Class *name_s // parameter list expect_identifier("(", "'(' expected after function name"); if (!try_consume(")")) { - for (int k=0;;k++) { + while (true) { // like variable definitions auto param_flags = parse_flags(); diff --git a/src/lib/kaba/parser/import.cpp b/src/lib/kaba/parser/import.cpp index 3fe92ca8..041a1fc8 100644 --- a/src/lib/kaba/parser/import.cpp +++ b/src/lib/kaba/parser/import.cpp @@ -231,7 +231,7 @@ ImportSource resolve_import_source(Parser *parser, const Array &name, in } void namespace_import_contents(SyntaxTree *tree, Scope &dest, const Class *source, int token_id) { - auto check = [tree, token_id, source] (bool ok, const string &name) { + auto check = [tree, source] (bool ok, const string &name) { if (!ok) tree->do_error(format("can not import class '%s' since symbol '%s' is already in scope", source->long_name(), name)); }; diff --git a/src/lib/kaba/parser/lexical.cpp b/src/lib/kaba/parser/lexical.cpp index 6756adce..22c2c177 100644 --- a/src/lib/kaba/parser/lexical.cpp +++ b/src/lib/kaba/parser/lexical.cpp @@ -291,7 +291,7 @@ bool ExpressionBuffer::analyse_line(const char *source, ExpressionBuffer::Line * l->length = 0; l->tokens.clear(); - for (int i=0;true;i++) { + while (true) { if (analyse_expression(source, pos, l, line_no)) break; } @@ -358,7 +358,7 @@ void ExpressionBuffer::do_error_analyse(const string& msg, int pos, int line_no) bool ExpressionBuffer::analyse_expression(const char *source, int &pos, ExpressionBuffer::Line *l, int &line_no) { // skip whitespace and other "invisible" stuff to find the first interesting character - for (int i=0;true;i++) { + while (true) { // end of file if (source[pos] == 0) { strcpy(Temp, ""); @@ -413,7 +413,7 @@ bool ExpressionBuffer::analyse_expression(const char *source, int &pos, Expressi if (c == '{') { if (source[pos] == '{') { // string interpolation {{..}} - for (int j=0; true; j++) { + while (true) { c = Temp[TempLength ++] = source[pos ++]; if (c == 0) do_error_analyse("string interpolation exceeds file", pos, line_no); diff --git a/src/lib/kaba/template/implicit_dict.cpp b/src/lib/kaba/template/implicit_dict.cpp index af839a62..7064b0ef 100644 --- a/src/lib/kaba/template/implicit_dict.cpp +++ b/src/lib/kaba/template/implicit_dict.cpp @@ -281,7 +281,7 @@ void AutoImplementer::implement_dict_contains(Function *f, const Class *t) { } void AutoImplementer::_implement_functions_for_dict(const Class *t) { - auto t_el = t->param[0]; + [[maybe_unused]] auto t_el = t->param[0]; implement_dict_constructor(prepare_auto_impl(t, t->get_default_constructor()), t); implement_dict_clear(prepare_auto_impl(t, t->get_destructor()), t); diff --git a/src/lib/kaba/template/template.cpp b/src/lib/kaba/template/template.cpp index 2a7087d6..1b595032 100644 --- a/src/lib/kaba/template/template.cpp +++ b/src/lib/kaba/template/template.cpp @@ -82,7 +82,7 @@ Function *TemplateManager::full_copy(SyntaxTree *tree, Function *f0) { f->block = cp_node(f0->block.get())->as_block(); flags_clear(f->flags, Flags::NeedsOverride); - auto convert = [f,tree](shared n) { + auto convert = [f] (shared n) { if (n->kind != NodeKind::Block) return n; auto b = n->as_block(); @@ -227,7 +227,7 @@ TemplateClassInstanceManager& TemplateManager::get_class_manager(SyntaxTree *tre shared TemplateManager::node_replace(SyntaxTree *tree, shared n, const Array &names, const Array ¶ms) { //return parser->concretify_as_type(n, block, ns); - return tree->transform_node(n, [tree, &names, ¶ms](shared nn) { + return tree->transform_node(n, [&names, ¶ms] (shared nn) { if (nn->kind == NodeKind::AbstractToken) { string token = nn->as_token(); for (int i=0; i