]> gcc.gnu.org Git - gcc.git/blame - gcc/fortran/ChangeLog
Daily bump.
[gcc.git] / gcc / fortran / ChangeLog
CommitLineData
42a0e16c
PT
12005-03-06 Paul Thomas <pault@gcc.gnu.org>
2 Erik Edelmann <eedelman@gcc.gnu.org>
3
4 * trans-array.c (gfc_trans_dealloc_allocated): New function.
5 (gfc_trans_deferred_array): Use it, instead of inline code.
6 * trans-array.h: Prototype for gfc_trans_dealloc_allocated().
7 * trans-expr.c (gfc_conv_function_call): Deallocate allocated
8 ALLOCATABLE, INTENT(OUT) arguments upon procedure entry.
9
5f20c93a
PT
102006-03-06 Paul Thomas <pault@gcc.gnu.org>
11
12 PR fortran/26107
13 * resolve.c (resolve_function): Add name after test for pureness.
14
15 PR fortran/19546
16 * trans-expr.c (gfc_conv_variable): Detect reference to parent result,
17 store current_function_decl, replace with parent, whilst calls are
18 made to gfc_get_fake_result_decl, and restore afterwards. Signal this
19 to gfc_get_fake_result_decl with a new argument, parent_flag.
20 * trans-stmt.c (gfc_trans_return): gfc_get_fake_result_decl 2nd arg
21 is set to zero.
22 * trans.h: Add parent_flag to gfc_get_fake_result_decl prototype.
23 * trans-decl.c (gfc_get_fake_result_decl): On parent_flag, being set,
24 add decl to parent function. Replace refs to current_fake_result_decl
25 with refs to this_result_decl.
26 (gfc_generate_function_code): Null parent_fake_result_decl before the
27 translation of code for contained procedures. Set parent_flag to zero
28 in call to gfc_get_fake_result_decl.
29 * trans-intrinsic.c (gfc_conv_intrinsic_len): The same.
30
9202989a
SK
312006-03-05 Steven G. Kargl <kargls@comcast.net>
32
33 * simplify.c (gfc_simplify_verify): Fix return when SET=''.
34
5f20c93a 352006-03-05 Erik Edelmann <eedelman@gcc.gnu.org>
aa08038d
EE
36
37 PR fortran/16136
38 * symbol.c (conf_std): New macro.
39 (check_conflict): Use it to allow ALLOCATABLE dummy
40 arguments for F2003.
41 * trans-expr.c (gfc_conv_function_call): Pass the
42 address of the array descriptor when dummy argument is
43 ALLOCATABLE.
44 * interface.c (compare_allocatable): New function.
45 (compare_actual_formal): Use it.
46 * resolve.c (resolve_deallocate_expr,
47 resolve_allocate_expr): Check that INTENT(IN) variables
48 aren't (de)allocated.
49 * gfortran.texi (Fortran 2003 status): List ALLOCATABLE
50 dummy arguments as supported.
51
636ffc57
RS
522006-03-03 Roger Sayle <roger@eyesopen.com>
53
54 * dependency.c (gfc_check_element_vs_element): Revert last change.
55
12de6bc6
RS
562006-03-03 Roger Sayle <roger@eyesopen.com>
57
58 * dependency.c (gfc_check_element_vs_element): Consider two
59 unordered scalar subscripts as (potentially) equal.
60
0b8f2ce4
RS
612006-03-03 Roger Sayle <roger@eyesopen.com>
62
63 * dependency.c (gfc_check_dependency): Call gfc_dep_resolver to
64 check whether two array references have a dependency.
65 (gfc_check_element_vs_element): Assume lref and rref must be
66 REF_ARRAYs. If gfc_dep_compare_expr returns -2, assume these
67 references could potentially overlap.
68 (gfc_dep_resolver): Whitespace and comment tweaks. Assume a
69 dependency if the references have different depths. Rewrite
70 final term to clarrify we only have a dependency for overlaps.
71
5b725b8d
TK
722006-03-03 Thomas Koenig <Thomas.Koenig@online.de>
73
74 PR fortran/25031
75 * trans-array.h: Adjust gfc_array_allocate prototype.
76 * trans-array.c (gfc_array_allocate): Change type of
77 gfc_array_allocatate to bool. Function returns true if
78 it operates on an array. Change second argument to gfc_expr.
79 Find last reference in chain.
80 If the function operates on an allocatable array, emit call to
81 allocate_array() or allocate64_array().
82 * trans-stmt.c (gfc_trans_allocate): Code to follow to last
83 reference has been moved to gfc_array_allocate.
84 * trans.h: Add declaration for gfor_fndecl_allocate_array and
85 gfor_fndecl_allocate64_array.
86 (gfc_build_builtin_function_decls): Add gfor_fndecl_allocate_array
87 and gfor_fndecl_allocate64_array.
88
011daa76
RS
892006-03-01 Roger Sayle <roger@eyesopen.com>
90
91 * trans-stmt.c (generate_loop_for_temp_to_lhs): Add an additional
92 INVERT argument to invert the sense of the WHEREMASK argument.
93 Remove unneeded code to AND together a list of masks.
94 (generate_loop_for_rhs_to_temp): Likewise.
95 (gfc_trans_assign_need_temp): Likewise.
96 (gfc_trans_forall_1): Likewise.
97 (gfc_evaluate_where_mask): Likewise, add a new INVERT argument
98 to specify the sense of the MASK argument.
99 (gfc_trans_where_assign): Likewise.
100 (gfc_trans_where_2): Likewise. Restructure code that decides
101 whether we need to allocate zero, one or two temporary masks.
0b8f2ce4 102 If this is a top-level WHERE (i.e. the incoming MASK is NULL),
011daa76
RS
103 we only need to allocate at most one temporary mask, and can
104 invert it's sense to provide the complementary pending execution
105 mask. Only calculate the size of the required temporary arrays
106 if we need any.
107 (gfc_trans_where): Update call to gfc_trans_where_2.
108
61321991
PT
1092006-03-01 Paul Thomas <pault@gcc.gnu.org>
110
111 * iresolve.c (gfc_resolve_dot_product): Remove any difference in
112 treatment of logical types.
113 * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): New function.
114
115 PR fortran/26393
116 * trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols
117 must be referenced to include unreferenced symbols in an interface
118 body.
119
120 PR fortran/20938
121 * trans-array.c (gfc_conv_resolve_dependencies): Add call to
122 gfc_are_equivalenced_arrays.
123 * symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New
124 functions. (gfc_free_namespace): Call them.
125 * trans-common.c (copy_equiv_list_to_ns): New function.
126 (add_equivalences): Call it.
127 * gfortran.h: Add equiv_lists to gfc_namespace and define
128 gfc_equiv_list and gfc_equiv_info.
129 * dependency.c (gfc_are_equivalenced_arrays): New function.
130 (gfc_check_dependency): Call it.
131 * dependency.h: Prototype for gfc_are_equivalenced_arrays.
132
c10bc6e9
RS
1332006-03-01 Roger Sayle <roger@eyesopen.com>
134
135 * dependency.c (gfc_is_same_range): Compare the stride, lower and
136 upper bounds when testing array reference ranges for equality.
137 (gfc_check_dependency): Fix indentation whitespace.
138 (gfc_check_element_vs_element): Likewise.
139 (gfc_dep_resolver): Likewise.
140
8cd25827
TK
1412006-02-28 Thomas Koenig <Thomas.Koenig@online.de>
142
143 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc):
144 If the mask expression exists and has rank 0, enclose the
145 generated loop in an "if (mask)". Put the default
146 initialization into the else branch.
147
eaf618e3
TK
1482006-02-25 Thomas Koenig <Thomas.Koenig@online.de>
149
150 PR fortran/23092
151 * trans-intrinsic.c (gfc_conv_intrinsic_arith): If the
152 mask expression exists and has rank 0, enclose the generated
153 loop in an "if (mask)".
154 * (gfc_conv_intrinsic_minmaxloc): Likewise.
155
0f3162e3
PT
1562006-02-24 Paul Thomas <pault@gcc.gnu.org>
157
158 PR fortran/26409
159 * resolve.c (resolve_contained_functions, resolve_types,
160 gfc_resolve): Revert patch of 2006-02-19.
161
8a0b57b3
PT
1622006-02-24 Paul Thomas <pault@gcc.gnu.org>
163
164 PR fortran/24519
165 * dependency.c (gfc_is_same_range): Correct typo.
166 (gfc_check_section_vs_section): Call gfc_is_same_range.
167
168 PR fortran/25395
169 * trans-common.c (add_equivalences): Add a new flag that is set when
170 an equivalence is seen that prevents more from being reset until the
171 start of a new traversal of the list, thus ensuring completion of
172 all the equivalences.
173
10c5bc6c
EE
1742006-02-23 Erik Edelmann <eedelman@gcc.gnu.org>
175
176 * module.c (read_module): Remove redundant code lines.
177
9d29a5b7
RE
178