From patchwork Sat Nov 12 23:45:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bernhard Reutner-Fischer X-Patchwork-Id: 19271 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp1471852wru; Sat, 12 Nov 2022 15:49:46 -0800 (PST) X-Google-Smtp-Source: AA0mqf73oY2ZHkyiujl+Fqf/NIws7bVmobBmgFslGPNar4ZX5Wi0AJJIMWFW0tuyOzc85f++otWJ X-Received: by 2002:a17:907:a587:b0:7ad:fd3e:7762 with SMTP id vs7-20020a170907a58700b007adfd3e7762mr6212697ejc.717.1668296986464; Sat, 12 Nov 2022 15:49:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668296986; cv=none; d=google.com; s=arc-20160816; b=d1Vk+UNp4G1+y0FvTmCOE2BCj1XvtrBaustqeTs7qTKvaPRCJ9/LhaSyKBh3oqgzW1 h7JrLl/78MVx8A0ygFhPPKmodY8dMpiHBYpEWHnpBGSGuidFnFS7LviCpSJz5hcfMsG/ 9dV+uFrw2bAnKuf5bJxV89NjRxsvtSSpTWGO6p1a73v8NGEzHYB7sjXjhBKmx+qjDvb+ gzTH46Lrb04ZxKvzjZNJGDUQGWx5kmCvFKylT6Oe8plJfLz8aUat8ZK5BBcKhYBAOnUk JUEkTuDaQlg1pQkXI2Q8TLhmBuP6G7rIL6adCIB6o4lvyCdVDaJh5fsAl/9AxuiENZvJ 9+iA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=XirYmsOddSTenzzXkmcZk3TTBUGcppWkYCJCDkXEqJI=; b=AKoSVk+b9jfxTFsaYcTnQ8XS4TlDAvm7ULMWozf0gbwLGqMFh9IpsgOCWca670pveC SzYCv1RU09Ph7Z4vab4TdWgb0fQ3gHHvbveip6QlShUMk6yirmnfbXmlo3r4IcTLDo7E usKl9b3lAbk289UXCyvuuwB9g2bf+PSNUa+cNCpzq1fS6+5SQ6dPFnzjsAUYYPNvZH9E zMW4aMThRNeDhCsRVO0k4VfdxIu9sA0jGRlgBP5LF0WZmr+8ReJ4KTxuNBZWjl2UvDHk Qaghg0GQ9eqjooFs7uaROzjZGuM0ceGschtfZFAfV0+Hx8bHKRHHk0VBSdwiGZcoAZth NR3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b="SvXp/l2M"; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id e9-20020a170906c00900b0077b2e822b5dsi5182875ejz.674.2022.11.12.15.49.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Nov 2022 15:49:46 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b="SvXp/l2M"; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 55DD638A815E for ; Sat, 12 Nov 2022 23:48:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 55DD638A815E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1668296919; bh=XirYmsOddSTenzzXkmcZk3TTBUGcppWkYCJCDkXEqJI=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=SvXp/l2MFwaoH8FGE3hL+8iLOsnpgxx3INr1ynqiJhK4W7kryTtBqeVKzEX+0Cwcx jZgii1UToCY/KG/O1WG8Eg56xNZqjWg1q7jFnx6IEB42eRaKE7n+pDTIF+bCCGGzQX 2d8BnVXCDOb+BHKpacl69y803q8ibrUmO20+DX5g= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by sourceware.org (Postfix) with ESMTPS id 91D753888832; Sat, 12 Nov 2022 23:45:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 91D753888832 Received: by mail-wr1-x42d.google.com with SMTP id v1so11121775wrt.11; Sat, 12 Nov 2022 15:45:50 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XirYmsOddSTenzzXkmcZk3TTBUGcppWkYCJCDkXEqJI=; b=xISWkmaIlMVNpELhFEtghEVqH0XvyIzJnbf6EtfVvSzzrhrlx/cSJYeOmt+mrWod5z WmflRKZ5OEbcfgAvpVOblSkF0wuyaxWQKEt3EdnMN8S5GxRXCqZrhFqDWksv19LUXF7z DRmAWMbATc+36mBZdVs5P+xritiUPQtPHPt6WLh4HpkR62J2Or1HA48YatffzbGm5kZd irN254IkEV+RBwsSOp0O0RF1R1AYKIyr1uM8AHy37qZm1f+VZN6nQejdiZhmMY/ndqdU WWJs2Bp6oShG8ApSDv+xb4acf/F+T4yEYF/L86vb0EP0awjuR0sz9aarNOPrw8CJPm5G bbzg== X-Gm-Message-State: ANoB5plLkeXRpspGOcmVhObkfkZWElsW0RT2ACTOT439wketPlb1HlxU tTq92lVe5YfMGe7wOdAA+gEmvo9iwNs= X-Received: by 2002:a05:6000:3ce:b0:236:7a30:20 with SMTP id b14-20020a05600003ce00b002367a300020mr4238843wrg.522.1668296749038; Sat, 12 Nov 2022 15:45:49 -0800 (PST) Received: from nbbrfq ([2001:871:227:81c4:d7ff:3a0e:48da:5fe3]) by smtp.gmail.com with ESMTPSA id u17-20020a05600c4d1100b003cfb7c02542sm7499906wmp.11.2022.11.12.15.45.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Nov 2022 15:45:45 -0800 (PST) X-Google-Original-From: Bernhard Reutner-Fischer Received: from b by nbbrfq with local (Exim 4.96) (envelope-from ) id 1ou0C1-000Opw-0A; Sun, 13 Nov 2022 00:45:45 +0100 To: gcc-patches@gcc.gnu.org Cc: Bernhard Reutner-Fischer , Bernhard Reutner-Fischer , fortran@gcc.gnu.org Subject: [PATCH 3/5] Fortran: Narrow return types [PR78798] Date: Sun, 13 Nov 2022 00:45:41 +0100 Message-Id: <20221112234543.95441-4-aldot@gcc.gnu.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221112234543.95441-1-aldot@gcc.gnu.org> References: <20221112234543.95441-1-aldot@gcc.gnu.org> MIME-Version: 1.0 X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Bernhard Reutner-Fischer via Gcc-patches From: Bernhard Reutner-Fischer Reply-To: Bernhard Reutner-Fischer Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749336180764583768?= X-GMAIL-MSGID: =?utf-8?q?1749336180764583768?= gcc/fortran/ChangeLog: * arith.cc (compare_complex): Use narrower return type. (gfc_compare_string): Likewise. * arith.h (gfc_compare_string): Same. (gfc_compare_with_Cstring): Ditto. * array.cc (compare_bounds): Ditto. (gfc_compare_array_spec): Likewise. (is_constant_element): Likewise. (gfc_constant_ac): Likewise. * check.cc (dim_rank_check): Likewise. * cpp.cc (gfc_cpp_init_options): Likewise. (dump_macro): Likewise. * cpp.h (gfc_cpp_handle_option): Likewise. * dependency.cc (gfc_ref_needs_temporary_p): Likewise. (gfc_check_argument_dependency): Likewise. (gfc_check_fncall_dependency): Likewise. (ref_same_as_full_array): Likewise. * dependency.h (gfc_check_fncall_dependency): Likewise. (gfc_dep_resolver): Likewise. (gfc_are_equivalenced_arrays): Likewise. * expr.cc (gfc_copy_ref): Likewise. (gfc_kind_max): Likewise. (numeric_type): Likewise. * gfortran.h (gfc_at_end): Likewise. (gfc_at_eof): Likewise. (gfc_at_bol): Likewise. (gfc_at_eol): Likewise. (gfc_check_include): Likewise. (gfc_define_undef_line): Likewise. (gfc_wide_is_printable): Likewise. (gfc_wide_is_digit): Likewise. (gfc_wide_fits_in_byte): Likewise. (get_c_kind): Likewise. (gfc_find_sym_tree): Likewise. (gfc_generic_intrinsic): Likewise. (gfc_specific_intrinsic): Likewise. (gfc_intrinsic_actual_ok): Likewise. (gfc_has_vector_index): Likewise. (gfc_numeric_ts): Likewise. (gfc_impure_variable): Likewise. (gfc_pure): Likewise. (gfc_implicit_pure): Likewise. (gfc_elemental): Likewise. (gfc_pure_function): Likewise. (gfc_implicit_pure_function): Likewise. (gfc_compare_array_spec): Likewise. (gfc_constant_ac): Likewise. (gfc_expanded_ac): Likewise. (gfc_check_digit): Likewise. * intrinsic.cc (gfc_find_subroutine): Likewise. (gfc_generic_intrinsic): Likewise. (gfc_specific_intrinsic): Likewise. * io.cc (compare_to_allowed_values): Likewise. * misc.cc (gfc_done_2): Likewise. * parse.cc: Likewise. * parse.h (gfc_check_do_variable): Likewise. * primary.cc (gfc_check_digit): Likewise. * resolve.cc (resolve_structure_cons): Likewise. (pure_stmt_function): Likewise. (gfc_pure_function): Likewise. (impure_stmt_fcn): Likewise. (resolve_forall_iterators): Likewise. (resolve_data): Likewise. (gfc_impure_variable): Likewise. (gfc_pure): Likewise. (gfc_unset_implicit_pure): Likewise. * scanner.cc (wide_is_ascii): Likewise. (gfc_wide_toupper): Likewise. (gfc_open_included_file): Likewise. (gfc_at_end): Likewise. (gfc_at_eof): Likewise. (gfc_at_bol): Likewise. (skip_comment_line): Likewise. (gfc_gobble_whitespace): Likewise. * symbol.cc (gfc_find_symtree_in_proc): Likewise. * target-memory.cc (size_integer): Likewise. (size_complex): Likewise. * trans-array.cc: Likewise. * trans-decl.cc (gfc_set_decl_assembler_name): Likewise. * trans-types.cc (gfc_get_element_type): Likewise. (gfc_add_field_to_struct): Likewise. * trans-types.h (gfc_copy_dt_decls_ifequal): Likewise. (gfc_return_by_reference): Likewise. (gfc_is_nodesc_array): Likewise. * trans.h (gfc_can_put_var_on_stack): Likewise. --- Bootstrapped and regtested on x86_86-unknown-linux with no regressions. Ok for trunk? Cc: fortran@gcc.gnu.org --- gcc/fortran/arith.cc | 4 +-- gcc/fortran/arith.h | 4 +-- gcc/fortran/array.cc | 8 +++--- gcc/fortran/check.cc | 2 +- gcc/fortran/cpp.cc | 3 +-- gcc/fortran/cpp.h | 2 +- gcc/fortran/dependency.cc | 8 +++--- gcc/fortran/dependency.h | 6 ++--- gcc/fortran/expr.cc | 6 ++--- gcc/fortran/gfortran.h | 51 ++++++++++++++++++------------------ gcc/fortran/intrinsic.cc | 6 ++--- gcc/fortran/io.cc | 13 ++------- gcc/fortran/misc.cc | 2 +- gcc/fortran/parse.cc | 2 +- gcc/fortran/parse.h | 2 +- gcc/fortran/primary.cc | 4 +-- gcc/fortran/resolve.cc | 22 ++++++++-------- gcc/fortran/scanner.cc | 20 +++++++------- gcc/fortran/symbol.cc | 2 +- gcc/fortran/target-memory.cc | 6 ++--- gcc/fortran/trans-array.cc | 2 +- gcc/fortran/trans-decl.cc | 2 +- gcc/fortran/trans-types.cc | 6 ++--- gcc/fortran/trans-types.h | 6 ++--- gcc/fortran/trans.h | 2 +- 25 files changed, 90 insertions(+), 101 deletions(-) diff --git a/gcc/fortran/arith.cc b/gcc/fortran/arith.cc index fc9224ebc5c..55f35ea66be 100644 --- a/gcc/fortran/arith.cc +++ b/gcc/fortran/arith.cc @@ -1135,7 +1135,7 @@ compare_complex (gfc_expr *op1, gfc_expr *op2) strings. We return -1 for a < b, 0 for a == b and 1 for a > b. We use the processor's default collating sequence. */ -int +signed char gfc_compare_string (gfc_expr *a, gfc_expr *b) { size_t len, alen, blen, i; @@ -1162,7 +1162,7 @@ gfc_compare_string (gfc_expr *a, gfc_expr *b) } -int +signed char gfc_compare_with_Cstring (gfc_expr *a, const char *b, bool case_sensitive) { size_t len, alen, blen, i; diff --git a/gcc/fortran/arith.h b/gcc/fortran/arith.h index 4a79c985231..8aeb7242166 100644 --- a/gcc/fortran/arith.h +++ b/gcc/fortran/arith.h @@ -33,8 +33,8 @@ void gfc_set_model (mpfr_t); arith gfc_range_check (gfc_expr *); int gfc_compare_expr (gfc_expr *, gfc_expr *, gfc_intrinsic_op); -int gfc_compare_string (gfc_expr *, gfc_expr *); -int gfc_compare_with_Cstring (gfc_expr *, const char *, bool); +signed char gfc_compare_string (gfc_expr *, gfc_expr *); +signed char gfc_compare_with_Cstring (gfc_expr *, const char *, bool); /* Constant folding for gfc_expr trees. */ diff --git a/gcc/fortran/array.cc b/gcc/fortran/array.cc index bbdb5b392fc..281f95a0a7e 100644 --- a/gcc/fortran/array.cc +++ b/gcc/fortran/array.cc @@ -985,7 +985,7 @@ compare_bounds (gfc_expr *bound1, gfc_expr *bound2) /* Compares two array specifications. They must be constant or deferred shape. */ -int +bool gfc_compare_array_spec (gfc_array_spec *as1, gfc_array_spec *as2) { int i; @@ -1030,7 +1030,7 @@ gfc_compare_array_spec (gfc_array_spec *as1, gfc_array_spec *as2) use the symbol as an implied-DO iterator. Returns nonzero if a duplicate was found. */ -static int +static bool check_duplicate_iterator (gfc_constructor_base base, gfc_symbol *master) { gfc_constructor *c; @@ -1973,7 +1973,7 @@ is_constant_element (gfc_expr *e) i=1,100000000) /) will take a while as* opposed to a more clever function that traverses the expression tree. FIXME. */ -int +bool gfc_constant_ac (gfc_expr *e) { expand_info expand_save; @@ -1996,7 +1996,7 @@ gfc_constant_ac (gfc_expr *e) /* Returns nonzero if an array constructor has been completely expanded (no iterators) and zero if iterators are present. */ -int +bool gfc_expanded_ac (gfc_expr *e) { gfc_constructor *c; diff --git a/gcc/fortran/check.cc b/gcc/fortran/check.cc index 91d87a1b2c1..e0ca1e8d7ca 100644 --- a/gcc/fortran/check.cc +++ b/gcc/fortran/check.cc @@ -1156,7 +1156,7 @@ dim_rank_check (gfc_expr *dim, gfc_expr *array, int allow_assumed) dimension bi, returning 0 if they are known not to be identical, and 1 if they are identical, or if this cannot be determined. */ -static int +static bool identical_dimen_shape (gfc_expr *a, int ai, gfc_expr *b, int bi) { mpz_t a_size, b_size; diff --git a/gcc/fortran/cpp.cc b/gcc/fortran/cpp.cc index 364bd0d2a85..9ae8046c4bc 100644 --- a/gcc/fortran/cpp.cc +++ b/gcc/fortran/cpp.cc @@ -297,7 +297,7 @@ gfc_cpp_init_options (unsigned int decoded_options_count, gfc_cpp_option.deferred_opt_count = 0; } -int +bool gfc_cpp_handle_option (size_t scode, const char *arg, int value ATTRIBUTE_UNUSED) { int result = 1; @@ -749,7 +749,6 @@ gfc_cpp_add_include_path_after (char *path, bool user_supplied) static void scan_translation_unit_trad (cpp_reader *); static void account_for_newlines (const unsigned char *, size_t); -static int dump_macro (cpp_reader *, cpp_hashnode *, void *); static void print_line (location_t, const char *); static void maybe_print_line (location_t); diff --git a/gcc/fortran/cpp.h b/gcc/fortran/cpp.h index 28673e32aa2..a003d5922d6 100644 --- a/gcc/fortran/cpp.h +++ b/gcc/fortran/cpp.h @@ -39,7 +39,7 @@ void gfc_cpp_init (void); void gfc_cpp_init_options (unsigned int decoded_options_count, struct cl_decoded_option *decoded_options); -int gfc_cpp_handle_option(size_t scode, const char *arg, int value); +bool gfc_cpp_handle_option(size_t scode, const char *arg, int value); void gfc_cpp_post_options (bool); diff --git a/gcc/fortran/dependency.cc b/gcc/fortran/dependency.cc index ab3bd36f74e..dee50cc8926 100644 --- a/gcc/fortran/dependency.cc +++ b/gcc/fortran/dependency.cc @@ -921,7 +921,7 @@ gfc_ref_needs_temporary_p (gfc_ref *ref) } -static int +static bool gfc_is_data_pointer (gfc_expr *e) { gfc_ref *ref; @@ -1091,7 +1091,7 @@ gfc_check_argument_dependency (gfc_expr *other, sym_intent intent, /* Like gfc_check_argument_dependency, but check all the arguments in ACTUAL. FNSYM is the function being called, or NULL if not known. */ -int +bool gfc_check_fncall_dependency (gfc_expr *other, sym_intent intent, gfc_symbol *fnsym, gfc_actual_arglist *actual, gfc_dep_check elemental) @@ -1137,7 +1137,7 @@ gfc_check_fncall_dependency (gfc_expr *other, sym_intent intent, e1->ref and e2->ref to determine whether the actually accessed portions of these variables/arrays potentially overlap. */ -int +bool gfc_are_equivalenced_arrays (gfc_expr *e1, gfc_expr *e2) { gfc_equiv_list *l; @@ -2093,7 +2093,7 @@ ref_same_as_full_array (gfc_ref *full_ref, gfc_ref *ref) there is some kind of overlap. 0 : array references are identical or not overlapping. */ -int +bool gfc_dep_resolver (gfc_ref *lref, gfc_ref *rref, gfc_reverse *reverse, bool identical) { diff --git a/gcc/fortran/dependency.h b/gcc/fortran/dependency.h index 339be76a8d0..81114054eb8 100644 --- a/gcc/fortran/dependency.h +++ b/gcc/fortran/dependency.h @@ -32,13 +32,13 @@ enum gfc_dep_check bool gfc_ref_needs_temporary_p (gfc_ref *); bool gfc_full_array_ref_p (gfc_ref *, bool *); gfc_expr *gfc_get_noncopying_intrinsic_argument (gfc_expr *); -int gfc_check_fncall_dependency (gfc_expr *, sym_intent, gfc_symbol *, +bool gfc_check_fncall_dependency (gfc_expr *, sym_intent, gfc_symbol *, gfc_actual_arglist *, gfc_dep_check); int gfc_check_dependency (gfc_expr *, gfc_expr *, bool); int gfc_expr_is_one (gfc_expr *, int); -int gfc_dep_resolver (gfc_ref *, gfc_ref *, gfc_reverse *, +bool gfc_dep_resolver (gfc_ref *, gfc_ref *, gfc_reverse *, bool identical = false); -int gfc_are_equivalenced_arrays (gfc_expr *, gfc_expr *); +bool gfc_are_equivalenced_arrays (gfc_expr *, gfc_expr *); gfc_expr * gfc_discard_nops (gfc_expr *); diff --git a/gcc/fortran/expr.cc b/gcc/fortran/expr.cc index 69d0b57c688..e095e74d290 100644 --- a/gcc/fortran/expr.cc +++ b/gcc/fortran/expr.cc @@ -787,7 +787,7 @@ gfc_copy_ref (gfc_ref *src) /* Detect whether an expression has any vector index array references. */ -int +bool gfc_has_vector_index (gfc_expr *e) { gfc_ref *ref; @@ -877,7 +877,7 @@ gfc_kind_max (gfc_expr *e1, gfc_expr *e2) /* Returns nonzero if the type is numeric, zero otherwise. */ -static int +static bool numeric_type (bt type) { return type == BT_COMPLEX || type == BT_REAL || type == BT_INTEGER; @@ -886,7 +886,7 @@ numeric_type (bt type) /* Returns nonzero if the typespec is a numeric type, zero otherwise. */ -int +bool gfc_numeric_ts (gfc_typespec *ts) { return numeric_type (ts->type); diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 6bd8800ecf8..4cc969d7dc8 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -3202,17 +3202,16 @@ void gfc_release_include_path (void); void gfc_check_include_dirs (bool); FILE *gfc_open_included_file (const char *, bool, bool); -int gfc_at_end (void); -int gfc_at_eof (void); -int gfc_at_bol (void); -int gfc_at_eol (void); +bool gfc_at_end (void); +bool gfc_at_eof (void); +bool gfc_at_bol (void); +bool gfc_at_eol (void); void gfc_advance_line (void); -int gfc_check_include (void); -int gfc_define_undef_line (void); +bool gfc_define_undef_line (void); -int gfc_wide_is_printable (gfc_char_t); -int gfc_wide_is_digit (gfc_char_t); -int gfc_wide_fits_in_byte (gfc_char_t); +bool gfc_wide_is_printable (gfc_char_t); +bool gfc_wide_is_digit (gfc_char_t); +bool gfc_wide_fits_in_byte (gfc_char_t); gfc_char_t gfc_wide_tolower (gfc_char_t); gfc_char_t gfc_wide_toupper (gfc_char_t); size_t gfc_wide_strlen (const gfc_char_t *); @@ -3258,7 +3257,7 @@ void gfc_init_2 (void); void gfc_done_1 (void); void gfc_done_2 (void); -int get_c_kind (const char *, CInteropKind_t *); +signed char get_c_kind (const char *, CInteropKind_t *); const char *gfc_closest_fuzzy_match (const char *, char **); static inline void @@ -3469,7 +3468,7 @@ void gfc_release_symbol (gfc_symbol *&); gfc_symbol *gfc_new_symbol (const char *, gfc_namespace *); gfc_symtree* gfc_find_symtree_in_proc (const char *, gfc_namespace *); int gfc_find_symbol (const char *, gfc_namespace *, int, gfc_symbol **); -int gfc_find_sym_tree (const char *, gfc_namespace *, int, gfc_symtree **); +bool gfc_find_sym_tree (const char *, gfc_namespace *, int, gfc_symtree **); int gfc_get_symbol (const char *, gfc_namespace *, gfc_symbol **); bool gfc_verify_c_interop (gfc_typespec *); bool gfc_verify_c_interop_param (gfc_symbol *); @@ -3549,10 +3548,10 @@ bool gfc_convert_type (gfc_expr *, gfc_typespec *, int); bool gfc_convert_type_warn (gfc_expr *, gfc_typespec *, int, int, bool array = false); bool gfc_convert_chartype (gfc_expr *, gfc_typespec *); -int gfc_generic_intrinsic (const char *); -int gfc_specific_intrinsic (const char *); +bool gfc_generic_intrinsic (const char *); +bool gfc_specific_intrinsic (const char *); bool gfc_is_intrinsic (gfc_symbol*, int, locus); -int gfc_intrinsic_actual_ok (const char *, const bool); +bool gfc_intrinsic_actual_ok (const char *, const bool); gfc_intrinsic_sym *gfc_find_function (const char *); gfc_intrinsic_sym *gfc_find_subroutine (const char *); gfc_intrinsic_sym *gfc_intrinsic_function_by_id (gfc_isym_id); @@ -3630,7 +3629,7 @@ void gfc_type_convert_binary (gfc_expr *, int); bool gfc_is_constant_expr (gfc_expr *); bool gfc_simplify_expr (gfc_expr *, int); bool gfc_try_simplify_expr (gfc_expr *, int); -int gfc_has_vector_index (gfc_expr *); +bool gfc_has_vector_index (gfc_expr *); gfc_expr *gfc_get_expr (void); gfc_expr *gfc_get_array_expr (bt type, int kind, locus *); @@ -3654,7 +3653,7 @@ gfc_ref* gfc_copy_ref (gfc_ref*); bool gfc_specification_expr (gfc_expr *); -int gfc_numeric_ts (gfc_typespec *); +bool gfc_numeric_ts (gfc_typespec *); int gfc_kind_max (gfc_expr *, gfc_expr *); bool gfc_check_conformance (gfc_expr *, gfc_expr *, const char *, ...) ATTRIBUTE_PRINTF_3; @@ -3718,11 +3717,11 @@ void gfc_resolve (gfc_namespace *); void gfc_resolve_code (gfc_code *, gfc_namespace *); void gfc_resolve_blocks (gfc_code *, gfc_namespace *); void gfc_resolve_formal_arglist (gfc_symbol *); -int gfc_impure_variable (gfc_symbol *); -int gfc_pure (gfc_symbol *); -int gfc_implicit_pure (gfc_symbol *); +bool gfc_impure_variable (gfc_symbol *); +bool gfc_pure (gfc_symbol *); +bool gfc_implicit_pure (gfc_symbol *); void gfc_unset_implicit_pure (gfc_symbol *); -int gfc_elemental (gfc_symbol *); +bool gfc_elemental (gfc_symbol *); bool gfc_resolve_iterator (gfc_iterator *, bool, bool); bool find_forall_index (gfc_expr *, gfc_symbol *, int); bool gfc_resolve_index (gfc_expr *, int); @@ -3736,8 +3735,8 @@ bool gfc_resolve_intrinsic (gfc_symbol *, locus *); bool gfc_explicit_interface_required (gfc_symbol *, char *, int); extern int gfc_do_concurrent_flag; const char* gfc_lookup_function_fuzzy (const char *, gfc_symtree *); -int gfc_pure_function (gfc_expr *e, const char **name); -int gfc_implicit_pure_function (gfc_expr *e); +bool gfc_pure_function (gfc_expr *e, const char **name); +bool gfc_implicit_pure_function (gfc_expr *e); /* array.cc */ @@ -3750,12 +3749,12 @@ bool gfc_set_array_spec (gfc_symbol *, gfc_array_spec *, locus *); gfc_array_spec *gfc_copy_array_spec (gfc_array_spec *); bool gfc_resolve_array_spec (gfc_array_spec *, int); -int gfc_compare_array_spec (gfc_array_spec *, gfc_array_spec *); +bool gfc_compare_array_spec (gfc_array_spec *, gfc_array_spec *); void gfc_simplify_iterator_var (gfc_expr *); bool gfc_expand_constructor (gfc_expr *, bool); -int gfc_constant_ac (gfc_expr *); -int gfc_expanded_ac (gfc_expr *); +bool gfc_constant_ac (gfc_expr *); +bool gfc_expanded_ac (gfc_expr *); bool gfc_resolve_character_array_constructor (gfc_expr *); bool gfc_resolve_array_constructor (gfc_expr *); bool gfc_check_constructor_type (gfc_expr *); @@ -3840,7 +3839,7 @@ symbol_attribute gfc_expr_attr (gfc_expr *); symbol_attribute gfc_caf_attr (gfc_expr *, bool i = false, bool *r = NULL); match gfc_match_rvalue (gfc_expr **); match gfc_match_varspec (gfc_expr*, int, bool, bool); -int gfc_check_digit (char, int); +bool gfc_check_digit (char, int); bool gfc_is_function_return_value (gfc_symbol *, gfc_namespace *); bool gfc_convert_to_structure_constructor (gfc_expr *, gfc_symbol *, gfc_expr **, diff --git a/gcc/fortran/intrinsic.cc b/gcc/fortran/intrinsic.cc index e89131f5a71..1d3702ff313 100644 --- a/gcc/fortran/intrinsic.cc +++ b/gcc/fortran/intrinsic.cc @@ -1106,7 +1106,7 @@ gfc_find_subroutine (const char *name) /* Given a string, figure out if it is the name of a generic intrinsic function or not. */ -int +bool gfc_generic_intrinsic (const char *name) { gfc_intrinsic_sym *sym; @@ -1119,7 +1119,7 @@ gfc_generic_intrinsic (const char *name) /* Given a string, figure out if it is the name of a specific intrinsic function or not. */ -int +bool gfc_specific_intrinsic (const char *name) { gfc_intrinsic_sym *sym; @@ -1131,7 +1131,7 @@ gfc_specific_intrinsic (const char *name) /* Given a string, figure out if it is the name of an intrinsic function or subroutine allowed as an actual argument or not. */ -int +bool gfc_intrinsic_actual_ok (const char *name, const bool subroutine_flag) { gfc_intrinsic_sym *sym; diff --git a/gcc/fortran/io.cc b/gcc/fortran/io.cc index 902aa19f55a..488264de4b4 100644 --- a/gcc/fortran/io.cc +++ b/gcc/fortran/io.cc @@ -2010,15 +2010,6 @@ gfc_free_open (gfc_open *open) free (open); } - -static int -compare_to_allowed_values (const char *specifier, const char *allowed[], - const char *allowed_f2003[], - const char *allowed_gnu[], gfc_char_t *value, - const char *statement, bool warn, locus *where, - int *num = NULL); - - static bool check_open_constraints (gfc_open *open, locus *where); @@ -2062,12 +2053,12 @@ gfc_resolve_open (gfc_open *open, locus *where) value if it is not allowed. */ -static int +static bool compare_to_allowed_values (const char *specifier, const char *allowed[], const char *allowed_f2003[], const char *allowed_gnu[], gfc_char_t *value, const char *statement, bool warn, locus *where, - int *num) + int *num = NULL) { int i; unsigned int len; diff --git a/gcc/fortran/misc.cc b/gcc/fortran/misc.cc index af363472641..270ea817f61 100644 --- a/gcc/fortran/misc.cc +++ b/gcc/fortran/misc.cc @@ -387,7 +387,7 @@ gfc_done_2 (void) /* Returns the index into the table of C interoperable kinds where the kind with the given name (c_kind_name) was found. */ -int +signed char get_c_kind(const char *c_kind_name, CInteropKind_t kinds_table[]) { int index = 0; diff --git a/gcc/fortran/parse.cc b/gcc/fortran/parse.cc index f04fd13cc69..352191e650e 100644 --- a/gcc/fortran/parse.cc +++ b/gcc/fortran/parse.cc @@ -4703,7 +4703,7 @@ done: context that causes it to become redefined. If the symbol is an iterator, we generate an error message and return nonzero. */ -int +bool gfc_check_do_variable (gfc_symtree *st) { gfc_state_data *s; diff --git a/gcc/fortran/parse.h b/gcc/fortran/parse.h index 013aeaedc03..44b3a5079c0 100644 --- a/gcc/fortran/parse.h +++ b/gcc/fortran/parse.h @@ -63,7 +63,7 @@ extern gfc_state_data *gfc_state_stack; #define gfc_comp_struct(s) \ ((s) == COMP_DERIVED || (s) == COMP_STRUCTURE || (s) == COMP_MAP) -int gfc_check_do_variable (gfc_symtree *); +bool gfc_check_do_variable (gfc_symtree *); bool gfc_find_state (gfc_compile_state); gfc_state_data *gfc_enclosing_unit (gfc_compile_state *); const char *gfc_ascii_statement (gfc_statement, bool strip_sentinel = false) ; diff --git a/gcc/fortran/primary.cc b/gcc/fortran/primary.cc index 19f2e78c8ff..52457cc8277 100644 --- a/gcc/fortran/primary.cc +++ b/gcc/fortran/primary.cc @@ -109,10 +109,10 @@ get_kind (int *is_iso_c) /* Given a character and a radix, see if the character is a valid digit in that radix. */ -int +bool gfc_check_digit (char c, int radix) { - int r; + bool r; switch (radix) { diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc index 9202e2f10ad..39074273e95 100644 --- a/gcc/fortran/resolve.cc +++ b/gcc/fortran/resolve.cc @@ -1562,7 +1562,7 @@ resolve_structure_cons (gfc_expr *expr, int init) /* Returns 0 if a symbol was not declared with a type or attribute declaration statement, nonzero otherwise. */ -static int +static bool was_declared (gfc_symbol *sym) { symbol_attribute a; @@ -3066,13 +3066,13 @@ is_external_proc (gfc_symbol *sym) /* Figure out if a function reference is pure or not. Also set the name of the function for a potential error message. Return nonzero if the function is PURE, zero if not. */ -static int +static bool pure_stmt_function (gfc_expr *, gfc_symbol *); -int +bool gfc_pure_function (gfc_expr *e, const char **name) { - int pure; + bool pure; gfc_component *comp; *name = NULL; @@ -3112,7 +3112,7 @@ gfc_pure_function (gfc_expr *e, const char **name) /* Check if the expression is a reference to an implicitly pure function. */ -int +bool gfc_implicit_pure_function (gfc_expr *e) { gfc_component *comp = gfc_get_proc_ptr_comp (e); @@ -3143,7 +3143,7 @@ impure_stmt_fcn (gfc_expr *e, gfc_symbol *sym, } -static int +static bool pure_stmt_function (gfc_expr *e, gfc_symbol *sym) { return gfc_traverse_expr (e, sym, impure_stmt_fcn, 0) ? 0 : 1; @@ -7524,7 +7524,7 @@ resolve_forall_iterators (gfc_forall_iterator *it) PRIVATE. The search is recursive if necessary. Returns zero if no inaccessible components are found, nonzero otherwise. */ -static int +static bool derived_inaccessible (gfc_symbol *sym) { gfc_component *c; @@ -16757,7 +16757,7 @@ resolve_data (gfc_data *d) /* Determines if a variable is not 'pure', i.e., not assignable within a pure procedure. Returns zero if assignment is OK, nonzero if there is a problem. */ -int +bool gfc_impure_variable (gfc_symbol *sym) { gfc_symbol *proc; @@ -16792,7 +16792,7 @@ gfc_impure_variable (gfc_symbol *sym) /* Test whether a symbol is pure or not. For a NULL pointer, checks if the current namespace is inside a pure procedure. */ -int +bool gfc_pure (gfc_symbol *sym) { symbol_attribute attr; @@ -16824,7 +16824,7 @@ gfc_pure (gfc_symbol *sym) checks if the current namespace is implicitly pure. Note that this function returns false for a PURE procedure. */ -int +bool gfc_implicit_pure (gfc_symbol *sym) { gfc_namespace *ns; @@ -16878,7 +16878,7 @@ gfc_unset_implicit_pure (gfc_symbol *sym) /* Test whether the current procedure is elemental or not. */ -int +bool gfc_elemental (gfc_symbol *sym) { symbol_attribute attr; diff --git a/gcc/fortran/scanner.cc b/gcc/fortran/scanner.cc index fa1d9cba394..cae26a9f2bc 100644 --- a/gcc/fortran/scanner.cc +++ b/gcc/fortran/scanner.cc @@ -56,7 +56,7 @@ gfc_directorylist *include_dirs, *intrinsic_modules_dirs; static gfc_file *file_head, *current_file; -static int continue_flag, end_flag, gcc_attribute_flag; +static bool continue_flag, end_flag, gcc_attribute_flag; /* If !$omp/!$acc occurred in current comment line. */ static int openmp_flag, openacc_flag; static int continue_count, continue_line; @@ -86,7 +86,7 @@ static gfc_char_t *last_error_char; /* Functions dealing with our wide characters (gfc_char_t) and sequences of such characters. */ -int +bool gfc_wide_fits_in_byte (gfc_char_t c) { return (c <= UCHAR_MAX); @@ -98,7 +98,7 @@ wide_is_ascii (gfc_char_t c) return (gfc_wide_fits_in_byte (c) && ((unsigned char) c & ~0x7f) == 0); } -int +bool gfc_wide_is_printable (gfc_char_t c) { return (gfc_wide_fits_in_byte (c) && ISPRINT ((unsigned char) c)); @@ -116,7 +116,7 @@ gfc_wide_toupper (gfc_char_t c) return (wide_is_ascii (c) ? (gfc_char_t) TOUPPER((unsigned char) c) : c); } -int +bool gfc_wide_is_digit (gfc_char_t c) { return (c >= '0' && c <= '9'); @@ -518,7 +518,7 @@ gfc_open_included_file (const char *name, bool include_cwd, bool module) /* Test to see if we're at the end of the main source file. */ -int +bool gfc_at_end (void) { return end_flag; @@ -527,7 +527,7 @@ gfc_at_end (void) /* Test to see if we're at the end of the current file. */ -int +bool gfc_at_eof (void) { if (gfc_at_end ()) @@ -545,7 +545,7 @@ gfc_at_eof (void) /* Test to see if we're at the beginning of a new line. */ -int +bool gfc_at_bol (void) { if (gfc_at_eof ()) @@ -557,7 +557,7 @@ gfc_at_bol (void) /* Test to see if we're at the end of a line. */ -int +bool gfc_at_eol (void) { if (gfc_at_eof ()) @@ -702,7 +702,7 @@ skip_comment_line (void) } -int +bool gfc_define_undef_line (void) { char *tmp; @@ -1803,7 +1803,7 @@ gfc_gobble_whitespace (void) easily report line and column numbers consistent with other parts of gfortran. */ -static int +static bool load_line (FILE *input, gfc_char_t **pbuf, int *pbuflen, const int *first_char) { int c, maxlen, i, preprocessor_flag, buflen = *pbuflen; diff --git a/gcc/fortran/symbol.cc b/gcc/fortran/symbol.cc index 49fb37864bd..65860938681 100644 --- a/gcc/fortran/symbol.cc +++ b/gcc/fortran/symbol.cc @@ -3210,7 +3210,7 @@ gfc_find_symtree_in_proc (const char* name, gfc_namespace* ns) any parent namespaces if requested by a nonzero parent_flag. Returns nonzero if the name is ambiguous. */ -int +bool gfc_find_sym_tree (const char *name, gfc_namespace *ns, int parent_flag, gfc_symtree **result) { diff --git a/gcc/fortran/target-memory.cc b/gcc/fortran/target-memory.cc index 7ce7d736629..8e32c56f479 100644 --- a/gcc/fortran/target-memory.cc +++ b/gcc/fortran/target-memory.cc @@ -36,14 +36,14 @@ along with GCC; see the file COPYING3. If not see /* Calculate the size of an expression. */ -static size_t +static short unsigned int size_integer (int kind) { return GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (gfc_get_int_type (kind))); } -static size_t +static short unsigned int size_float (int kind) { return GET_MODE_SIZE (SCALAR_FLOAT_TYPE_MODE (gfc_get_real_type (kind))); @@ -57,7 +57,7 @@ size_complex (int kind) } -static size_t +static short unsigned int size_logical (int kind) { return GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (gfc_get_logical_type (kind))); diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index 514cb057afb..dc84fbaeb20 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -4931,7 +4931,7 @@ done: /* Return true if both symbols could refer to the same data object. Does not take account of aliasing due to equivalence statements. */ -static int +static bool symbols_could_alias (gfc_symbol *lsym, gfc_symbol *rsym, bool lsym_pointer, bool lsym_target, bool rsym_pointer, bool rsym_target) { diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc index 63515b9072a..ba855c4569e 100644 --- a/gcc/fortran/trans-decl.cc +++ b/gcc/fortran/trans-decl.cc @@ -483,7 +483,7 @@ gfc_set_decl_assembler_name (tree decl, tree name) /* Returns true if a variable of specified size should go on the stack. */ -int +bool gfc_can_put_var_on_stack (tree size) { unsigned HOST_WIDE_INT low; diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc index def7552ac67..99a28415cb3 100644 --- a/gcc/fortran/trans-types.cc +++ b/gcc/fortran/trans-types.cc @@ -1374,7 +1374,7 @@ gfc_get_element_type (tree type) /* Returns true if the array sym does not require a descriptor. */ -int +bool gfc_is_nodesc_array (gfc_symbol * sym) { symbol_attribute *array_attr; @@ -2451,7 +2451,7 @@ gfc_add_field_to_struct (tree context, tree name, tree type, tree **chain) the two derived type symbols are "equal", as described in 4.4.2 and resolved by gfc_compare_derived_types. */ -int +bool gfc_copy_dt_decls_ifequal (gfc_symbol *from, gfc_symbol *to, bool from_gsym) { @@ -2940,7 +2940,7 @@ copy_derived_types: } -int +bool gfc_return_by_reference (gfc_symbol * sym) { if (!sym->attr.function) diff --git a/gcc/fortran/trans-types.h b/gcc/fortran/trans-types.h index 6a360de69f6..297b93702d8 100644 --- a/gcc/fortran/trans-types.h +++ b/gcc/fortran/trans-types.h @@ -88,7 +88,7 @@ tree gfc_get_character_type_len_for_eltype (tree, tree); tree gfc_sym_type (gfc_symbol *, bool is_bind_c_arg = false); tree gfc_get_cfi_type (int dimen, bool restricted); tree gfc_typenode_for_spec (gfc_typespec *, int c = 0); -int gfc_copy_dt_decls_ifequal (gfc_symbol *, gfc_symbol *, bool); +bool gfc_copy_dt_decls_ifequal (gfc_symbol *, gfc_symbol *, bool); tree gfc_get_function_type (gfc_symbol *, gfc_actual_arglist *args = NULL, const char *fnspec = NULL); @@ -109,10 +109,10 @@ tree gfc_add_field_to_struct (tree, tree, tree, tree **); void gfc_finish_type (tree); /* Some functions have an extra parameter for the return value. */ -int gfc_return_by_reference (gfc_symbol *); +bool gfc_return_by_reference (gfc_symbol *); /* Returns true if the array sym does not require a descriptor. */ -int gfc_is_nodesc_array (gfc_symbol *); +bool gfc_is_nodesc_array (gfc_symbol *); /* Return the DTYPE for an array. */ tree gfc_get_dtype_rank_type (int, tree); diff --git a/gcc/fortran/trans.h b/gcc/fortran/trans.h index bc9035c1717..1ea30156675 100644 --- a/gcc/fortran/trans.h +++ b/gcc/fortran/trans.h @@ -664,7 +664,7 @@ void gfc_restore_sym (gfc_symbol *, gfc_saved_var *); void gfc_set_decl_assembler_name (tree, tree); /* Returns true if a variable of specified size should go on the stack. */ -int gfc_can_put_var_on_stack (tree); +bool gfc_can_put_var_on_stack (tree); /* Set GFC_DECL_SCALAR_* on decl from sym if needed. */ void gfc_finish_decl_attrs (tree, symbol_attribute *);