annotate gcc/fortran/arith.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Compiler arithmetic header.
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2 Copyright (C) 2000-2018 Free Software Foundation, Inc.
111
kono
parents:
diff changeset
3 Contributed by Steven Bosscher
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 This file is part of GCC.
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 GCC is free software; you can redistribute it and/or modify it under
kono
parents:
diff changeset
8 the terms of the GNU General Public License as published by the Free
kono
parents:
diff changeset
9 Software Foundation; either version 3, or (at your option) any later
kono
parents:
diff changeset
10 version.
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
kono
parents:
diff changeset
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
kono
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
kono
parents:
diff changeset
15 for more details.
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
kono
parents:
diff changeset
18 along with GCC; see the file COPYING3. If not see
kono
parents:
diff changeset
19 <http://www.gnu.org/licenses/>. */
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 #ifndef GFC_ARITH_H
kono
parents:
diff changeset
22 #define GFC_ARITH_H
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 /* MPFR also does not have the conversion of a mpfr_t to a mpz_t, so declare
kono
parents:
diff changeset
25 a function for this as well. */
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 void gfc_mpfr_to_mpz (mpz_t, mpfr_t, locus *);
kono
parents:
diff changeset
28 void gfc_set_model_kind (int);
kono
parents:
diff changeset
29 void gfc_set_model (mpfr_t);
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 /* Make sure a gfc_expr expression is within its allowed range. Checks
kono
parents:
diff changeset
32 for overflow and underflow. */
kono
parents:
diff changeset
33 arith gfc_range_check (gfc_expr *);
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 int gfc_compare_expr (gfc_expr *, gfc_expr *, gfc_intrinsic_op);
kono
parents:
diff changeset
36 int gfc_compare_string (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
37 int gfc_compare_with_Cstring (gfc_expr *, const char *, bool);
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 /* Constant folding for gfc_expr trees. */
kono
parents:
diff changeset
41 gfc_expr *gfc_parentheses (gfc_expr * op);
kono
parents:
diff changeset
42 gfc_expr *gfc_uplus (gfc_expr * op);
kono
parents:
diff changeset
43 gfc_expr *gfc_uminus (gfc_expr * op);
kono
parents:
diff changeset
44 gfc_expr *gfc_add (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
45 gfc_expr *gfc_subtract (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
46 gfc_expr *gfc_multiply (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
47 gfc_expr *gfc_divide (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
48 gfc_expr *gfc_power (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
49 gfc_expr *gfc_concat (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
50 gfc_expr *gfc_and (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
51 gfc_expr *gfc_or (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
52 gfc_expr *gfc_not (gfc_expr *);
kono
parents:
diff changeset
53 gfc_expr *gfc_eqv (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
54 gfc_expr *gfc_neqv (gfc_expr *, gfc_expr *);
kono
parents:
diff changeset
55 gfc_expr *gfc_eq (gfc_expr *, gfc_expr *, gfc_intrinsic_op);
kono
parents:
diff changeset
56 gfc_expr *gfc_ne (gfc_expr *, gfc_expr *, gfc_intrinsic_op);
kono
parents:
diff changeset
57 gfc_expr *gfc_gt (gfc_expr *, gfc_expr *, gfc_intrinsic_op);
kono
parents:
diff changeset
58 gfc_expr *gfc_ge (gfc_expr *, gfc_expr *, gfc_intrinsic_op);
kono
parents:
diff changeset
59 gfc_expr *gfc_lt (gfc_expr *, gfc_expr *, gfc_intrinsic_op);
kono
parents:
diff changeset
60 gfc_expr *gfc_le (gfc_expr *, gfc_expr *, gfc_intrinsic_op);
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 /* Convert strings to literal constants. */
kono
parents:
diff changeset
63 gfc_expr *gfc_convert_integer (const char *, int, int, locus *);
kono
parents:
diff changeset
64 gfc_expr *gfc_convert_real (const char *, int, locus *);
kono
parents:
diff changeset
65 gfc_expr *gfc_convert_complex (gfc_expr *, gfc_expr *, int);
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 /* Convert a constant of one kind to another kind. */
kono
parents:
diff changeset
68 gfc_expr *gfc_int2int (gfc_expr *, int);
kono
parents:
diff changeset
69 gfc_expr *gfc_int2real (gfc_expr *, int);
kono
parents:
diff changeset
70 gfc_expr *gfc_int2complex (gfc_expr *, int);
kono
parents:
diff changeset
71 gfc_expr *gfc_real2int (gfc_expr *, int);
kono
parents:
diff changeset
72 gfc_expr *gfc_real2real (gfc_expr *, int);
kono
parents:
diff changeset
73 gfc_expr *gfc_real2complex (gfc_expr *, int);
kono
parents:
diff changeset
74 gfc_expr *gfc_complex2int (gfc_expr *, int);
kono
parents:
diff changeset
75 gfc_expr *gfc_complex2real (gfc_expr *, int);
kono
parents:
diff changeset
76 gfc_expr *gfc_complex2complex (gfc_expr *, int);
kono
parents:
diff changeset
77 gfc_expr *gfc_log2log (gfc_expr *, int);
kono
parents:
diff changeset
78 gfc_expr *gfc_log2int (gfc_expr *, int);
kono
parents:
diff changeset
79 gfc_expr *gfc_int2log (gfc_expr *, int);
kono
parents:
diff changeset
80 gfc_expr *gfc_hollerith2int (gfc_expr *, int);
kono
parents:
diff changeset
81 gfc_expr *gfc_hollerith2real (gfc_expr *, int);
kono
parents:
diff changeset
82 gfc_expr *gfc_hollerith2complex (gfc_expr *, int);
kono
parents:
diff changeset
83 gfc_expr *gfc_hollerith2character (gfc_expr *, int);
kono
parents:
diff changeset
84 gfc_expr *gfc_hollerith2logical (gfc_expr *, int);
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
85 gfc_expr *gfc_character2character (gfc_expr *, int);
111
kono
parents:
diff changeset
86
kono
parents:
diff changeset
87 #endif /* GFC_ARITH_H */
kono
parents:
diff changeset
88