From 6fc6941331b49bba191bfece152869799ca5ac96 Mon Sep 17 00:00:00 2001 From: thradams Date: Fri, 22 Mar 2024 20:37:47 -0300 Subject: [PATCH] preparation --- src/flow_visit.c | 17 +++++++++++++---- src/lib.c | 17 +++++++++++++---- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/flow_visit.c b/src/flow_visit.c index b66dac74..e0b86f0f 100644 --- a/src/flow_visit.c +++ b/src/flow_visit.c @@ -1345,15 +1345,24 @@ static int compare_function_arguments2(struct parser_ctx* ctx, if (type_is_any_owner(&p_current_parameter_type->type)) { + struct object parameter_object = make_object(&p_current_parameter_type->type, NULL, p_current_argument->expression); + + /*bool check_initialized_source = true; + if (type_is_pointer_to_out(&p_current_parameter_type->type)) + { + check_initialized_source = false; + }*/ + object_assignment(ctx, p_argument_object, &p_current_argument->expression->type, - NULL, /*dest object*/ + NULL, //¶meter_object, /*dest object*/ &p_current_parameter_type->type, p_current_argument->expression->first_token, bool_source_zero_value, OBJECT_STATE_UNINITIALIZED, ASSIGMENT_TYPE_PARAMETER); + object_destroy(¶meter_object); } else { @@ -2497,12 +2506,12 @@ static void flow_visit_declarator(struct flow_visit_ctx* ctx, struct declarator* if (p_declarator->object.pointed) { set_object(&t2, p_declarator->object.pointed, (OBJECT_STATE_NOT_NULL | OBJECT_STATE_NULL)); - } + } type_destroy(&t2); - } + } #endif + } } -} /*if (p_declarator->pointer) { diff --git a/src/lib.c b/src/lib.c index 19e73439..37b4e9de 100644 --- a/src/lib.c +++ b/src/lib.c @@ -35124,15 +35124,24 @@ static int compare_function_arguments2(struct parser_ctx* ctx, if (type_is_any_owner(&p_current_parameter_type->type)) { + struct object parameter_object = make_object(&p_current_parameter_type->type, NULL, p_current_argument->expression); + + /*bool check_initialized_source = true; + if (type_is_pointer_to_out(&p_current_parameter_type->type)) + { + check_initialized_source = false; + }*/ + object_assignment(ctx, p_argument_object, &p_current_argument->expression->type, - NULL, /*dest object*/ + NULL, //¶meter_object, /*dest object*/ &p_current_parameter_type->type, p_current_argument->expression->first_token, bool_source_zero_value, OBJECT_STATE_UNINITIALIZED, ASSIGMENT_TYPE_PARAMETER); + object_destroy(¶meter_object); } else { @@ -36276,12 +36285,12 @@ static void flow_visit_declarator(struct flow_visit_ctx* ctx, struct declarator* if (p_declarator->object.pointed) { set_object(&t2, p_declarator->object.pointed, (OBJECT_STATE_NOT_NULL | OBJECT_STATE_NULL)); - } + } type_destroy(&t2); - } + } #endif + } } -} /*if (p_declarator->pointer) {