]>
Commit | Line | Data |
---|---|---|
25a27413 | 1 | 2014-05-17 Trevor Saunders <tsaunders@mozilla.com> |
2 | ||
3 | * f95-lang.c (pushlevel): Adjust. | |
4 | * trans-decl.c (gfc_allocate_lang_decl): Adjust. | |
5 | (gfc_find_module): Likewise. | |
6 | * trans-types.c (gfc_get_nodesc_array_type): Likewise. | |
7 | (gfc_get_array_type_bounds): Likewise. | |
8 | (gfc_nonrestricted_type): Likewise. | |
9 | * trans.h: Don't use variable_size gty attribute. | |
10 | ||
a8bd4d82 | 11 | 2014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr> |
12 | ||
13 | * check.c (gfc_check_fn_rc2008): move "argument" to the right | |
14 | place. | |
15 | ||
936318a7 | 16 | 2014-05-12 Tobias Burnus <burnus@net-b.de> |
17 | ||
18 | PR fortran/60127 | |
19 | * openmp.c (resolve_omp_do): Reject do concurrent loops. | |
20 | ||
f17aef51 | 21 | 2014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org> |
22 | ||
23 | PR fortran/60834 | |
24 | * frontend-passes.c (in_assoc_list): New variable. | |
25 | (optimize_namespace): Initialize in_assoc_list | |
26 | (combine_array_constructor): Don't try to combine | |
27 | assoc lists. | |
28 | (gfc_code_walker): Keep track of in_assoc_list. | |
29 | ||
15b28553 | 30 | 2014-05-11 Jakub Jelinek <jakub@redhat.com> |
31 | ||
32 | * gfortran.h (gfc_statement): Add ST_OMP_CANCEL, | |
33 | ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP, | |
34 | ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD, | |
35 | ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and | |
36 | ST_OMP_DECLARE_SIMD. | |
37 | (gfc_omp_namelist): New typedef. | |
38 | (gfc_get_omp_namelist): Define. | |
39 | (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR, | |
40 | OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds. | |
41 | (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums. | |
42 | (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *. | |
43 | Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and | |
44 | simdlen_expr fields. | |
45 | (gfc_omp_declare_simd): New typedef. | |
46 | (gfc_get_omp_declare_simd): Define. | |
47 | (gfc_namespace): Add omp_declare_simd field. | |
48 | (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT, | |
49 | EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and | |
50 | EXEC_OMP_PARALLEL_DO_SIMD. | |
51 | (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST | |
52 | and GFC_OMP_ATOMIC_SWAP. | |
53 | (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *. | |
54 | (gfc_free_omp_namelist, gfc_free_omp_declare_simd, | |
55 | gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New | |
56 | prototypes. | |
57 | * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype. | |
58 | * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd. | |
59 | * openmp.c (gfc_free_omp_clauses): Free safelen_expr and | |
60 | simdlen_expr. Use gfc_free_omp_namelist instead of | |
61 | gfc_free_namelist. | |
62 | (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New | |
63 | functions. | |
64 | (gfc_match_omp_variable_list): Add end_colon, headp and | |
65 | allow_sections arguments. Handle parsing of array sections. | |
66 | Use *omp_namelist* instead of *namelist* data structure and | |
67 | functions/macros. Allow termination at : character. | |
68 | (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH, | |
69 | OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND, | |
70 | OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define. | |
71 | (gfc_match_omp_clauses): Change first and needs_space variables | |
72 | into arguments with default values. Parse inbranch, notinbranch, | |
73 | proc_bind, safelen, simdlen, uniform, linear, aligned and | |
74 | depend clauses. | |
75 | (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND. | |
76 | (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define. | |
77 | (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND. | |
78 | (gfc_match_omp_do_simd): New function. | |
79 | (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist* | |
80 | data structure and functions/macros. | |
81 | (gfc_match_omp_simd, gfc_match_omp_declare_simd, | |
82 | gfc_match_omp_parallel_do_simd): New functions. | |
83 | (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap. | |
84 | (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind, | |
85 | gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New | |
86 | functions. | |
87 | (resolve_omp_clauses): Add where, omp_clauses and ns arguments. | |
88 | Use *omp_namelist* instead of *namelist* data structure and | |
89 | functions/macros. Resolve uniform, aligned, linear, depend, | |
90 | safelen and simdlen clauses. | |
91 | (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP} | |
92 | addition, recognize atomic swap. | |
93 | (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead | |
94 | of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as | |
95 | EXEC_OMP_PARALLEL_DO. | |
96 | (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist* | |
97 | data structure and functions/macros. | |
98 | (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD, | |
99 | EXEC_OMP_PARALLEL_DO_SIMD. | |
100 | (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD, | |
101 | EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust | |
102 | resolve_omp_clauses caller. | |
103 | (gfc_resolve_omp_declare_simd): New function. | |
104 | * parse.c (decode_omp_directive): Parse cancellation point, cancel, | |
105 | declare simd, end do simd, end simd, end parallel do simd, | |
106 | end taskgroup, parallel do simd, simd and taskgroup directives. | |
107 | (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT. | |
108 | (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD, | |
109 | ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD. | |
110 | (case_decl): Add ST_OMP_DECLARE_SIMD. | |
111 | (gfc_ascii_statement): Handle ST_OMP_CANCEL, | |
112 | ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP, | |
113 | ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD, | |
114 | ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and | |
115 | ST_OMP_DECLARE_SIMD. | |
116 | (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and | |
117 | ST_OMP_PARALLEL_DO_SIMD. | |
118 | (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions. | |
119 | (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and | |
120 | ST_OMP_PARALLEL_DO_SIMD. | |
121 | (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD, | |
122 | ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP. | |
123 | * trans-decl.c (gfc_get_extern_function_decl, | |
124 | gfc_create_function_decl): Call gfc_trans_omp_declare_simd if | |
125 | needed. | |
126 | * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD, | |
127 | EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk | |
128 | safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist | |
129 | of depend, aligned and linear clauses. | |
130 | * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD | |
131 | and EXEC_OMP_PARALLEL_DO_SIMD. | |
132 | (gfc_free_omp_namelist): New function. | |
133 | * dump-parse-tree.c (show_namelist): Removed. | |
134 | (show_omp_namelist): New function. | |
135 | (show_omp_node): Handle OpenMP 4.0 additions. | |
136 | (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT, | |
137 | EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and | |
138 | EXEC_OMP_TASKGROUP. | |
139 | * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point, | |
140 | gfc_match_omp_declare_simd, gfc_match_omp_do_simd, | |
141 | gfc_match_omp_parallel_do_simd, gfc_match_omp_simd, | |
142 | gfc_match_omp_taskgroup): New prototypes. | |
143 | * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd | |
144 | argument, handle it. Allow current_function_decl to be NULL. | |
145 | (gfc_trans_omp_variable_list): Add declare_simd argument, pass | |
146 | it through to gfc_trans_omp_variable and disregard whether | |
147 | sym is referenced if declare_simd is true. Work on gfc_omp_namelist | |
148 | instead of gfc_namelist. | |
149 | (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of | |
150 | gfc_namelist. Adjust gfc_trans_omp_variable caller. | |
151 | (gfc_trans_omp_clauses): Add declare_simd argument, pass it through | |
152 | to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist | |
153 | instead of gfc_namelist. Handle inbranch, notinbranch, safelen, | |
154 | simdlen, depend, uniform, linear, proc_bind and aligned clauses. | |
155 | Handle cancel kind. | |
156 | (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap, | |
157 | adjust for GFC_OMP_ATOMIC_* changes. | |
158 | (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New | |
159 | functions. | |
160 | (gfc_trans_omp_do): Add op argument, handle simd translation into | |
161 | generic. | |
162 | (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL, | |
163 | GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO, | |
164 | GFC_OMP_MASK_PARALLEL): New. | |
165 | (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions. | |
166 | (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses. | |
167 | (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New | |
168 | functions. | |
169 | (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL, | |
170 | EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, | |
171 | EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. | |
172 | Adjust gfc_trans_omp_do caller. | |
173 | (gfc_trans_omp_declare_simd): New function. | |
174 | * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL, | |
175 | EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, | |
176 | EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. | |
177 | For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of | |
178 | gfc_free_namelist. | |
179 | * module.c (omp_declare_simd_clauses): New variable. | |
180 | (mio_omp_declare_simd): New function. | |
181 | (mio_symbol): Call it. | |
182 | * trans.c (trans_code): Handle EXEC_OMP_CANCEL, | |
183 | EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, | |
184 | EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. | |
185 | * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD, | |
186 | EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. | |
187 | (resolve_code): Handle EXEC_OMP_CANCEL, | |
188 | EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD, | |
189 | EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP. | |
190 | (resolve_types): Call gfc_resolve_omp_declare_simd. | |
191 | ||
da82fa7c | 192 | 2014-05-11 Tobias Burnus <burnus@net-b.de> |
193 | ||
194 | * trans-intrinsic.c (gfc_build_builtin_function_decls): | |
195 | Change type of second argument to int. | |
196 | ||
cf767dd4 | 197 | 2014-05-09 Mike Stump <mikestump@comcast.net> |
198 | ||
199 | PR fortran/61109 | |
200 | * trans-array.c (gfc_conv_array_initializer): Fix wide-int | |
201 | conversion bug. | |
202 | ||
8879941c | 203 | 2014-05-08 Tobias Burnus <burnus@net-b.de> |
204 | ||
205 | * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET | |
206 | and GFC_ISYM_CAF_SEND. | |
207 | * intrinsic.c (add_functions): Add only internally | |
208 | accessible caf_get and caf_send functions. | |
209 | * resolve.c (add_caf_get_intrinsic, | |
210 | remove_caf_get_intrinsic): New functions. | |
211 | (resolve_variable): Resolve expression rank and | |
212 | prepare for add_caf_get_intrinsic call. | |
213 | (gfc_resolve_expr): For variables, remove rank | |
214 | resolution. | |
215 | (resolve_ordinary_assign): Prepare call to | |
216 | GFC_ISYM_CAF_SEND. | |
217 | (resolve_code): Avoid call to GFC_ISYM_CAF_GET for | |
218 | the LHS of an assignment. | |
219 | ||
40ed4fd4 | 220 | 2014-05-08 Tobias Burnus <burnus@net-b.de> |
221 | ||
222 | * trans-intrinsic.c (conv_co_minmaxsum): Change condition style. | |
223 | ||
79ed4a8e | 224 | 2014-05-08 Tobias Burnus <burnus@net-b.de> |
225 | ||
226 | * check.c (check_co_minmaxsum, gfc_check_co_minmax, | |
227 | gfc_check_co_sum): New. | |
228 | * error.c (gfc_notify_std): Update -std=f2008ts. | |
229 | * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX, | |
230 | GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM. | |
231 | * intrinsic.h (gfc_check_co_minmax, | |
232 | gfc_check_co_sum): Declare. | |
233 | * intrinsic.c (add_subroutines): Add co_min, co_max | |
234 | and co_sum. | |
235 | (gfc_check_intrinsic_standard): Update text for | |
236 | -std=f2008ts. | |
237 | * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document | |
238 | them. | |
239 | * invoke.texi (-std=f2008ts): Update wording. | |
240 | * trans.h (gfor_fndecl_co_max, | |
241 | gfor_fndecl_co_min, gfor_fndecl_co_sum): Define. | |
242 | * trans-decl.c (gfor_fndecl_co_max, | |
243 | gfor_fndecl_co_min, gfor_fndecl_co_sum): Define. | |
244 | (gfc_build_builtin_function_decls): Assign to it. | |
245 | * trans-intrinsic.c (conv_co_minmaxsum): New. | |
246 | (gfc_conv_intrinsic_subroutine): Call it. | |
247 | ||
960d5a55 | 248 | 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> |
249 | Mike Stump <mikestump@comcast.net> | |
250 | Richard Sandiford <rdsandiford@googlemail.com> | |
251 | ||
252 | * target-memory.c: Include wide-int.h. | |
253 | (gfc_interpret_logical): Use wide-int interfaces. | |
254 | * trans-array.c: Include wide-int.h. | |
255 | (gfc_conv_array_initializer): Use wide-int interfaces. | |
256 | * trans-const.c: Include wide-int.h. | |
257 | (gfc_conv_string_init): Use wide-int interfaces. | |
258 | (gfc_conv_mpz_to_tree): Likewise. | |
259 | (gfc_conv_tree_to_mpz): Likewise. | |
260 | * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p. | |
261 | * trans-expr.c: Include wide-int.h. | |
262 | (gfc_conv_cst_int_power): Use wide-int interfaces. | |
263 | (gfc_string_to_single_character): Likewise. | |
264 | (gfc_optimize_len_trim): Likewise. | |
265 | * trans-intrinsic.c: Include wide-int.h. | |
266 | (trans_this_image): Use wide-int interfaces. | |
267 | (gfc_conv_intrinsic_bound): Likewise. | |
268 | (conv_intrinsic_cobound): Likewise. | |
269 | * trans-types.c (gfc_init_types): Likewise. | |
270 | (gfc_get_array_type_bounds): Pass an integer of the correct type | |
271 | instead of using integer_one_node. | |
272 | ||
b4d49769 | 273 | 2014-04-30 Tobias Burnus <burnus@net-b.de> |
274 | ||
275 | * trans-decl.c (create_function_arglist): Add hidden coarray arguments | |
276 | also for polymorphic coarrays. | |
277 | * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments | |
278 | also for polymorphic coarrays. | |
279 | ||
4921ab8a | 280 | 2014-04-30 Tobias Burnus <burnus@net-b.de> |
281 | ||
282 | * resolve.c (resolve_function): Don't do | |
283 | assumed-size check for lcobound/ucobound. | |
284 | * trans-types.c (gfc_build_array_type): Only build an array | |
285 | descriptor with codimensions for allocatable coarrays. | |
286 | ||
3c3f24bc | 287 | 2014-04-30 Tobias Burnus <burnus@net-b.de> |
288 | ||
289 | * gfortran.h (gfc_init_coarray_decl): Remove. | |
290 | * parse.c (translate_all_program_units): Remove call to it. | |
291 | (gfc_parse_file): Update call. | |
292 | * trans.h (gfor_fndecl_caf_this_image, | |
293 | gfor_fndecl_caf_num_images): Add. | |
294 | (gfort_gvar_caf_num_images, | |
295 | gfort_gvar_caf_this_image): Remove. | |
296 | * trans-decl.c (gfor_fndecl_caf_this_image, | |
297 | gfor_fndecl_caf_num_images): Add. | |
298 | (gfort_gvar_caf_num_images, | |
299 | gfort_gvar_caf_this_image): Remove. | |
300 | (gfc_build_builtin_function_decls): Init new decl. | |
301 | (gfc_init_coarray_dec): Remove. | |
302 | (create_main_function): Change calls. | |
303 | * trans-intrinsic.c (trans_this_image, trans_image_index, | |
304 | conv_intrinsic_cobound): Generate call to new library function | |
305 | instead of to a static variable. | |
306 | * trans-stmt.c (gfc_trans_sync): Ditto. | |
307 | ||
3cc0ee47 | 308 | 2014-04-30 Tobias Burnus <burnus@net-b.de> |
309 | ||
310 | * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic | |
311 | and derived-type coarrays. | |
312 | ||
313 | 2014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org> | |
dd0b96f0 | 314 | |
315 | PR fortran/59604 | |
316 | PR fortran/58003 | |
317 | * gfortran.h (gfc_convert_mpz_to_signed): Add prototype. | |
318 | * arith.c (gfc_int2int): Convert number to signed if | |
319 | arithmetic overflow is not checked. | |
320 | * simplify.c (convert_mpz_to_unsigned): Only trigger assert for | |
321 | size if range checking is in force. | |
322 | (convert_mpz_to_signed): Make non-static, rename to | |
323 | (gfc_convert_mpz_to_signed). | |
324 | (simplify_dshift): Use gfc_convert_mpz_to_signed. | |
325 | (gfc_simplify_ibclr): Likewise. | |
326 | (gfc_simplify_ibits): Likewise. | |
327 | (gfc_simplify_ibset): Likewise. | |
328 | (simplify_shift): Likewise. | |
329 | (gfc_simplify_ishiftc): Likewise. | |
330 | (gfc_simplify_maskr): Likewise. | |
331 | (gfc_simplify_maskl): Likewise. | |
332 | ||
0992e56f | 333 | 2014-04-22 Tobias Burnus <burnus@net-b.de> |
334 | ||
335 | PR fortran/60881 | |
336 | * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling | |
337 | of scalar coarrays. | |
338 | ||
e2ec52ca | 339 | 2014-04-17 Jakub Jelinek <jakub@redhat.com> |
340 | ||
341 | * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE | |
342 | argument is enum machine_mode. | |
343 | ||
b447bac3 | 344 | 2014-04-13 Paul Thomas <pault@gcc.gnu.org> |
345 | ||
346 | PR fortran/58085 | |
347 | PR fortran/60717 | |
348 | * trans.h: Add 'use_offset' bitfield to gfc_se. | |
349 | * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset' | |
350 | as a trigger to unconditionally recalculate the offset for | |
351 | array slices and constant arrays. | |
352 | trans-expr.c (gfc_conv_intrinsic_to_class): Use it. | |
353 | trans-stmt.c (trans_associate_var): Ditto. | |
354 | (gfc_conv_procedure_call): Ditto. | |
355 | ||
baf14602 | 356 | 2014-04-11 Tobias Burnus <burnus@net-b.de> |
357 | ||
358 | PR fortran/58880 | |
359 | PR fortran/60495 | |
360 | * resolve.c (gfc_resolve_finalizers): Ensure that vtables | |
361 | and finalization wrappers are generated. | |
362 | ||
d1cc1356 | 363 | 2014-04-11 Janne Blomqvist <jb@gcc.gnu.org> |
364 | ||
365 | * intrinsic.texi (RANDOM_SEED): Improve example. | |
366 | ||
31c03a14 | 367 | 2014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de> |
368 | ||
369 | * class.c (gfc_build_class_symbol): Append "_t" to target class | |
370 | names to make the generated type names unique. | |
371 | ||
dcb4709c | 372 | 2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de> |
373 | ||
374 | PR fortran/60191 | |
375 | * trans-types.c (gfc_get_function_type): In case of recursion | |
376 | build a variadic function type with empty argument list instead of a | |
377 | stdarg-like function type with incomplete argument list. | |
378 | ||
6f4e5638 | 379 | 2014-04-04 Tobias Burnus <burnus@net-b.de> |
380 | ||
381 | * check.c (gfc_check_cmplx): Fix typo. | |
382 | ||
8665f3b2 | 383 | 2014-03-28 Mikael Morin <mikael@gcc.gnu.org> |
384 | Tobias Burnus <burnus@net-b.de> | |
385 | ||
eecfcba4 | 386 | PR fortran/60576 |
8665f3b2 | 387 | * trans-expr.c (gfc_conv_derived_to_class): Avoid |
388 | generation of out-of-bounds range expr. | |
389 | ||
ec9fd7b7 | 390 | 2014-03-28 Mikael Morin <mikael@gcc.gnu.org> |
391 | ||
392 | PR fortran/60677 | |
393 | * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument | |
394 | list buffer. | |
395 | ||
396 | 2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org> | |
9c1f3230 | 397 | |
398 | PR fortran/60522 | |
399 | * frontend-passes.c (cfe_code): Do not walk subtrees | |
400 | for WHERE. | |
401 | ||
efa70124 | 402 | 2014-03-27 Tobias Burnus <burnus@net-b.de> |
403 | ||
404 | PR fortran/58880 | |
405 | * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling | |
406 | of nonpointers. | |
407 | ||
bb9c2cbb | 408 | 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr> |
409 | ||
410 | PR fortran/34928 | |
411 | * fortran.texi: Document Volatile COMMON as not supported. | |
412 | ||
446bdf5f | 413 | 2014-03-22 Jakub Jelinek <jakub@redhat.com> |
414 | ||
415 | PR debug/60603 | |
416 | * cpp.c (gfc_cpp_init): Restore cb_change_file call to | |
417 | <built-in>. | |
418 | ||
e458f5c0 | 419 | 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
420 | ||
421 | PR fortran/60148 | |
422 | * gfortran.texi: Add description of namelist DELIM= behavior. | |
423 | ||
57cb78c6 | 424 | 2014-03-19 Tobias Burnus <burnus@net-b.> |
425 | ||
426 | PR fortran/60543 | |
427 | * io.c (check_io_constraints): Use gfc_unset_implicit_pure. | |
428 | * resolve.c (resolve_ordinary_assign): Ditto. | |
429 | ||
c77badf3 | 430 | 2014-03-19 Tobias Burnus <burnus@net-b.de> |
431 | ||
432 | PR fortran/60543 | |
433 | PR fortran/60283 | |
434 | * gfortran.h (gfc_unset_implicit_pure): New prototype. | |
435 | * resolve.c (gfc_unset_implicit_pure): New. | |
436 | (resolve_structure_cons, resolve_function, | |
437 | pure_subroutine): Use it. | |
438 | * decl.c (match_old_style_init, gfc_match_data, | |
439 | match_pointer_init, variable_decl): Ditto. | |
440 | * expr.c (gfc_check_pointer_assign): Ditto. | |
441 | * intrinsic.c (gfc_intrinsic_sub_interface): Ditto. | |
442 | * io.c (match_vtag, gfc_match_open, gfc_match_close, | |
443 | match_filepos, gfc_match_inquire, gfc_match_print, | |
444 | gfc_match_wait): Ditto. | |
445 | * match.c (gfc_match_critical, gfc_match_stopcode, | |
446 | lock_unlock_statement, sync_statement, gfc_match_allocate, | |
447 | gfc_match_deallocate): Ditto. | |
448 | * parse.c (decode_omp_directive): Ditto. | |
449 | * symbol.c (gfc_add_save): Ditto. | |
450 | ||
c25834c9 | 451 | 2014-03-18 Janus Weil <janus@gcc.gnu.org> |
452 | ||
453 | PR fortran/55207 | |
454 | PR fortran/60549 | |
455 | * decl.c (match_attr_spec): Revert r208590. | |
456 | ||
c83059be | 457 | 2014-03-18 Jakub Jelinek <jakub@redhat.com> |
458 | ||
459 | PR ipa/58721 | |
460 | * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect | |
461 | if !optimize. | |
462 | ||
463 | 2014-03-18 Tobias Burnus <burnus@net-b.de> | |
464 | ||
465 | PR ipa/58721 | |
466 | * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument. | |
467 | (gfc_trans_io_runtime_check): Remove. | |
468 | * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat | |
469 | as argument, add predictor to block. | |
470 | (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos, | |
471 | gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls. | |
472 | * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument. | |
473 | (gfc_trans_runtime_check, gfc_allocate_using_malloc, | |
474 | gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly | |
475 | branch predictor. | |
476 | * trans-expr.c (gfc_conv_procedure_call): Ditto. | |
477 | * trans-stmt.c (gfc_trans_allocate): Ditto. | |
478 | * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto. | |
479 | ||
47e80b17 | 480 | 2014-03-15 Janus Weil <janus@gcc.gnu.org> |
481 | ||
482 | PR fortran/55207 | |
483 | * decl.c (match_attr_spec): Variables in the main program implicitly | |
484 | get the SAVE attribute in Fortran 2008. | |
485 | ||
c99239d3 | 486 | 2014-03-14 Mikael Morin <mikael@gcc.gnu.org> |
487 | ||
488 | PR fortran/60392 | |
489 | * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor | |
490 | if it has transposed dimensions. | |
491 | ||
c7a63538 | 492 | 2014-03-08 Tobias Burnus <burnus@net-b.de> |
493 | ||
494 | PR fortran/60447 | |
495 | * f95-lang.c (gfc_init): Return false when only | |
496 | preprocessing. | |
497 | * options.c (gfc_post_options): Ditto. | |
498 | ||
023e1239 | 499 | 2014-03-08 Tobias Burnus <burnus@net-b.de> |
500 | ||
501 | * gfortran.texi (Fortran 2003 Status): Mention finalization, | |
502 | deferred-length character support and input rounding. | |
503 | (Fortran 2008 Status): Mention that at termination | |
504 | signalling exceptions are shown. | |
505 | ||
13d7216c | 506 | 2014-03-06 Paul Thomas <pault@gcc.gnu.org> |
507 | Janus Weil <janus@gcc.gnu.org> | |
508 | ||
509 | PR fortran/51976 | |
510 | * gfortran.h (symbol_attribute): Add deferred_parameter attribute. | |
511 | * primary.c (build_actual_constructor): It is not an error if | |
512 | a missing component has the deferred_parameter attribute; | |
513 | equally, if one is given a value, it is an error. | |
514 | * resolve.c (resolve_fl_derived0): Remove error for deferred | |
515 | character length components. Add the hidden string length | |
516 | field to the structure. Give it the deferred_parameter | |
517 | attribute. | |
518 | * trans-array.c (duplicate_allocatable): Add a strlen field | |
519 | which is used as the element size if it is non-null. | |
520 | (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a | |
521 | NULL to the new argument in duplicate_allocatable. | |
522 | (structure_alloc_comps): Set the hidden string length as | |
523 | appropriate. Use it in calls to duplicate_allocatable. | |
524 | (gfc_alloc_allocatable_for_assignment): When a deferred length | |
525 | backend declaration is variable, use that; otherwise use the | |
526 | string length from the expression evaluation. | |
527 | * trans-expr.c (gfc_conv_component_ref): If this is a deferred | |
528 | character length component, the string length should have the | |
529 | value of the hidden string length field. | |
530 | (gfc_trans_subcomponent_assign): Set the hidden string length | |
531 | field for deferred character length components. Allocate the | |
532 | necessary memory for the string. | |
533 | (alloc_scalar_allocatable_for_assignment): Same change as in | |
534 | gfc_alloc_allocatable_for_assignment above. | |
535 | * trans-stmt.c (gfc_trans_allocate): Likewise. | |
536 | * trans-intrinsic (size_of_string_in_bytes): Make non-static. | |
537 | * trans-types.c (gfc_get_derived_type): Set the tree type for | |
538 | a deferred character length component. | |
539 | * trans.c (gfc_deferred_strlen): New function. | |
540 | * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes. | |
541 | ||
5230e0eb | 542 | 2014-03-01 Mikael Morin <mikael@gcc.gnu.org> |
543 | ||
544 | PR fortran/60341 | |
545 | * frontend-passes.c (optimize_comparison): Guard two union accesses | |
546 | with the corresponding tag checks. | |
547 | ||
18fe23ca | 548 | 2014-02-28 Janus Weil <janus@gcc.gnu.org> |
549 | ||
550 | PR fortran/60359 | |
551 | * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy | |
552 | procedure for characters. | |
553 | ||
c64dd30b | 554 | 2014-02-21 Janus Weil <janus@gcc.gnu.org> |
555 | ||
556 | PR fortran/60302 | |
557 | * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size' | |
558 | is successful. | |
559 | ||
e8393d49 | 560 | 2014-02-21 Janus Weil <janus@gcc.gnu.org> |
561 | ||
562 | PR fortran/60234 | |
563 | * gfortran.h (gfc_build_class_symbol): Removed argument. | |
564 | * class.c (gfc_add_component_ref): Fix up missing vtype if necessary. | |
565 | (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always | |
566 | delayed now, except for unlimited polymorphics. | |
567 | (comp_is_finalizable): Procedure pointer components are not finalizable. | |
568 | * decl. (build_sym, build_struct, attr_decl1): Removed argument of | |
569 | 'gfc_build_class_symbol'. | |
570 | * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp): | |
571 | Ditto. | |
572 | * symbol.c (gfc_set_default_type): Ditto. | |
573 | ||
70782c79 | 574 | 2014-02-19 Janus Weil <janus@gcc.gnu.org> |
575 | ||
576 | PR fortran/60232 | |
577 | * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful | |
578 | functions, which are used as procedure pointer target. | |
579 | ||
77d080ca | 580 | 2014-02-18 Tobias Burnus <burnus@net-b.de> |
581 | ||
582 | PR fortran/49397 | |
583 | * expr.c (gfc_check_pointer_assign): Add check for | |
584 | F2008Cor2, C729. | |
585 | * trans-decl.c (gfc_get_symbol_decl): Correctly generate external | |
586 | decl in a corner case. | |
587 | ||
2ab6a21d | 588 | 2014-02-18 Janus Weil <janus@gcc.gnu.org> |
589 | ||
590 | PR fortran/60231 | |
591 | * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy | |
592 | arguments to prevent ICE. | |
593 | ||
41201fa1 | 594 | 2014-02-17 Janus Weil <janus@gcc.gnu.org> |
595 | ||
596 | PR fortran/55907 | |
597 | * resolve.c (build_default_init_expr): Don't initialize character | |
598 | variable if -fno-automatic is given. | |
599 | ||
5ac6468c | 600 | 2014-02-15 Mikael Morin <mikael@gcc.gnu.org> |
601 | ||
602 | PR fortran/59599 | |
603 | * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the | |
604 | number of arguments. | |
605 | ||
a1f1e248 | 606 | 2014-02-11 Jakub Jelinek <jakub@redhat.com> |
607 | ||
608 | PR fortran/52370 | |
609 | * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING | |
610 | on decl if sym->attr.optional. | |
611 | ||
b664a6ed | 612 | 2014-02-09 Paul Thomas <pault@gcc.gnu.org> |
613 | ||
614 | PR fortran/57522 | |
615 | * resolve.c (resolve_assoc_var): Set the subref_array_pointer | |
616 | attribute for the 'associate-name' if necessary. | |
617 | * trans-stmt.c (trans_associate_var): If the 'associate-name' | |
618 | is a subref_array_pointer, assign the element size of the | |
619 | associate variable to 'span'. | |
620 | ||
032f05c9 | 621 | 2014-02-09 Paul Thomas <pault@gcc.gnu.org> |
622 | ||
623 | PR fortran/59026 | |
624 | * trans-expr.c (gfc_conv_procedure_call): Pass the value of the | |
625 | actual argument to a formal argument with the value attribute | |
626 | in an elemental procedure. | |
627 | ||
8e0d05f4 | 628 | 2014-02-08 Janus Weil <janus@gcc.gnu.org> |
629 | Mikael Morin <mikael.morin@gcc.gnu.org> | |
630 | ||
631 | PR fortran/58470 | |
632 | * class.c (generate_finalization_wrapper): Assert that proc_tree has | |
633 | been set in gfc_resolve_finalizers. | |
634 | * resolve.c (resolve_fl_derived0): Remove unnecessary call to | |
635 | gfc_is_finalizable. | |
636 | ||
b0b557ae | 637 | 2014-02-07 Benno Schulenberg <bensberg@justemail.net> |
638 | ||
639 | PR translation/52289 | |
640 | * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word | |
641 | in an error message. | |
642 | ||
42412a94 | 643 | 2014-02-02 Mikael Morin <mikael@gcc.gnu.org> |
644 | ||
645 | PR fortran/57033 | |
646 | * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer | |
647 | dereference. | |
648 | ||
e6b90557 | 649 | 2014-02-01 Paul Thomas <pault@gcc.gnu.org> |
650 | ||
651 | PR fortran/59906 | |
652 | * trans-stmt.c (gfc_add_loop_ss_code): In the case of character | |
653 | SS_REFERENCE, use gfc_conv_string_parameter to ensure that a | |
654 | pointer to the string is stored. | |
655 | * trans-expr.c (gfc_conv_expr_reference): Likewise, use | |
656 | gfc_conv_string_parameter to ensure that a pointer to is passed | |
657 | to the elemental function. | |
658 | ||
85596a5e | 659 | 2014-01-28 Paul Thomas <pault@gcc.gnu.org> |
660 | ||
661 | PR fortran/59414 | |
662 | * trans-stmt.c (gfc_trans_allocate): Before the pointer | |
663 | assignment to transfer the source _vptr to a class allocate | |
664 | expression, the final class reference should be exposed. The | |
665 | tail that includes the _data and array references is stored. | |
666 | This reduced expression is transferred to 'lhs' and the _vptr | |
667 | added. Then the tail is restored to the allocate expression. | |
668 | ||
f6ae918d | 669 | 2014-01-26 Mikael Morin <mikael@gcc.gnu.org> |
670 | ||
671 | PR fortran/58007 | |
672 | * module.c (read_module): Assert for component name correctness. | |
673 | ||
2c658c2c | 674 | 2014-01-18 Mikael Morin <mikael@gcc.gnu.org> |
675 | ||
676 | PR fortran/58007 | |
677 | * module.c (MOD_VERSION): Bump. | |
678 | (fp2, find_pointer2): Remove. | |
679 | (mio_component_ref): Don't forcedfully set the containing derived type | |
680 | symbol for loading. Remove unused argument. | |
681 | (mio_ref): Update caller | |
682 | (mio_symbol): Dump component list earlier. | |
683 | (skip_list): New argument nest_level. Initialize level with the new | |
684 | argument. | |
685 | (read_module): Add forced pointer components association for derived | |
686 | type symbols. | |
687 | ||
a1e76cd9 | 688 | 2014-01-12 Janus Weil <janus@gcc.gnu.org> |
689 | ||
690 | PR fortran/58026 | |
691 | * decl.c (gfc_match_data_decl): Improve error recovery. | |
692 | ||
ca5cd38f | 693 | 2014-01-09 Tobias Burnus <burnus@net-b.de> |
694 | ||
695 | * cpp.c (gfc_cpp_handle_option): Add missing break. | |
696 | * trans-io.c (transfer_expr): Silence unused value warning. | |
697 | ||
a52fbc53 | 698 | 2014-01-08 Janus Weil <janus@gcc.gnu.org> |
699 | ||
700 | PR fortran/58182 | |
701 | * resolve.c (gfc_verify_binding_labels): Modify order of checks. | |
702 | ||
195a3a36 | 703 | 2014-01-06 Janus Weil <janus@gcc.gnu.org> |
704 | ||
705 | PR fortran/59589 | |
706 | * class.c (comp_is_finalizable): New function to dermine if a given | |
707 | component is finalizable. | |
708 | (finalize_component, generate_finalization_wrapper): Use it. | |
709 | ||
cf3654f0 | 710 | 2014-01-06 Janus Weil <janus@gcc.gnu.org> |
711 | ||
712 | PR fortran/59023 | |
713 | PR fortran/59662 | |
714 | * resolve.c (resolve_global_procedure): Don't apply to c-binding | |
715 | procedures. | |
716 | (gfc_verify_binding_labels): Remove duplicate line. | |
717 | ||
bd8f578b | 718 | 2014-01-04 Janus Weil <janus@gcc.gnu.org> |
719 | ||
720 | PR fortran/59547 | |
721 | * class.c (add_proc_comp): Copy pure attribute. | |
722 | ||
3aea1f79 | 723 | 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com> |
724 | ||
725 | Update copyright years | |
726 | ||
d67510b9 | 727 | 2014-01-02 Tobias Burnus <burnus@net-b.de> |
728 | ||
729 | * gfortranspec.c (lang_specific_driver): Update copyright notice | |
730 | dates. | |
731 | * gfc-internals.texi: Bump @copying's copyright year. | |
732 | * gfortran.texi: Ditto. | |
733 | * intrinsic.texi: Ditto. | |
734 | * invoke.texi: Ditto. | |
735 | ||
839ddc8e | 736 | 2014-01-02 Janus Weil <janus@gcc.gnu.org> |
92b18bc0 | 737 | |
839ddc8e | 738 | PR fortran/59654 |
739 | * resolve.c (resolve_typebound_procedures): No need to create the vtab | |
740 | here. | |
7dfbd804 | 741 | \f |
839ddc8e | 742 | Copyright (C) 2014 Free Software Foundation, Inc. |
7dfbd804 | 743 | |
744 | Copying and distribution of this file, with or without modification, | |
745 | are permitted in any medium without royalty provided the copyright | |
746 | notice and this notice are preserved. |