]>
Commit | Line | Data |
---|---|---|
42a0e16c PT |
1 | 2005-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 |
10 | 2006-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 |
31 | 2006-03-05 Steven G. Kargl <kargls@comcast.net> |
32 | ||
33 | * simplify.c (gfc_simplify_verify): Fix return when SET=''. | |
34 | ||
5f20c93a | 35 | 2006-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 |
52 | 2006-03-03 Roger Sayle <roger@eyesopen.com> |
53 | ||
54 | * dependency.c (gfc_check_element_vs_element): Revert last change. | |
55 | ||
12de6bc6 RS |
56 | 2006-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 |
61 | 2006-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 |
72 | 2006-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 |
89 | 2006-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 |
109 | 2006-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 |
133 | 2006-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 |
141 | 2006-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 |
148 | 2006-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 |
156 | 2006-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 |
162 | 2006-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 |
174 | 2006-02-23 Erik Edelmann <eedelman@gcc.gnu.org> |
175 | ||
176 | * module.c (read_module): Remove redundant code lines. | |
177 | ||
9d29a5b7 RE |
178 |