OSDN Git Service

2010-08-27 Janus Weil <janus@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
2
3         PR fortran/45420
4         * match.c (select_type_set_tmp): Add the possibility to reset the
5         temporary to NULL.
6         (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
7
8 2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
9
10         PR fortran/45159
11         * dependency.c (check_section_vs_section):  Single test for
12         identical strides which takes into account that only one
13         of the strides may be NULL.
14
15 2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
16
17         PR fortran/43217
18         * primary.c (match_hollerith_constant): Calculate padding needed to
19         fill default integer and allocate string for that size.  Set pad bytes
20         to ' '.
21         * gfortran.h: Add hollerith pad value to type spec union.
22         * data.c (create_character_initializer): Fix spelling of function name.
23         Use hollerith pad value to calculate length.
24         * arith.c (hollerith2representation); Use hollerith pad value to
25         calculate length.
26
27 2010-08-26  Daniel Kraft  <d@domob.eu>
28
29         PR fortran/38936
30         PR fortran/44047
31         PR fortran/45384
32         * gfortran.h (struct gfc_association_list): New flag `dangling'.
33         (gfc_build_block_ns): Declared here...
34         * parse.h (gfc_build_block_ns): ...instead of here.
35         * trans.h (gfc_process_block_locals): Expect additionally the
36         gfc_association_list of BLOCK (if present).
37         * match.c (select_type_set_tmp): Create sym->assoc for temporary.
38         * resolve.c (resolve_variable): Only check for invalid *array*
39         references on associate-names.
40         (resolve_assoc_var): New method with code previously in resolve_symbol.
41         (resolve_select_type): Use association to give the selector and
42         temporaries their values instead of ordinary assignment.
43         (resolve_fl_var_and_proc): Allow CLASS associate-names.
44         (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
45         * trans-stmt.c (gfc_trans_block_construct): Pass association-list
46         to `gfc_process_block_locals' to match new interface.
47         * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
48         here automatically.
49         (gfc_process_block_locals): Defer them rather here when linked to
50         from the BLOCK's association list.
51
52 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
53
54         * trans-decl.c (gfc_build_intrinsic_function_decls): Set
55         TREE_NOTHROW on fndecls that can't throw.  Set
56         TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
57         (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
58         gfor_fndecl_associated.
59
60 2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>
61
62         PR fortran/45380
63         * frontend-passes.c (optimize_equality): Don't optimize array equality
64
65 2010-08-23  Janus Weil  <janus@gcc.gnu.org>
66
67         PR fortran/45366
68         * resolve.c (resolve_procedure_interface): New function split off from
69         'resolve_symbol'.
70         (resolve_formal_arglist): Call it here ...
71         (resolve_symbol): ... and here.
72
73 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
74
75         * Make-lang.in (gfortranspec.o): Update dependencies.
76         * gfortranspec.c: Include coretypes.h before gcc.h.  Include
77         opts.h.
78         (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
79         (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
80         (g77_xargc): Make unsigned.
81         (g77_xargv): Change to g77_x_decoded_options.
82         (g77_newargc): Make unsigned.
83         (g77_newargv): Change to g77_new_decoded_options.
84         (strings_same, options_same): New.
85         (append_arg): Use cl_decoded_option structures.
86         (append_option): New.
87         (add_arg_libgfortran): New.
88         (lang_specific_driver): Use cl_decoded_option structures.
89
90 2010-08-21  Janus Weil  <janus@gcc.gnu.org>
91
92         PR fortran/45271
93         PR fortran/45290
94         * class.c (add_proc_comp): Add static initializer for PPCs.
95         (add_procs_to_declared_vtab): Modified comment.
96         * module.c (mio_component): Add argument 'vtype'. Don't read/write the
97         initializer if the component is part of a vtype.
98         (mio_component_list): Add argument 'vtype', pass it on to
99         'mio_component'.
100         (mio_symbol): Modified call to 'mio_component_list'.
101         * trans.h (gfc_conv_initializer): Modified prototype.
102         (gfc_trans_assign_vtab_procs): Removed.
103         * trans-common.c (create_common): Modified call to
104         'gfc_conv_initializer'.
105         * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
106         gfc_emit_parameter_debug_info): Modified call to
107         'gfc_conv_initializer'.
108         (build_function_decl): Remove assertion.
109         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
110         Removed call to 'gfc_trans_assign_vtab_procs'.
111         (gfc_conv_initializer): Add argument 'procptr'.
112         (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
113         (gfc_trans_assign_vtab_procs): Removed.
114         * trans-stmt.c (gfc_trans_allocate): Removed call to
115         'gfc_trans_assign_vtab_procs'.
116
117 2010-08-21  Tobias Burnus  <burnus@net-b.de>
118
119         PR fortran/36158
120         PR fortran/33197
121         * intrinsic.c (add_sym): Init value attribute.
122         (set_attr_value): New function.
123         (add_functions) Use it and add JN/YN resolvers.
124         * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
125         * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
126         * gfortran.h (gfc_intrinsic_arg): Add value attribute.
127         * iresolve.c (gfc_resolve_bessel_n2): New function.
128         * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
129         formal arg list.
130         (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
131         Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
132         * simplify.c (): For YN set to -INF if previous values
133         was -INF.
134         * trans-expr.c (gfc_conv_procedure_call): Don't crash
135         if sym->as is NULL.
136         * iresolve.c (gfc_resolve_extends_type_of): Set the
137         type of the dummy argument to the one of the actual.
138
139 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
140
141         * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
142
143 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
144
145         * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
146         comment, not -lg2c.
147
148 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
149
150         * trans-openmp.c: Use FOR_EACH_VEC_ELT.
151
152 2010-08-19  Daniel Kraft  <d@domob.eu>
153
154         PR fortran/29785
155         PR fortran/45016
156         * trans.h (struct gfc_se): New flag `byref_noassign'.
157         * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
158         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
159         * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
160         and check for compile-time errors with those.
161         * trans-decl.c (trans_associate_var): Use new routine
162         `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
163         * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
164         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
165         (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
166         (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
167         * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
168         rank remapping for assignment.
169
170 2010-08-19  Tobias Burnus  <burnus@net-b.de>
171
172         * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
173         * * simplify.c (gfc_simplify_bessel_yn): Change recursive
174         into recurrence.
175
176 2010-08-19  Tobias Burnus  <burnus@net-b.de>
177
178         PR fortran/36158
179         PR fortran/33197
180         * check.c (gfc_check_bessel_n2): New function.
181         * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
182         * intrinsic.c (add_functions): Add transformational version
183         of the Bessel_jn/yn intrinsics.
184         * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
185         gfc_simplify_bessel_yn2): New prototypes.
186         * intrinsic.texi (Bessel_jn, Bessel_yn): Document
187         transformational variant.
188         * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
189         Check for negative order.
190         (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
191         gfc_simplify_bessel_yn2): New functions.
192
193 2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
194
195         PR fortran/41859
196         * resolve.c (resolve_transfer): Traverse operands and set expression
197         to be checked to a non EXPR_OP type.
198
199 2010-08-19  Janus Weil  <janus@gcc.gnu.org>
200
201         PR fortran/45290
202         * gfortran.h (gfc_add_save): Modified prototype.
203         * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
204         (match_pointer_init): New function to match F08 pointer initialization.
205         (variable_decl,match_procedure_decl,match_ppc_decl): Use
206         'match_pointer_init'.
207         (match_attr_spec): Module variables are implicitly SAVE.
208         (gfc_match_save): Modified call to 'gfc_add_save'.
209         * expr.c (gfc_check_assign_symbol): Extra checks for pointer
210         initialization.
211         * primary.c (gfc_variable_attr): Handle SAVE attribute.
212         * resolve.c (resolve_structure_cons): Add new argument and do pointer
213         initialization checks.
214         (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
215         (resolve_values): Call 'resolve_structure_cons' directly with init arg.
216         (resolve_fl_variable): Handle SAVE_IMPLICIT.
217         * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
218         SAVE_IMPLICIT.
219         * trans-decl.c (gfc_create_module_variable): Module variables with
220         TARGET can already exist.
221         * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
222         (gfc_conv_initializer): Implement non-NULL pointer
223         initialization.
224
225 2010-08-18  Tobias Burnus  <burnus@net-b.de>
226
227         PR fortran/45295
228         * intrinsic.texi (selected_char_kind): Document ISO_10646
229         support.
230
231 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
232
233         PR fortran/45304
234         * trans-decl.c (build_library_function_decl_1): Chain on
235         void_list_node instead of creating a new TREE_LIST.
236         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
237         * trans-types.c (gfc_get_function_type): Likewise.  Set
238         typelist to void_list_node for the main program.
239
240 2010-08-17  Daniel Kraft  <d@domob.eu>
241
242         PR fortran/38936
243         * gfortran.h (struct gfc_association_list): New member `where'.
244         (gfc_is_associate_pointer) New method.
245         * match.c (gfc_match_associate): Remember locus for each associate
246         name matched and do not try to set variable flag.
247         * parse.c (parse_associate): Use remembered locus for symbols.
248         * primary.c (match_variable): Instead of variable-flag check for
249         associate names set it for all such names used.
250         * symbol.c (gfc_is_associate_pointer): New method.
251         * resolve.c (resolve_block_construct): Don't generate assignments
252         to give associate-names their values.
253         (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
254         (resolve_symbol): Set some more attributes for associate variables,
255         set variable flag here and check it and don't try to build an
256         explicitely shaped array-spec for array associate variables.
257         * trans-expr.c (gfc_conv_variable): Dereference in case of association
258         to scalar variable.
259         * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
260         (gfc_sym_type): Return pointer type for association to scalar vars.
261         * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
262         (trans_associate_var): New method.
263         (gfc_trans_deferred_vars): Handle association symbols.
264
265 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
266
267         * lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
268         RejectDriver.
269         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
270         RejectDriver.
271         * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
272         OPT_MDX and OPT_MMDX.
273
274 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
275
276         * lang.opt (MDX, MMDX): Mark RejectDriver.
277
278 2010-08-15  Janus Weil  <janus@gcc.gnu.org>
279
280         * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
281         vtabs for generics any more).
282
283 2010-08-15  Daniel Kraft  <d@domob.eu>
284
285         PR fortran/38936
286         * gfortran.h (gfc_find_proc_namespace): New method.
287         * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
288         around with namespace.
289         * symbol.c (gfc_find_proc_namespace): New method.
290         * trans-decl.c (gfc_build_qualified_array): Use it for correct
291         value of nest.
292         * primary.c (gfc_match_varspec): Handle associate-names as arrays.
293         * parse.c (parse_associate): Removed assignment-generation here...
294         * resolve.c (resolve_block_construct): ...and added it here.
295         (resolve_variable): Handle names that are arrays but were not parsed
296         as such because of association.
297         (resolve_code): Fix BLOCK resolution.
298         (resolve_symbol): Generate array-spec for associate-names.
299
300 2010-08-15  Tobias Burnus  <burnus@net-b.de>
301
302         PR fortran/45211
303         * decl.c (verify_c_interop_param): Remove superfluous space (" ").
304         (verify_c_interop): Handle unresolved DT with bind(C).
305
306 2010-08-15  Tobias Burnus  <burnus@net-b.de>
307
308         * trans-expr.c (gfc_conv_expr_present): Regard nullified
309         pointer arrays as absent.
310         (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
311         dummys as absent argument.
312         * interface.c (compare_actual_formal,compare_parameter):
313         Ditto.
314
315 2010-08-15  Tobias Burnus  <burnus@net-b.de>
316
317         * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
318         dummies with intent(in).
319
320 2010-08-15  Daniel Kraft  <d@domob.eu>
321
322         PR fortran/45197
323         * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
324         routines not IMPURE also as PURE.
325         * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
326         `NO_CLASS' in `CLASS_IMPURE'.
327         (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
328         (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
329         (add_functions): Ditto.
330         (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
331         * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
332         (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
333         are not ALLOCATABLE and have their INTENT specified.
334
335 2010-08-13  Daniel Kraft  <d@domob.eu>
336
337         * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
338         * array.c (gfc_match_array_spec): Match implied-shape specification and
339         handle AS_IMPLIED_SHAPE correctly otherwise.
340         * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
341         (variable_decl): Some checks for implied-shape declaration.
342         * resolve.c (resolve_symbol): Assert that array-spec is no longer
343         AS_IMPLIED_SHAPE in any case.
344
345 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
346
347         * lang.opt (MD, MMD): Change to MDX and MMDX.
348         * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
349
350 2010-08-11  Janus Weil  <janus@gcc.gnu.org>
351
352         PR fortran/44595
353         * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
354         'gfc_intrinsic_arg'.
355         (check_arglist,check_specific): Add reference to 'name' field.
356         (init_arglist): Remove reference to 'name' field.
357         * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
358         * check.c (variable_check): Reverse order of checks. Respect intent of
359         formal arg.
360         (int_or_proc_check): New function.
361         (coarray_check): New function.
362         (allocatable_check): New function.
363         (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
364         (gfc_check_complex): Use 'int_or_real_check'.
365         (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
366         gfc_check_ucobound): Use 'coarray_check'.
367         (gfc_check_pack): Use 'real_or_complex_check'.
368         (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
369         'int_or_proc_check'.
370         (scalar_check,type_check,numeric_check,int_or_real_check,
371         real_or_complex_check,kind_check,double_check,logical_array_check,
372         array_check,same_type_check,rank_check,nonoptional_check,
373         kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
374         gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
375         gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
376         gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
377         gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
378         gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
379         gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
380         to 'name' field.
381
382 2010-08-10  Daniel Kraft  <d@domob.eu>
383
384         * gfortran.texi (Interoperability with C): Fix ordering in menu
385         and add new subsection about pointers.
386         (Interoperable Subroutines and Functions): Split off the pointer part.
387         (working with Pointers): New subsection with extended discussion
388         of pointers (especially procedure pointers).
389
390 2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
391
392         PR fortran/44235
393         * array.c (gfc_ref_dimen_size):  Add end argument.
394         If end is non-NULL, calculate it.
395         (ref_size):  Adjust call to gfc_ref_dimen_size.
396         (gfc_array_dimen_size):  Likewise.
397         (gfc_array_res_shape):  Likewise.
398         * gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
399         * resolve.c (resolve_array_ref):  For stride not equal to -1,
400         fill in the lowest possible end.
401
402 2010-08-09  Janus Weil  <janus@gcc.gnu.org>
403
404         * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
405
406 2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>
407
408         * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
409         alloca.
410         (check_some_aliasing): Likewise.
411         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
412         (gfc_conv_intrinsic_int): Likewise.
413         (gfc_conv_intrinsic_lib_function): Likewise.
414         (gfc_conv_intrinsic_cmplx): Likewise.
415         (gfc_conv_intrinsic_ctime): Likewise.
416         (gfc_conv_intrinsic_fdate): Likewise.
417         (gfc_conv_intrinsic_ttynam): Likewise.
418         (gfc_conv_intrinsic_minmax): Likewise.
419         (gfc_conv_intrinsic_minmax_char): Likewise.
420         (gfc_conv_intrinsic_ishftc): Likewise.
421         (gfc_conv_intrinsic_index_scan_verify): Likewise.
422         (gfc_conv_intrinsic_merge): Likewise.
423         (gfc_conv_intrinsic_trim): Likewise.
424         * trans.c (gfc_trans_runtime_error_vararg): Likewise.
425
426 2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
427
428         PR fortran/45159
429         * dependency.c (check_section_vs_section):  Handle cases where
430         the start expression coincides with the lower or upper
431         bound of the array.
432
433 2010-08-04  Janus Weil  <janus@gcc.gnu.org>
434
435         PR fortran/42207
436         PR fortran/44064
437         PR fortran/44065
438         * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
439         container types. Do not artificially increase refs. Commit symbols one
440         by one.
441         * interface.c (compare_parameter): Make sure vtabs are present before
442         generating module variables.
443         * resolve.c (resolve_allocate_expr): Ditto.
444
445 2010-08-04  Tobias Burnus  <burnus@net-b.de>
446
447         PR fortran/45183
448         PR fortran/44857
449         * resolve.c (resolve_structure_cons): Fix
450         freeing of charlen.
451
452 2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
453
454         PR fortran/42051
455         PR fortran/44064
456         * symbol.c (changed_syms): Made static again.
457         (gfc_symbol_state): Don't conditionalize on GFC_DEBUG. 
458         Changed conditional internal error into assert.
459         Rename function to ...
460         (gfc_enforce_clean_symbol_state): ... this.
461         * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state): 
462         Rename the former to the latter.
463         * parse.c (decode_statement, decode_omp_directive,
464         decode_gcc_attribute): Update callers accordingly. Don't conditionalize
465         on GFC_DEBUG.
466         (changed_syms): Remove declaration.
467         (next_statement): Use gfc_enforce_clean_symbol_state.
468
469 2010-08-04  Tobias Burnus  <burnus@net-b.de>
470
471         PR fortran/44857
472         * resolve.c (resolve_structure_cons): Fix handling of
473         initialization structure constructors with character
474         elements of the wrong length.
475         * array.c (gfc_check_iter_variable): Add NULL check.
476         (gfc_resolve_character_array_constructor): Also truncate
477         character length.
478
479 2010-08-04  Tobias Burnus  <burnus@net-b.de>
480
481         * trans-io.c (gfc_build_io_library_fndecls): Fix return
482         value of some libgfortran functions.
483
484 2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
485
486         PR fortran/45159
487         * dependency.c (gfc_deb_compare_expr):  Remove any integer
488         conversion functions to larger types from both arguments.
489         Remove handling these functions futher down.
490
491 2010-08-03  Janus Weil  <janus@gcc.gnu.org>
492
493         PR fortran/44584
494         PR fortran/45161
495         * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
496         * resolve.c (resolve_tb_generic_targets): Check for errors.
497
498 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
499
500         PR fortran/45159
501         * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
502         can be reversed.
503
504 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
505
506         PR fortran/36854
507         * dependency.h:  Add prototype for gfc_are_identical_variables.
508         * frontend-passes.c:  Include depencency.h.
509         (optimimize_equality):  Use gfc_are_identical_variables.
510         * dependency.c (identical_array_ref): New function.
511         (gfc_are_identical_variables):  New function.
512         (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
513         * dependency.c (gfc_check_section_vs_section).  Rename gfc_
514         prefix from statc function.
515         (check_section_vs_section): Change arguments to gfc_array_ref,
516         adjust function body accordingly.
517
518 2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
519             Janus Weil  <janus@gcc.gnu.org>
520
521         PR fortran/42051
522         PR fortran/44064
523         PR fortran/45151
524         * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol. 
525         * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
526         gfc_copy_formal_args, gfc_copy_formal_args_intr,
527         gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
528         * parse.c (parse_derived_contains, parse_spec, parse_progunit): 
529         Call reject_statement in case of error. 
530         (match_deferred_characteritics): Call gfc_undo_symbols in case match
531         fails.
532
533 2010-08-01  Janus Weil  <janus@gcc.gnu.org>
534
535         PR fortran/44912
536         * class.c (gfc_build_class_symbol): Make '$vptr' component private.
537         (gfc_find_derived_vtab): Make vtabs and vtypes public.
538         * module.c (read_module): When reading module files, always import
539         vtab and vtype symbols.
540
541 2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
542
543         PR fortran/42051
544         PR fortran/44064
545         * symbol.c (changed_syms): Made non-static.
546         * parse.c (changed_syms): Declare new external. 
547         (next_statement): Assert changed_syms is NULL at the beginning.
548
549 2010-07-30  Janus Weil  <janus@gcc.gnu.org>
550             Steven G. Kargl  <kargl@gcc.gnu.org>
551
552         PR fortran/44929
553         * match.c (match_type_spec): Try to parse derived types before
554         intrinsic types.
555
556 2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
557
558         * gfortran.h (gfc_release_symbol): New prototype.
559         * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
560         (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
561         Use gfc_release_symbol.
562         * parse.c (gfc_fixup_sibling_symbols): Ditto.
563         * resolve.c (resolve_symbol): Ditto.
564
565 2010-07-29  Tobias Burnus  <burnus@net-b.de>
566
567         PR fortran/45087
568         PR fortran/45125
569         * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
570         external procedure declarations in modules.
571         (gfc_get_symbol_decl): Modify assert.
572
573 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
574
575         PR fortran/44962
576         * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
577
578 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
579
580         PR fortran/45004
581         * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
582         (gfc_trans_class_assign): Modified prototype.
583         * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
584         * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
585         (gfc_trans_class_assign): ... here. Modified actual arguments.
586         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
587         handle the MOVE_ALLOC intrinsic with scalar and class arguments.
588         * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
589
590 2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
591
592         PR fortran/42051
593         PR fortran/44064
594         * class.c (gfc_find_derived_vtab): Accept or discard newly created
595         symbols before returning.
596
597 2010-07-29  Joseph Myers  <joseph@codesourcery.com>
598
599         * lang.opt (cpp): Remove Joined and Separate markers.
600         (cpp=): New internal option.
601         * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
602         * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
603         OPT_cpp.
604
605 2010-07-29  Daniel Kraft  <d@domob.eu>
606
607         PR fortran/45117
608         * array.c (resolve_array_bound): Fix error message to properly handle
609         non-variable expressions.
610
611 2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>
612
613         * decl.c (free_value): Also free repeat field.
614         * data.c (gfc_assign_data_value): Always free offset before returning.
615
616 2010-07-28  Daniel Kraft  <d@domob.eu>
617
618         * gfortran.h (gfc_build_intrinsic_call): New method.
619         * expr.c (gfc_build_intrinsic_call): New method.
620         * simplify.c (range_check): Ignore non-constant value.
621         (simplify_bound_dim): Handle non-variable expressions and
622         fix memory leak with non-free'ed expression.
623         (simplify_bound): Handle non-variable expressions.
624         (gfc_simplify_shape): Ditto.
625         (gfc_simplify_size): Ditto, but only in certain cases possible.
626
627 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
628
629         * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
630         Remove.
631
632 2010-07-28  Tobias Burnus  <burnus@net-b.de>
633
634         PR fortran/45077
635         * trans-types.c (gfc_get_derived_type): Fix DT declaration
636         from modules for whole-file mode.
637
638 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
639
640         * gfortran.h (gfc_handle_option): Update prototype and return
641         value type.
642         * options.c (gfc_handle_option): Update prototype and return value
643         type.
644
645 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
646
647         * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
648         decoded options in allocating deferred_opt.
649         * cpp.h (gfc_cpp_init_options): Update prototype.
650         * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
651         * gfortran.h (gfc_option_lang_mask): New.
652         (gfc_init_options): Update prototype.
653         * options.c (gfc_option_lang_mask): New.
654         (gfc_init_options): Update prototype.  Pass new arguments to
655         gfc_cpp_init_options.
656
657 2010-07-26  Tobias Burnus  <burnus@net-b.de>
658
659         PR fortran/40873
660         * trans-decl.c (gfc_get_extern_function_decl): Fix generation
661         for functions which are later in the same file.
662         (gfc_create_function_decl, build_function_decl,
663         build_entry_thunks): Add global argument.
664         * trans.c (gfc_generate_module_code): Update
665         gfc_create_function_decl call.
666         * trans.h (gfc_create_function_decl): Update prototype.
667         * resolve.c (resolve_global_procedure): Also resolve for
668         IFSRC_IFBODY.
669
670 2010-07-26  Richard Henderson  <rth@redhat.com>
671
672         PR target/44132
673         * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
674         (gfc_write_global_declarations): New.
675
676 2010-07-26  Tobias Burnus  <burnus@net-b.de>
677
678         PR fortran/45066
679         * trans-io.c (build_dt): Use NULL_TREE rather than NULL
680         for call to transfer_namelist_element.
681         * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
682         for -fwhole-file.
683
684 2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
685
686         PR fortran/40628
687         * Make-lang.in:  Add fortran/frontend-passes.o.
688         * gfortran.h:  Add prototype for gfc_run_passes.
689         * resolve.c (gfc_resolve):  Call gfc_run_passes.
690         * frontend-passes.c:  New file.
691
692 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
693
694         PR fortran/42852
695         * scanner.c (gfc_next_char_literal): Enable truncation warning for
696         free-form '&'.
697
698 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
699
700         PR fortran/44660
701         * gfortran.h (gfc_namespace): New field old_equiv.
702         (gfc_free_equiv_until): New prototype.
703         * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
704         a parameterized stop condition.
705         (gfc_free_equiv): Use gfc_free_equiv_until.
706         * parse.c (next_statement): Save equivalence list.
707         (reject_statement): Restore equivalence list. 
708
709 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
710
711         PR fortran/42852
712         * scanner.c (gfc_next_char_literal): Move check for truncation earlier
713         in the function so that it does not get missed by early exits.
714         (load_line): Add checks for quoted strings and free form comments to
715         disable warnings on comments. Add check for ampersand as first
716         character after truncation and don't warn for this case, but warn if
717         there are subsequent non-whitespace characters.
718
719 2010-07-24  Tobias Burnus  <burnus@net-b.de>
720
721         PR fortran/40011
722         * parse.c (gfc_parse_file): Do not override
723         gfc_global_ns_list items.
724
725 2010-07-24  Tobias Burnus  <burnus@net-b.de>
726
727         * options.c (gfc_init_options): Enable -fwhole-file by default.
728         * interface.c (compare_parameter): Assume a Hollerith constant is
729         compatible with all other argument types.
730
731 2010-07-23  Tobias Burnus  <burnus@net-b.de>
732
733         PR fortran/44945
734         * trans-decl.c (gfc_get_symbol_decl): Use module decl with
735         -fwhole-file also for derived types.
736         * trans-types.c (copy_dt_decls_ifequal): Remove static and
737         rename to gfc_copy_dt_decls_ifequal.
738         (gfc_get_derived_type): Update call.
739         * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
740
741 2010-07-23  Tobias Burnus  <burnus@net-b.de>
742
743         PR fortran/45030
744         * resolve.c (resolve_global_procedure): Properly handle ENTRY.
745
746 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
747
748         * trans-types.c (gfc_get_array_descriptor_base,
749         gfc_get_array_type_bounds): Set TYPE_NAMELESS.
750         * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
751         instead of clearing DECL_NAME.
752         (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
753
754 2009-07-23  Paul Thomas  <pault@gcc.gnu.org>
755
756         PR fortran/24524
757         * trans-array.c (gfc_init_loopinfo): Initialize the reverse
758         field.
759         gfc_trans_scalarized_loop_end: If reverse set in dimension n,
760         reverse the scalarization loop.
761         gfc_conv_resolve_dependencies: Pass the reverse field of the
762         loopinfo to gfc_dep_resolver.
763         trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
764         assignment by resetting loop.reverse.
765         gfortran.h : Add the gfc_reverse enum.
766         trans.h : Add the reverse field to gfc_loopinfo.
767         dependency.c (gfc_check_dependency): Pass null to the new arg
768         of gfc_dep_resolver.
769         (gfc_check_section_vs_section): Check for reverse dependencies.
770         (gfc_dep_resolver): Add reverse argument and deal with the loop
771         reversal logic.
772         dependency.h : Modify prototype for gfc_dep_resolver to include
773         gfc_reverse *.
774
775 2010-07-23  Daniel Kraft  <d@domob.eu>
776
777         PR fortran/44709
778         * gfortran.h (gfc_find_symtree_in_proc): New method.
779         * symbol.c (gfc_find_symtree_in_proc): New method.
780         * match.c (match_exit_cycle): Look for loop name also in parent
781         namespaces within current procedure.
782
783 2010-07-22  Tobias Burnus  <burnus@net-b.de>
784
785         PR fortran/45019
786         * dependency.c (gfc_check_dependency): Add argument alising check.
787         * symbol.c (gfc_symbols_could_alias): Add argument alising check.
788
789 2010-07-22  Daniel Kraft  <d@domob.eu>
790
791         * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
792         now in the correct place.
793
794 2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
795
796         PR fortran/44929
797         * Revert my commit r162325.
798
799 2010-07-21  Daniel Kraft  <d@domob.eu>
800
801         * trans.h (gfc_get_return_label): Removed.
802         (gfc_generate_return): New method.
803         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
804         returning a tree directly.
805         * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
806         (gfc_trans_block_construct): Update for new interface to
807         `gfc_trans_deferred_vars'.
808         * trans-decl.c (current_function_return_label): Removed.
809         (current_procedure_symbol): New variable.
810         (gfc_get_return_label): Removed.
811         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
812         returning a tree directly.
813         (get_proc_result), (gfc_generate_return): New methods.
814         (gfc_generate_function_code): Clean up and do init/cleanup here
815         also with gfc_wrapped_block.  Remove return-label but rather
816         return directly.
817
818 2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
819
820         PR fortran/44929
821         * fortran/match.c (match_type_spec): Check for derived type before
822         intrinsic types.
823
824 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
825
826         PR fortran/42385
827         * interface.c (matching_typebound_op): Add argument for the
828         return of the generic name for the procedure.
829         (build_compcall_for_operator): Add an argument for the generic
830         name of an operator procedure and supply it to the expression.
831         (gfc_extend_expr, gfc_extend_assign): Use the generic name in
832         calls to the above procedures.
833         * resolve.c (resolve_typebound_function): Catch procedure
834         component calls for CLASS objects, check that the vtable is
835         complete and insert the $vptr and procedure components, to make
836         the call.
837         (resolve_typebound_function): The same.
838         * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
839         an allocatable scalar if it is a result.
840
841 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
842
843         PR fortran/44353
844         * match.c (gfc_match_iterator): Reverted.
845
846 2010-07-18  Paul Thomas  <pault@gcc.gnu.org>
847
848         PR fortran/44353
849         * match.c (gfc_match_iterator): Remove error that iterator
850         cannot be INTENT(IN).
851
852 2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>
853
854         * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
855         Access subscript through the "dim" field index.
856         (gfc_trans_create_temp_array): Access ss info through the "dim" field
857         index.
858         (gfc_conv_array_index_offset): Ditto.
859         (gfc_conv_loop_setup): Ditto.
860         (gfc_conv_expr_descriptor): Ditto.
861         (gfc_conv_ss_startstride): Ditto.  Update call to
862         gfc_conv_section_startstride.
863         (gfc_conv_section_startstride): Set values along the array dimension.
864         Get array dimension directly from the argument.
865
866 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
867
868         * trans.h (gfc_string_to_single_character): New prototype.
869         * trans-expr.c (string_to_single_character): Renamed to ...
870         (gfc_string_to_single_character): ... this.  No longer static.
871         (gfc_conv_scalar_char_value, gfc_build_compare_string,
872         gfc_trans_string_copy): Adjust callers.
873         * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
874         * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
875         (select_struct): Move to toplevel, add GTY(()).
876         (gfc_trans_character_select): Optimize SELECT CASE
877         with character length 1.
878
879 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
880
881         * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
882         * trans-common.c: Likewise.
883         * trans-decl.c: Likewise.
884         * trans-types.c: Likewise.
885         * trans.c: Likewise.
886
887 2010-07-15  Janus Weil  <janus@gcc.gnu.org>
888
889         PR fortran/44936
890         * resolve.c (resolve_typebound_generic_call): Resolve generic
891         non-polymorphic type-bound procedure calls to the correct specific
892         procedure.
893         (resolve_typebound_subroutine): Remove superfluous code.
894
895 2010-07-15  Daniel Kraft  <d@domob.eu>
896
897         PR fortran/44709
898         * trans.h (struct gfc_wrapped_block): New struct.
899         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
900         (gfc_finish_wrapped_block): New method.
901         (gfc_init_default_dt): Add new init code to block rather than
902         returning it.
903         * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
904         (gfc_trans_dummy_array_bias): Ditto.
905         (gfc_trans_g77_array): Ditto.
906         (gfc_trans_deferred_array): Ditto.
907         * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
908         (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
909         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
910         (gfc_finish_wrapped_block): New method.
911         * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
912         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
913         (gfc_trans_deferred_array): Ditto.
914         * trans-decl.c (gfc_trans_dummy_character): Ditto.
915         (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
916         (init_intent_out_dt): Ditto.
917         (gfc_init_default_dt): Add new init code to block rather than
918         returning it.
919         (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
920         and cleanup code and put it all together.
921
922 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
923
924         * trans.h (gfc_build_compare_string): Add CODE argument.
925         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
926         gfc_build_compare_string.
927         * trans-expr.c (gfc_conv_expr_op): Pass CODE to
928         gfc_build_compare_string.
929         (string_to_single_character): Rename len variable to length.
930         (gfc_optimize_len_trim): New function.
931         (gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
932         or NE_EXPR and one of the strings is string literal with LEN_TRIM
933         bigger than the length of the other string, they compare unequal.
934
935         PR fortran/40206
936         * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
937         in CASE_LABEL_EXPR and use NULL for low for the default case.
938
939 2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>
940
941         * trans-array.c (gfc_conv_section_upper_bound): Remove
942         (gfc_conv_section_startstride): Don't set the upper bound in the 
943         vector subscript case.
944         (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
945
946 2010-07-14  Janus Weil  <janus@gcc.gnu.org>
947
948         PR fortran/44925
949         * gfortran.h (gfc_is_data_pointer): Remove prototype.
950         * dependency.c (gfc_is_data_pointer): Make it static.
951         * intrinsic.texi: Update documentation on C_LOC.
952         * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
953         and add a check for polymorphic variables.
954
955 2010-07-14  Jakub Jelinek  <jakub@redhat.com>
956
957         * trans-expr.c (string_to_single_character): Also optimize
958         string literals containing a single char followed only by spaces.
959         (gfc_trans_string_copy): Remove redundant string_to_single_character
960         calls.
961
962         * trans-decl.c (gfc_build_intrinsic_function_decls,
963         gfc_build_builtin_function_decls): Mark functions as
964         DECL_PURE_P or TREE_READONLY.
965
966 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
967
968         * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
969         instead of build_function_call_expr.
970         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
971
972 2010-07-13  Tobias Burnus  <burnus@net-b.de>
973             Daniel Franke  <franke.daniel@gmail.com>
974
975         PR fortran/43665
976         * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
977         * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
978         static.
979         * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
980
981 2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
982             Tobias Burnus  <burnus@net-b.de>
983
984         PR fortran/43665
985         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
986         noclobber/noescape annotations to function calls.
987         (gfc_build_builtin_function_decls): Likewise.
988
989 2010-07-13  Janus Weil  <janus@gcc.gnu.org>
990
991         PR fortran/44434
992         PR fortran/44565
993         PR fortran/43945
994         PR fortran/44869
995         * gfortran.h (gfc_find_derived_vtab): Modified prototype.
996         * class.c (gfc_build_class_symbol): Modified call to
997         'gfc_find_derived_vtab'.
998         (add_proc_component): Removed, moved code into 'add_proc_comp'.
999         (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
1000         generics.
1001         (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
1002         Removed treatment of generics.
1003         (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
1004         Call 'add_proc_comp' instead of duplicating code.
1005         (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
1006         and 'declared'.
1007         (add_generic_specifics,add_generics_to_declared_vtab): Removed.
1008         (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
1009         Removed treatment of generics.
1010         * iresolve.c (gfc_resolve_extends_type_of): Modified call to
1011         'gfc_find_derived_vtab'.
1012         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1013         Removed treatment of generics.
1014         (resolve_select_type,resolve_fl_derived): Modified call to
1015         'gfc_find_derived_vtab'.
1016         * trans-decl.c (gfc_get_symbol_decl): Ditto.
1017         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1018         Ditto.
1019         * trans-stmt.c (gfc_trans_allocate): Ditto.
1020
1021 2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1022
1023         PR fortran/37077
1024         * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
1025         internal unit.
1026
1027 2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>
1028
1029         * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
1030         * resolve.c (build_default_init_expr): Ditto.
1031
1032 2010-07-11  Tobias Burnus  <burnus@net-b.de>
1033
1034         PR fortran/44702
1035         * module.c (sort_iso_c_rename_list): Remove.
1036         (import_iso_c_binding_module,use_iso_fortran_env_module):
1037         Allow multiple imports of the same symbol.
1038
1039 2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>
1040
1041         * arith.c (gfc_arith_done_1): Release mpfr internal caches.
1042
1043 2010-07-11  Janus Weil  <janus@gcc.gnu.org>
1044
1045         PR fortran/44869
1046         * decl.c (build_sym,attr_decl1): Only build the class container if the
1047         symbol has sufficient attributes.
1048         * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
1049         pointer attribute for classes.
1050         * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
1051         * module.c (MOD_VERSION): Bump.
1052         (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
1053         (mio_symbol_attribute): Handle class_pointer attribute.
1054         * parse.c (parse_derived): Use class_pointer instead of pointer
1055         attribute for classes.
1056         * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
1057         * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
1058         resolve_allocate_expr,resolve_fl_derived): Ditto.
1059         (resolve_fl_var_and_proc): Check for class_ok attribute.
1060
1061 2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>
1062
1063         * trans-io.c (gfc_build_st_parameter): Update calls to
1064         gfc_add_field_to_struct.
1065         * trans-stmt.c (ADD_FIELD): Ditto.
1066         * trans-types.c
1067         (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
1068         C_ADDRESS field.
1069         (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
1070         fieldlist, remove fieldlist from argument list.
1071         (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
1072         and remove fieldlist from argument list.
1073         (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
1074         gfc_get_mixed_entry_union): Move setting
1075         TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
1076         * trans-types.h (gfc_add_field_to_struct): Update prototype.
1077
1078 2010-07-10  Paul Thomas  <pault@gcc.gnu.org>
1079
1080         PR fortran/44773
1081         * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
1082         if the lhs has never been host associated, as well as not being
1083         use associated, a pointer or a target.
1084         * resolve.c (resolve_variable): Mark variables that are host
1085         associated.
1086         * gfortran.h: Add the host_assoc bit to the symbol_attribute
1087         structure.
1088
1089 2010-07-09  Janus Weil  <janus@gcc.gnu.org>
1090
1091         * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
1092         STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
1093         SIZEOF and C_SIZEOF.
1094
1095 2010-07-08  Janus Weil  <janus@gcc.gnu.org>
1096
1097         PR fortran/44649
1098         * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
1099         * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
1100         gfc_resolve_storage_size): New prototypes.
1101         * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
1102         * intrinsic.c (add_functions): Add STORAGE_SIZE.
1103         * iresolve.c (gfc_resolve_storage_size): New function.
1104         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
1105         arguments.
1106         (gfc_conv_intrinsic_storage_size): New function.
1107         (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
1108
1109 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
1110
1111         PR fortran/44847
1112         * match.c (match_exit_cycle): Error on EXIT also from collapsed
1113         !$omp do loops.  Error on CYCLE to non-innermost collapsed
1114         !$omp do loops.
1115
1116 2010-07-08  Tobias Burnus  <burnus@net-b.de>
1117
1118         PR fortran/18918
1119         * array.c (gfc_match_array_ref): Better error message for
1120         coarrays with too few ranks.
1121         (match_subscript): Move one diagnostic to caller.
1122         * gfortran.h (gfc_get_corank): Add prottype.
1123         * expr.c (gfc_get_corank): New function.
1124         * iresolve.c (resolve_bound): Fix rank for cobounds.
1125         (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
1126         gfc_resolve_ucobound, gfc_resolve_this_image): Update
1127         resolve_bound call.
1128
1129 2010-07-06  Tobias Burnus  <burnus@net-b.de>
1130
1131         PR fortran/44742
1132         * array.c (gfc_expand_constructor): Add optional diagnostic.
1133         * gfortran.h (gfc_expand_constructor): Update prototype.
1134         * expr.c (gfc_simplify_expr, check_init_expr,
1135         gfc_reduce_init_expr): Update gfc_expand_constructor call.
1136         * resolve.c (gfc_resolve_expr): Ditto.
1137
1138 2010-07-06  Tobias Burnus  <burnus@net-b.de>
1139
1140         * trans-decl.c: Include diagnostic-core.h besides toplev.h.
1141         * trans-intrinsic.c: Ditto.
1142         * trans-types.c: Ditto.
1143         * convert.c: Include diagnostic-core.h instead of toplev.h.
1144         * options.c: Ditto.
1145         * trans-array.c: Ditto.
1146         * trans-const.c: Ditto.
1147         * trans-expr.c: Ditto.
1148         * trans-io.c: Ditto.
1149         * trans-openmp.c: Ditto.
1150         * trans.c: Ditto.
1151
1152 2010-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1153
1154         PR fortran/PR44693
1155         * check.c (dim_rank_check):  Also check intrinsic functions.
1156         Adjust permissible rank for functions which reduce the rank of
1157         their argument.  Spread is an exception, where DIM can
1158         be one larger than the rank of array.
1159
1160 2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>
1161
1162         PR fortran/44797
1163         * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
1164
1165 2010-07-05  Paul Thomas  <pault@gcc.gnu.org>
1166
1167         PR fortran/44596
1168         * trans-types.c (gfc_get_derived_type): Derived type fields
1169         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
1170         but build_pointer_type_for_mode must be used for this.
1171
1172 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
1173
1174         * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
1175         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
1176         type of gfc_conv_procedure_call.
1177         (conv_generic_with_optional_char_arg): Likewise.
1178         * trans-stmt.c (gfc_trans_call): Likewise.
1179         * trans-expr.c (gfc_conv_function_expr): Likewise.
1180         (gfc_conv_procedure_call): Use build_call_vec instead of
1181         build_call_list.
1182
1183 2010-07-04  Daniel Kraft  <d@domob.eu>
1184
1185         * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
1186
1187 2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
1188
1189         PR fortran/44596
1190         PR fortran/44745
1191         * trans-types.c (gfc_get_derived_type): Derived type fields
1192         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
1193
1194 2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>
1195
1196         PR fortran/44662
1197         * decl.c (match_procedure_in_type): Clear structure before using.
1198         (gfc_match_generic): Ditto.
1199
1200 2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>
1201
1202         * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
1203         * trans-types.c (gfc_add_field_to_struct_1): New function, most
1204         of which comes from...
1205         (gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
1206         (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
1207         building fields.
1208         (gfc_get_array_descriptor_base): Likewise.
1209         (gfc_get_mixed_entry_union): Likewise.
1210         (gfc_get_derived_type): Add extra chain parameter for
1211         gfc_add_field_to_struct.
1212         * trans-stmt.c (gfc_trans_character_select): Likewise.
1213         * trans-io.c (gfc_build_st_parameter): Likewise.
1214
1215 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
1216
1217         PR fortran/44718
1218         * resolve.c (is_external_proc): Prevent procedure pointers from being
1219         regarded as external procedures.
1220
1221 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
1222
1223         PR fortran/44696
1224         * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
1225         passed as second argument of ASSOCIATED.
1226
1227 2010-06-29  Paul Thomas  <pault@gcc.gnu.org>
1228
1229         PR fortran/44582
1230         * trans-expr.c (arrayfunc_assign_needs_temporary): New function
1231         to determine if a function assignment can be made without a
1232         temporary.
1233         (gfc_trans_arrayfunc_assign): Move all the conditions that
1234         suppress the direct function call to the above new functon and
1235         call it.
1236
1237 2010-06-28  Paul Thomas  <pault@gcc.gnu.org>
1238
1239         PR fortran/40158
1240         * interface.c (argument_rank_mismatch): New function.
1241         (compare_parameter): Call new function instead of generating
1242         the error directly.
1243
1244 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
1245
1246         * trans-openmp.c (dovar_init): Define.  Define VECs containing it.
1247         (gfc_trans_omp_do): Use a VEC to accumulate variables and their
1248         initializers.
1249
1250 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
1251
1252         * Make-lang.in: Update dependencies.
1253
1254 2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>
1255
1256         * gfortran.h (gfc_code): Split backend_decl field into cycle_label
1257         and exit_label fields.
1258         * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
1259         individually.
1260         * trans-stmt.c (gfc_trans_simple_do): Likewise.
1261         (gfc_trans_do): Likewise.
1262         (gfc_trans_do_while): Likewise.
1263         (gfc_trans_cycle): Use cycle_label directly.
1264         (gfc_trans_exit): Use exit_label directly.
1265
1266 2010-06-27  Daniel Kraft  <d@domob.eu>
1267
1268         * dump-parse-tree.c (show_symbol): Dump target-expression for
1269         associate names.
1270         (show_code_node): Make distinction between BLOCK and ASSOCIATE.
1271         (show_namespace): Use show_level for correct indentation of
1272         "inner namespaces" (contained procedures or BLOCK).
1273
1274 2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1275
1276         PR fortran/44678
1277         * dump-parse-tree.c (show_code_node):  Show namespace for
1278         EXEC_BLOCK.
1279
1280 2010-06-26  Tobias Burnus  <burnus@net-b.de>
1281
1282         * decl.c (gfc_match_decl_type_spec): Support
1283         TYPE(intrinsic-type-spec).
1284
1285 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1286
1287         * intrinsic.h (gfc_check_selected_real_kind,
1288         gfc_simplify_selected_real_kind): Update prototypes.
1289         * intrinsic.c (add_functions): Add radix support to
1290         selected_real_kind.
1291         * check.c (gfc_check_selected_real_kind): Ditto.
1292         * simplify.c (gfc_simplify_selected_real_kind): Ditto.
1293         * trans-decl.c (gfc_build_intrinsic_function_decls):
1294         Change call from selected_real_kind to selected_real_kind2008.
1295         * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
1296         (PRECISION, RANGE, RADIX): Add cross @refs.
1297
1298 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1299
1300         * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
1301         * gfortran.texi (_gfortran_set_options): Update for
1302         GFC_STD_F2008_OBS addition.
1303         * libgfortran.h: Add GFC_STD_F2008_OBS.
1304         * options.c (set_default_std_flags, gfc_handle_option): Handle
1305         GFC_STD_F2008_OBS.
1306         io.c (check_format): Fix allow_std check.
1307
1308 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1309
1310         * decl.c (gfc_match_entry): Allow END besides
1311         END SUBROUTINE/END FUNCTION for contained procedures.
1312
1313 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1314
1315         * parse.c (next_free, next_fixed): Allow ";" as first character.
1316
1317 2010-06-24  Tobias Burnus  <burnus@net-b.de>
1318
1319         PR fortran/44614
1320         * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
1321
1322 2010-06-22  Janus Weil  <janus@gcc.gnu.org>
1323
1324         PR fortran/44616
1325         * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
1326         containers.
1327
1328 2010-06-21  Tobias Burnus  <burnus@net-b.de>
1329
1330         PR fortran/40632
1331         * interface.c (compare_parameter): Add gfc_is_simply_contiguous
1332         checks.
1333         * symbol.c (gfc_add_contiguous): New function.
1334         (gfc_copy_attr, check_conflict): Handle contiguous attribute.
1335         * decl.c (match_attr_spec): Ditto.
1336         (gfc_match_contiguous): New function.
1337         * resolve.c (resolve_fl_derived, resolve_symbol): Handle
1338         contiguous.
1339         * gfortran.h (symbol_attribute): Add contiguous.
1340         (gfc_is_simply_contiguous): Add prototype.
1341         (gfc_add_contiguous): Add prototype.
1342         * match.h (gfc_match_contiguous): Add prototype.
1343         * parse.c (decode_specification_statement,
1344         decode_statement): Handle contiguous attribute.
1345         * expr.c (gfc_is_simply_contiguous): New function.
1346         * dump-parse-tree.c (show_attr): Handle contiguous.
1347         * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
1348         Ditto.
1349         * trans-expr.c (gfc_add_interface_mapping): Copy
1350         attr.contiguous.
1351         * trans-array.c (gfc_conv_descriptor_stride_get,
1352         gfc_conv_array_parameter): Handle contiguous arrays.
1353         * trans-types.c (gfc_build_array_type, gfc_build_array_type,
1354         gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
1355         Ditto.
1356         * trans.h (gfc_array_kind): Ditto.
1357         * trans-decl.c (gfc_get_symbol_decl): Ditto.
1358
1359 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
1360
1361         * options.c (gfc_handle_option): Don't handle N_OPTS.
1362
1363 2010-06-19  Janus Weil  <janus@gcc.gnu.org>
1364
1365         PR fortran/44584
1366         * resolve.c (resolve_fl_derived): Reverse ordering of conditions
1367         to avoid ICE.
1368
1369 2010-06-18  Tobias Burnus  <burnus@net-b.de>
1370
1371         PR fortran/44556
1372         * resolve.c (resolve_allocate_deallocate): Properly check
1373         part-refs in stat=/errmsg= for invalid use.
1374
1375 2010-06-17  Janus Weil  <janus@gcc.gnu.org>
1376
1377         PR fortran/44558
1378         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1379         Return directly in case of an error.
1380
1381 2010-06-16  Janus Weil  <janus@gcc.gnu.org>
1382
1383         PR fortran/44549
1384         * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
1385         * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
1386         structure to each procedure in a procedure list.
1387         * module.c (mio_typebound_proc): Add NULL argument to
1388         'gfc_get_typebound_proc'.
1389         * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
1390         to initialize the new structure.
1391
1392 2010-06-15  Janus Weil  <janus@gcc.gnu.org>
1393
1394         PR fortran/43388
1395         * gfortran.h (gfc_expr): Add new member 'mold'.
1396         * match.c (gfc_match_allocate): Implement the MOLD tag.
1397         * resolve.c (resolve_allocate_expr): Ditto.
1398         * trans-stmt.c (gfc_trans_allocate): Ditto.
1399
1400 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
1401
1402         PR fortran/44536
1403         * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
1404         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
1405         GFC_DECL_SAVED_DESCRIPTOR set.
1406         (gfc_omp_report_decl): New function.
1407         * trans.h (gfc_omp_report_decl): New prototype.
1408         * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
1409
1410 2010-06-13  Daniel Franke  <franke.daniel@gmail.com>
1411
1412         PR fortran/31588
1413         PR fortran/43954
1414         * gfortranspec.c (lang_specific_driver): Removed deprecation
1415         warning for -M.
1416         * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
1417         * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
1418         * cpp.h (gfc_cpp_makedep): New.
1419         (gfc_cpp_add_dep): New.
1420         (gfc_cpp_add_target): New.
1421         * cpp.c (gfc_cpp_option): Add deps* members.
1422         (gfc_cpp_makedep): New.
1423         (gfc_cpp_add_dep): New.
1424         (gfc_cpp_add_target): New.
1425         (gfc_cpp_init_options): Initialize new options.
1426         (gfc_cpp_handle_option): Handle new options.
1427         (gfc_cpp_post_options): Map new options to libcpp-options.
1428         (gfc_cpp_init): Handle deferred -MQ and -MT options.
1429         (gfc_cpp_done): If requested, write dependencies to file.
1430         * module.c (gfc_dump_module): Add a module filename as target.
1431         * scanner.c (open_included_file): New parameter system; add the
1432         included file as dependency.
1433         (gfc_open_included_file): Add the included file as dependency.
1434         (gfc_open_intrinsic_module): Likewise.
1435         * invoke.texi: Removed deprecation warning for -M.
1436         * gfortran.texi: Removed Makefile-dependencies project.
1437
1438 2010-06-12  Daniel Franke  <franke.daniel@gmail.com>
1439
1440         * resolve.c (resolve_global_procedure): Improved checking if an
1441         explicit interface is required.
1442
1443 2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1444
1445         * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
1446         return type.
1447         * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
1448         (gfc_conv_intrinsic_ttynam): Likewise.
1449         (gfc_conv_intrinsic_trim): Likewise.
1450
1451 2010-06-12  Janus Weil  <janus@gcc.gnu.org>
1452
1453         PR fortran/40117
1454         * decl.c (match_procedure_in_type): Allow procedure lists (F08).
1455
1456 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1457
1458         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
1459
1460 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1461
1462         * mathbuiltins.def: Add builtins that do not directly correspond
1463         to a Fortran intrinsic, with new macro OTHER_BUILTIN.
1464         * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
1465         * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
1466         code_{r,c}{4,8,10,16} fields. Add
1467         {,complex}{float,double,long_double}_built_in fields.
1468         (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
1469         DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
1470         definition of OTHER_BUILTIN.
1471         (real_compnt_info): Remove unused struct.
1472         (builtin_decl_for_precision, builtin_decl_for_float_kind): New
1473         functions.
1474         (build_round_expr): Call builtin_decl_for_precision instead of
1475         series of if-else.
1476         (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
1477         instead of a switch.
1478         (gfc_build_intrinsic_lib_fndecls): Match
1479         {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
1480         (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
1481         kinds.
1482         (gfc_conv_intrinsic_lib_function): Go through all the extended
1483         gfc_intrinsic_map.
1484         (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
1485         instead of a switch.
1486         (gfc_conv_intrinsic_abs): Likewise.
1487         (gfc_conv_intrinsic_mod): Likewise.
1488         (gfc_conv_intrinsic_sign): Likewise.
1489         (gfc_conv_intrinsic_fraction): Likewise.
1490         (gfc_conv_intrinsic_nearest): Likewise.
1491         (gfc_conv_intrinsic_spacing): Likewise.
1492         (gfc_conv_intrinsic_rrspacing): Likewise.
1493         (gfc_conv_intrinsic_scale): Likewise.
1494         (gfc_conv_intrinsic_set_exponent): Likewise.
1495
1496 2010-06-11  Paul Thomas  <pault@gcc.gnu.org>
1497
1498         PR fortran/42051
1499         PR fortran/43896
1500         * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
1501         functions with CLASS formal arguments.
1502
1503 2010-06-10  Janus Weil  <janus@gcc.gnu.org>
1504
1505         PR fortran/44207
1506         * resolve.c (conformable_arrays): Handle allocatable components.
1507
1508 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1509
1510         PR fortran/38273
1511         * gfortran.texi: Document that Cray pointers cannot be function
1512         results.
1513
1514 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1515
1516         PR fortran/36234
1517         * gfortran.texi: Document lack of support for syntax
1518         "complex FUNCTION name*16()", and existence of alternative
1519         legacy syntax "complex*16 FUNCTION name()".
1520
1521 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1522
1523         PR fortran/43032
1524         * intrinsic.texi (FLUSH): Note the difference between FLUSH and
1525         POSIX's fsync(), and how to call the latter from Fortran code.
1526
1527 2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
1528
1529         PR fortran/44457
1530         * interface.c (compare_actual_formal): Reject actual arguments with
1531         array subscript passed to ASYNCHRONOUS dummys.
1532
1533 2010-06-10  Daniel Kraft  <d@domob.eu>
1534
1535         PR fortran/38936
1536         * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
1537         (struct gfc_symbol): New field `assoc'.
1538         (struct gfc_association_list): New struct.
1539         (struct gfc_code): New struct `block' in union, move `ns' there
1540         and add association list.
1541         (gfc_free_association_list): New method.
1542         (gfc_has_vector_subscript): Made public;
1543         * match.h (gfc_match_associate): New method.
1544         * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
1545         * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
1546         * interface.c (gfc_has_vector_subscript): Made public.
1547         (compare_actual_formal): Rename `has_vector_subscript' accordingly.
1548         * match.c (gfc_match_associate): New method.
1549         (gfc_match_select_type): Change reference to gfc_code's `ns' field.
1550         * primary.c (match_variable): Don't allow names associated to expr here.
1551         * parse.c (decode_statement): Try matching ASSOCIATE statement.
1552         (case_exec_markers, case_end): Add ASSOCIATE statement.
1553         (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
1554         (parse_associate): New method.
1555         (parse_executable): Handle ST_ASSOCIATE.
1556         (parse_block_construct): Change reference to gfc_code's `ns' field.
1557         * resolve.c (resolve_select_type): Ditto.
1558         (resolve_code): Ditto.
1559         (resolve_block_construct): Ditto and add comment.
1560         (resolve_select_type): Set association list in generated BLOCK to NULL.
1561         (resolve_symbol): Resolve associate names.
1562         * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
1563         and free association list.
1564         (gfc_free_association_list): New method.
1565         * symbol.c (gfc_new_symbol): NULL new field `assoc'.
1566         * trans-stmt.c (gfc_trans_block_construct): Change reference to
1567         gfc_code's `ns' field.
1568
1569 2010-06-10  Kai Tietz  <kai.tietz@onevision.com>
1570
1571         * error.c (error_print): Pre-initialize loc by NULL.
1572         * openmp.c (resolve_omp_clauses): Add explicit
1573         braces to avoid ambigous else.
1574         * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
1575
1576 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
1577
1578         * gfc-internals.texi: Move to GFDL 1.3.
1579         * gfortran.texi: Ditto.
1580         * intrinsic.texi: Ditto.
1581         * invoke.texi: Ditto.
1582
1583 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
1584
1585         PR fortran/44347
1586         * check.c (gfc_check_selected_real_kind): Verify that the
1587         actual arguments are scalar.
1588
1589 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
1590
1591         PR fortran/44359
1592         * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
1593
1594 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
1595
1596         PR fortran/44430
1597         * dump-parse-tree.c (show_symbol): Avoid infinite loop.
1598
1599 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1600
1601         * fortran/symbol.c (check_conflict):  Remove an invalid conflict check.
1602
1603 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1604
1605         * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
1606         gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
1607         * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
1608         gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
1609         gfc_check_bitfcn.
1610         * fortran/check.c (nonnegative_check, less_than_bitsize1, 
1611         less_than_bitsize2): New functions.
1612         (gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
1613         nonnegative_check and less_than_bitsize1.
1614         (gfc_check_ibclr, gfc_check_ibset): Removed.
1615         (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
1616         less_than_bitsize1.
1617
1618 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
1619
1620         PR fortran/44211
1621         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1622         Resolve references.
1623
1624 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
1625
1626         * resolve.c (resolve_deallocate_expr): Avoid warning
1627         about possible use of iunitialized sym.
1628         (resolve_allocate_expr): Pre-initialize sym by NULL.
1629
1630 2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1631
1632         PR fortran/43040
1633         * f95-lang.c (gfc_init_builtin_functions): Remove comment.
1634
1635 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1636
1637         * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
1638         allocation.
1639         (gfc_get_array_type_bounds): Likewise.
1640
1641         * trans-decl.c (gfc_allocate_lang_decl): Likewise.
1642         (gfc_find_module): Likewise.
1643
1644         * f95-lang.c (pushlevel): Likewise.
1645
1646         * trans.h (struct lang_type): Add variable_size GTY option.
1647         (struct lang_decl): Likewise.
1648
1649 2010-06-08  Tobias Burnus  <burnus@net-b.de>
1650
1651         PR fortran/44446
1652         * symbol.c (check_conflict): Move protected--external/procedure check ...
1653         * resolve.c (resolve_select_type): ... to the resolution stage.
1654
1655 2010-06-07  Tobias Burnus  <burnus@net-b.de>
1656
1657         * options.c (gfc_handle_option): Fix -fno-recursive.
1658
1659 2010-06-07  Tobias Burnus  <burnus@net-b.de>
1660
1661         * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
1662         * gfortran.texi (copyrights-gfortran): Ditto.
1663
1664 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
1665
1666         * lang.opt (fshort-enums): Define using Var and VarExists.
1667         * options.c (gfc_handle_option): Don't set flag_short_enums here.
1668
1669 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
1670             Janus Weil  <janus@gcc.gnu.org>
1671
1672         PR fortran/43945
1673         * resolve.c (get_declared_from_expr): Move to before
1674         resolve_typebound_generic_call.  Make new_ref and class_ref
1675         ignorable if set to NULL.
1676         (resolve_typebound_generic_call): Once we have resolved the
1677         generic call, check that the specific instance is that which
1678         is bound to the declared type.
1679         (resolve_typebound_function,resolve_typebound_subroutine): Avoid
1680         freeing 'class_ref->next' twice.
1681
1682 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
1683
1684         PR fortran/43895
1685         * trans-array.c (structure_alloc_comps): Dereference scalar
1686         'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
1687         TREE_TYPE (decl).
1688
1689 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
1690
1691         * gfortranspec.c (append_arg, lang_specific_driver): Use
1692         GCC-specific formats in diagnostics.
1693
1694 2010-06-02  Tobias Burnus  <burnus@net-b.de>
1695
1696         PR fortran/44360
1697         * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
1698         symbols.
1699
1700 2010-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1701
1702         PR fortran/44371
1703         * match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
1704         condition block.
1705
1706 2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>
1707
1708         * fortran/gfortran.texi:  Fix typos in description of variable-format-
1709         expressions.
1710
1711 2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
1712
1713         PR fortran/36928
1714         * dependency.c (gfc_check_section_vs_section):  Check
1715         for interleaving array assignments without conflicts.
1716
1717 2010-05-30  Janus Weil  <janus@gcc.gnu.org>
1718
1719         * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
1720         $data component of a class container.
1721         * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
1722         * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
1723         gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
1724         * gcc/fortran/interface.c (matching_typebound_op): Ditto.
1725         * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
1726         * gcc/fortran/parse.c (parse_derived): Ditto.
1727         * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
1728         gfc_expr_attr): Ditto.
1729         * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
1730         resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
1731         resolve_fl_var_and_proc, resolve_typebound_procedure,
1732         resolve_fl_derived): Ditto.
1733         * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
1734         * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
1735         CLASS_DATA.
1736         * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
1737         gfc_trans_deferred_vars): Ditto.
1738         * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
1739
1740 2010-05-28  Tobias Burnus  <burnus@net-b.de>
1741
1742         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
1743
1744 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1745
1746         * gfortranspec.c (append_arg, lang_specific_driver): Use
1747         fatal_error instead of fatal.  Use warning instead of fprintf for
1748         warnings.
1749
1750 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1751
1752         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
1753         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
1754         xstrerror instead of strerror.
1755
1756 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
1757
1758         * cpp.c (cb_cpp_error): Save and restore
1759         global_dc->warn_system_headers, not variable warn_system_headers.
1760
1761 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1762
1763         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
1764
1765 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1766
1767         * trans-common.c: Do not include rtl.h, include output.h instead.
1768         * trans-decl.c: Likewise.
1769
1770 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
1771
1772         PR fortran/40011
1773         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
1774         namespace before trying to reorder the gsymbols.
1775
1776 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
1777
1778         PR fortran/30668
1779         PR fortran/31346
1780         PR fortran/34260
1781         * resolve.c (resolve_global_procedure): Add check for global
1782         procedures with implicit interfaces and assumed-shape or optional
1783         dummy arguments. Verify that function return type, kind and string
1784         lengths match.
1785
1786 2010-05-21  Tobias Burnus  <burnus@net-b.de>
1787
1788         * gfortran.h: Do not include system.h.
1789         * bbt.c: Include system.h.
1790         * data.c: Ditto.
1791         * dependency.c: Ditto.
1792         * dump-parse-tree.c: Ditto.
1793         * arith.h: Do not include gfortran.h.
1794         * constructor.h: Do not include gfortran.h and splay-tree.h.
1795         * match.h: Do not include gfortran.h.
1796         * parse.h: Ditto.
1797         * target-memory.h: Ditto.
1798         * openmp.c: Do not include toplev.h and target.h.
1799         * trans-stmt.c: Ditto not include toplev.h.
1800         * primary.c: Ditto.
1801         * trans-common.c: Tell why toplev.h is needed. And
1802         do not include target.h.
1803         * trans-expr.c: Tell why toplev.h is needed.
1804         * trans-array.c: Ditto.
1805         * trans-openmp.c: Ditto.
1806         * trans-const.c: Ditto.
1807         * trans.c: Ditto.
1808         * trans-types.c: Ditto.
1809         * trans-io.c: Ditto.
1810         * trans-decl.c: Ditto.
1811         * scanner.c: Ditto.
1812         * convert.c: Ditto.
1813         * trans-intrinsic.c: Ditto.
1814         * options.c: Ditto.
1815
1816 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1817
1818         PR fortran/43851
1819         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
1820         before returning MATCH_ERROR. Add check for scalar. Add check for
1821         default integer kind.
1822
1823 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
1824
1825         PR fortran/44212
1826         * match.c (gfc_match_select_type): On error jump back out of the local
1827         namespace.
1828         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
1829         stage, more precisely to ...
1830         * resolve.c (resolve_fl_derived): ... this place.
1831
1832 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
1833
1834         PR fortran/44213
1835         * resolve.c (ensure_not_abstract): Allow abstract types with
1836         non-abstract ancestors.
1837
1838 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1839
1840         * trans-const.c: Include realmpfr.h.
1841         * Make-lang.in: Update dependencies.
1842
1843 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1844
1845         * trans-const.c, trans-types.c, trans-intrinsic.c:
1846         Clean up redundant includes.
1847
1848 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
1849
1850         PR fortran/38407
1851         * lang.opt (Wunused-dummy-argument): New option.
1852         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
1853         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
1854         (set_Wall): Enable warn_unused_dummy_argument.
1855         (gfc_handle_option): Set warn_unused_dummy_argument according to
1856         command line.
1857         * trans-decl.c (generate_local_decl): Separate warnings about
1858         unused variables and unused dummy arguments.
1859         * invoke.texi: Documented new option.
1860
1861 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
1862
1863         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
1864         (gfc_conv_string_tmp): Do not assert type comparibilty.
1865         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
1866         (gfc_conv_expr_descriptor): Remove assert.
1867         * trans-common.c: Clarify why rtl.h and tm.h are included.
1868         * trans-openmp.c: Do not include ggc.h and real.h.
1869         Explain why gimple.h is included.
1870         * trans-const.c: Do not include ggc.h.
1871         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
1872         * trans.c: Do not include ggc.h and real.h.
1873         Explain why gimple.h is included.
1874         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
1875         and dwarf2out.h are included.
1876         * trans-io.c: Do not include gimple.h and real.h.
1877         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
1878         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
1879         is included.
1880
1881 2010-05-20  Tobias Burnus  <burnus@net-b.de>
1882
1883         * options.c (gfc_init_options,gfc_post_options): Enable
1884         flag_associative_math by default.
1885
1886 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1887
1888         PR fortran/43851
1889         * trans-stmt.c (gfc_trans_stop): Add generation of call to
1890         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
1891         blank STOP, handling a null expression. (gfc_trans_pause): Use
1892         pause_string for blank PAUSE.
1893         * trans.h: Add external function declaration for error_stop_numeric.
1894         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
1895         the declaration for the library call. Adjust whitespaces.
1896         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
1897         signal no stop code. Match the expression following the stop and pass
1898         that to the translators. Remove the old use of digit matching.  Add
1899         checks that the stop_code expression is INTEGER or CHARACTER, constant,
1900         and if CHARACTER, default character KIND.
1901
1902 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
1903
1904         PR fortran/44055
1905         * lang.opt (Wconversion-extra): New option.
1906         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
1907         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
1908         (set_Wall): Enable -Wconversion.
1909         (gfc_handle_option): Set warn_conversion_extra.
1910         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
1911         introduced for -Wconversion if -Wconversion-extra is present.
1912         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
1913         -Wconversion; document -Wconversion-extra.
1914
1915 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
1916
1917         PR fortran/42360
1918         * gfortran.h (gfc_has_default_initializer): New.
1919         * expr.c (gfc_has_default_initializer): New.
1920         * resolve.c (has_default_initializer): Removed, use
1921         gfc_has_default_initializer() instead. Updated all callers.
1922         * trans-array.c (has_default_initializer): Removed, use
1923         gfc_has_default_initializer() instead. Updated all callers.
1924         * trans-decl.c (generate_local_decl): Do not check the
1925         first component only to check for initializers, but use
1926         gfc_has_default_initializer() instead.
1927
1928 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
1929
1930         PR fortran/38404
1931         * primary.c (match_string_constant): Move start_locus just inside 
1932         the string.
1933         * data.c (create_character_intializer): Clarified truncation warning.
1934
1935 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
1936
1937         PR fortran/34505
1938         * intrinsic.h (gfc_check_float): New prototype.
1939         (gfc_check_sngl): New prototype.
1940         * check.c (gfc_check_float): New.
1941         (gfc_check_sngl): New.
1942         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
1943         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
1944         and SNGL.
1945         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
1946         added them to the list of specifics of REAL instead.
1947
1948 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
1949
1950         PR fortran/43990
1951         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
1952         This is now handled via 'gfc_class_null_initializer'.
1953
1954 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
1955
1956         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
1957         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
1958         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
1959         add_procs_to_declared_vtab,add_generic_specifics, 
1960         add_generics_to_declared_vtab,gfc_find_derived_vtab,
1961         find_typebound_proc_uop,gfc_find_typebound_proc,
1962         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
1963         gfc_get_tbp_symtree): Moved here from other places.
1964         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
1965         class.c.
1966         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
1967         gfc_find_typebound_proc,gfc_find_typebound_user_op,
1968         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
1969         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
1970         * Make-lang.in: Add class.o.
1971         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
1972         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
1973         add_procs_to_declared_vtab,add_generic_specifics,
1974         add_generics_to_declared_vtab,gfc_find_derived_vtab,
1975         find_typebound_proc_uop,gfc_find_typebound_proc,
1976         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
1977         gfc_get_tbp_symtree): Move to class.c.
1978
1979 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1980
1981         * trans-types.c (gfc_init_types): Use build_function_type_list.
1982         (gfc_get_ppc_type): Likewise.
1983         * trans-decl.c (gfc_generate_constructors): Likewise.
1984         * f95-lang.c (build_builtin_fntypes): Likewise.
1985         (gfc_init_builtin_functions): Likewise.
1986         (DEF_FUNCTION_TYPE_0): Likewise.
1987         (DEF_FUNCTION_TYPE_1): Likewise.
1988         (DEF_FUNCTION_TYPE_2): Likewise.
1989         (DEF_FUNCTION_TYPE_3): Likewise.
1990         (DEF_FUNCTION_TYPE_4): Likewise.
1991         (DEF_FUNCTION_TYPE_5): Likewise.
1992         (DEF_FUNCTION_TYPE_6): Likewise.
1993         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
1994         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
1995  
1996 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1997
1998         * trans-array.c (gfc_trans_array_constructor_value): Use
1999         build_constructor instead of build_constructor_from_list.
2000         (gfc_build_constant_array_constructor): Likewise.
2001         * trans-decl.c (create_main_function): Likewise.
2002         * trans-stmt.c (gfc_trans_character_select): Likewise.
2003
2004 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2005
2006         PR fortran/44044
2007         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
2008         (resolve_fl_variable_derived): ... this place.
2009         (resolve_symbol): Make sure function symbols (and their result
2010         variables) are not resolved twice.
2011
2012 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
2013
2014         PR fortran/35779
2015         * array.c (match_array_list): Revert change from 2010-05-13.
2016
2017 2010-05-16  Richard Guenther  <rguenther@suse.de>
2018
2019         * trans-decl.c (module_htab_decls_hash): Revert last change.
2020
2021 2010-05-16  Richard Guenther  <rguenther@suse.de>
2022
2023         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
2024
2025 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2026
2027         * options.c (set_Wall): Remove special logic for Wuninitialized
2028         without -O.
2029
2030 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
2031
2032         PR fortran/44154
2033         PR fortran/42647
2034         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
2035         if branches.
2036
2037 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
2038
2039         PR fortran/43207
2040         PR fortran/43969
2041         * gfortran.h (gfc_class_null_initializer): New prototype.
2042         * expr.c (gfc_class_null_initializer): New function to build a NULL
2043         initializer for CLASS pointers.
2044         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
2045         containers. Remove default NULL initialization of $data component.
2046         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
2047         message.
2048         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
2049         Use new function 'gfc_class_null_initializer'.
2050         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
2051         class variables.
2052
2053 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2054
2055         PR fortran/44135
2056         * fortran/interface.c (get_sym_storage_size): Use signed instead of
2057         unsigned mpz_get_?i routines.
2058
2059 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2060
2061         * trans.c (trans_code): Set backend locus early.
2062         * trans-decl.c (gfc_get_fake_result_decl): Use source location
2063         of the function instead of current input_location.
2064
2065 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
2066
2067         PR fortran/35779
2068         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
2069         Updated all usages.
2070         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
2071         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
2072         iterators.
2073
2074 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2075
2076         PR fortran/44036
2077         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
2078         variable lists.
2079         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
2080         by reference dummy procedures or non-dummy procedure pointers.
2081         (gfc_omp_predetermined_sharing): Return
2082         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
2083
2084 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
2085
2086         PR fortran/43711
2087         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
2088         after OMP statement.
2089         (gfc_match_omp_critical): Likewise.
2090         (gfc_match_omp_flush): Likewise.
2091         (gfc_match_omp_workshare): Likewise.
2092         (gfc_match_omp_master): Likewise.
2093         (gfc_match_omp_ordered): Likewise.
2094         (gfc_match_omp_atomic): Likewise.
2095         (gfc_match_omp_barrier): Likewise.
2096         (gfc_match_omp_end_nowait): Likewise.
2097
2098 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
2099
2100         PR fortran/31820
2101         * resolve.c (validate_case_label_expr): Removed FIXME.
2102         (resolve_select): Raise default warning on case labels out of range
2103         of the case expression.
2104
2105 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
2106
2107         PR fortran/27866
2108         PR fortran/35003
2109         PR fortran/42809
2110         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
2111         about conversion warnings.
2112
2113 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
2114
2115         PR fortran/44044
2116         * match.c (gfc_match_select_type): Move error message to
2117         resolve_select_type.
2118         * resolve.c (resolve_select_type): Error message moved here from
2119         gfc_match_select_type. Correctly set type of temporary.
2120
2121 2010-05-10  Richard Guenther  <rguenther@suse.de>
2122
2123         * trans-decl.c (gfc_build_library_function_decl): Split out
2124         worker to ...
2125         (build_library_function_decl_1): ... this new function.
2126         Set a fnspec attribute if a specification was provided.
2127         (gfc_build_library_function_decl_with_spec): New function.
2128         (gfc_build_intrinsic_function_decls): Annotate internal_pack
2129         and internal_unpack.
2130
2131 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
2132
2133         PR fortran/40728
2134         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
2135         as external.
2136
2137 2010-05-07  Jason Merrill  <jason@redhat.com>
2138
2139         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
2140         to avoid -Wc++-compat warning.
2141
2142 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2143
2144         PR 40989
2145         * options.c (gfc_handle_option): Add argument kind.
2146         * gfortran.h (gfc_handle_option): Update declaration.
2147
2148 2010-05-06  Tobias Burnus  <burnus@net-b.de>
2149
2150         PR fortran/43985
2151         * trans-types.c (gfc_sym_type): Mark Cray pointees as
2152         GFC_POINTER_TYPE_P.
2153
2154 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
2155
2156         PR fortran/32331
2157         * resolve.c (traverse_data_list): Rephrase error message for
2158         non-constant bounds in data-implied-do.
2159
2160 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
2161
2162         PR fortran/24978
2163         * gfortran.h: Removed repeat count from constructor, removed
2164         all usages.
2165         * data.h (gfc_assign_data_value_range): Changed return value from
2166         void to gfc_try.
2167         * data.c (gfc_assign_data_value): Add location to constructor element.
2168         (gfc_assign_data_value_range): Call gfc_assign_data_value()
2169         for each element in range. Return early if an error was generated.
2170         * resolve.c (check_data_variable): Stop early if range assignment
2171         generated an error.
2172
2173 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
2174
2175         PR fortran/43696
2176         * resolve.c (resolve_fl_derived): Some fixes for class variables.
2177         * symbol.c (gfc_build_class_symbol): Add separate class container for
2178         class pointers.
2179
2180 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
2181
2182         PR fortran/43592
2183         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
2184
2185 2010-05-02  Tobias Burnus  <burnus@net-b.de>
2186
2187         PR fortran/18918
2188         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
2189         for lcobound, ucobound, image_index and this_image.
2190         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
2191         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
2192         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
2193         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
2194         functions.
2195         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
2196
2197 2010-04-30  Tobias Burnus  <burnus@net-b.de>
2198
2199         PR fortran/18918
2200         PR fortran/43931
2201         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
2202         calculation for array descriptor types.
2203
2204 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
2205
2206         PR fortran/43896
2207         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
2208         initializers for PPC members of the vtabs.
2209
2210 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
2211
2212         PR fortran/42274
2213         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
2214         attribute for all PPC members of the vtypes.
2215         (copy_vtab_proc_comps): Copy the correct interface.
2216         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
2217         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
2218         a dummy argument and make sure all PPC members of the vtab are
2219         initialized correctly.
2220         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
2221         in call to gfc_trans_assign_vtab_procs.
2222         * trans-stmt.c (gfc_trans_allocate): Ditto.
2223
2224 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
2225
2226         PR fortran/43326
2227         * resolve.c (resolve_typebound_function): Renamed
2228         resolve_class_compcall.Do all the detection of class references
2229         here.
2230         (resolve_typebound_subroutine): resolve_class_typebound_call
2231         renamed. Otherwise same as resolve_typebound_function.
2232         (gfc_resolve_expr): Call resolve_typebound_function.
2233         (resolve_code): Call resolve_typebound_subroutine.
2234
2235 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
2236
2237         PR fortran/43492
2238         * resolve.c (resolve_typebound_generic_call): For CLASS methods
2239         pass back the specific symtree name, rather than the target
2240         name.
2241
2242 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
2243
2244         PR fortran/42353
2245         * resolve.c (resolve_structure_cons): Make the initializer of
2246         the vtab component 'extends' the same type as the component.
2247
2248 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2249
2250         PR fortran/42680
2251         * interface.c (check_interface1): Pass symbol name rather than NULL to
2252         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
2253         trap MULL. (gfc_compare_derived_types): Revert previous change
2254         incorporated incorrectly during merge from trunk, r155778.
2255         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
2256         than NULL to gfc_compare_interfaces.
2257         * symbol.c (add_generic_specifics): Likewise.
2258
2259 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
2260
2261         PR fortran/42353
2262         * interface.c (gfc_compare_derived_types): Add condition for vtype.
2263         * symbol.c (gfc_find_derived_vtab): Sey access to private.
2264         (gfc_find_derived_vtab): Likewise.
2265         * module.c (ab_attribute): Add enumerator AB_VTAB.
2266         (mio_symbol_attribute): Use new attribute, AB_VTAB.
2267         (check_for_ambiguous): Likewise.
2268
2269 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
2270             Janus Weil  <janus@gcc.gnu.org>
2271
2272         PR fortran/41829
2273         * trans-expr.c (select_class_proc): Remove function.
2274         (conv_function_val): Delete reference to previous.
2275         (gfc_conv_derived_to_class): Add second argument to the call to
2276         gfc_find_derived_vtab.
2277         (gfc_conv_structure): Exclude proc_pointer components when
2278         accessing $data field of class objects.
2279         (gfc_trans_assign_vtab_procs): New function.
2280         (gfc_trans_class_assign): Add second argument to the call to
2281         gfc_find_derived_vtab.
2282         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
2283         implement holding off searching for the vptr derived type.
2284         (add_proc_component): New function.
2285         (add_proc_comps): New function.
2286         (add_procs_to_declared_vtab1): New function.
2287         (copy_vtab_proc_comps): New function.
2288         (add_procs_to_declared_vtab): New function.
2289         (void add_generic_specifics): New function.
2290         (add_generics_to_declared_vtab): New function.
2291         (gfc_find_derived_vtab): Add second argument to the call to
2292         gfc_find_derived_vtab. Add the calls to
2293         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
2294         * decl.c (build_sym, build_struct): Use new arg in calls to
2295         gfc_build_class_symbol.
2296         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
2297         definition of struct gfc_class_esym_list. Modify prototypes
2298         of gfc_build_class_symbol and gfc_find_derived_vtab.
2299         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
2300         call to gfc_find_derived_vtab.
2301         * module.c : Add the vtype attribute.
2302         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
2303         * resolve.c (resolve_typebound_generic_call): Add second arg
2304         to pass along the generic name for class methods.
2305         (resolve_typebound_call): The same.
2306         (resolve_compcall): Use the second arg to carry the generic
2307         name from the above. Remove the reference to class_esym.
2308         (check_members, check_class_members, resolve_class_esym,
2309         hash_value_expr): Remove functions.
2310         (resolve_class_compcall, resolve_class_typebound_call): Modify
2311         to use vtable rather than member by member calls.
2312         (gfc_resolve_expr): Modify second arg in call to
2313         resolve_compcall.
2314         (resolve_select_type): Add second arg in call to
2315         gfc_find_derived_vtab.
2316         (resolve_code): Add second arg in call resolve_typebound_call.
2317         (resolve_fl_derived): Exclude vtypes from check for late
2318         procedure definitions. Likewise for checking of explicit
2319         interface and checking of pass arg.
2320         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
2321         calls to gfc_find_derived_vtab.
2322         * match.c (select_type_set_tmp): Use new arg in call to
2323         gfc_build_class_symbol.
2324         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
2325         necessary.
2326         * parse.c (endType): Finish incomplete classes.
2327
2328 2010-04-28  Tobias Burnus  <burnus@net-b.de>
2329
2330         PR fortran/18918
2331         PR fortran/43919
2332         * simplify.c (simplify_cobound): Handle scalar coarrays.
2333
2334 2010-04-27  Tobias Burnus  <burnus@net-b.de>
2335
2336         * gfc-internals.texi: Update copyright year.
2337         * gfortran.texi: Ditto.
2338         * invoke.texi: Ditto.
2339
2340 2010-04-27  Tobias Burnus  <burnus@net-b.de>
2341
2342         PR fortran/18918
2343         * resolve.c (resolve_allocate_expr): Allow array coarrays.
2344         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
2345         * trans-types.c (gfc_get_array_type_bounds,
2346         gfc_get_array_descriptor_base): Add corank argument.
2347         * trans-array.c (gfc_array_init_size): Handle corank.
2348         (gfc_trans_create_temp_array, gfc_array_allocate,
2349         gfc_conv_expr_descriptor): Add corank argument to call.
2350         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
2351
2352 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
2353
2354         PR fortran/30073
2355         PR fortran/43793
2356         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
2357         of mucking with a tree directly.
2358
2359 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2360
2361         PR fortran/43832
2362         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
2363         gfc_error with new error message.
2364
2365 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
2366
2367         PR fortran/43841
2368         PR fortran/43843
2369         * trans-expr.c (gfc_conv_expr): Supply an address expression for
2370         GFC_SS_REFERENCE.
2371         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
2372         GFC_SS_REFERENCE.
2373         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
2374         than the address of a GFC_SS_REFERENCE.
2375         * trans.h : Change comment on GFC_SS_REFERENCE. 
2376
2377 2010-04-22  Richard Guenther  <rguenther@suse.de>
2378
2379         PR fortran/43829
2380         * resolve.c (gfc_resolve_index): Wrap around ...
2381         (gfc_resolve_index_1): ... this.  Add parameter to allow
2382         any integer kind index type.
2383         (resolve_array_ref): Allow any integer kind for the start
2384         index of an array ref.
2385
2386 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2387
2388         PR fortran/43836
2389         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
2390         the decl.
2391
2392 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
2393
2394         * intrinsic.c (sort_actual): Remove 'is' in error message.
2395
2396 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
2397
2398         PR fortran/43227
2399         * resolve.c (resolve_fl_derived): If a component character
2400         length has not been resolved, do so now.
2401         (resolve_symbol): The same as above for a symbol character
2402         length.
2403         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
2404         not needed for a character valued, procedure pointer.
2405
2406         PR fortran/43266
2407         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
2408         not found, return FAILURE rather than ICEing.
2409
2410 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2411
2412         PR fortran/43339
2413         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
2414         sequential loops private in the innermost containing task region.
2415
2416 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2417
2418         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
2419         to build_common_tree_nodes.
2420
2421 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
2422
2423         PR fortran/31538
2424         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
2425         gfc_msg_bounds by using 'Array bound mismatch' directly.
2426         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
2427         error message to include the mismatch in the extent of array bound.
2428         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
2429         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
2430
2431 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2432
2433         * gfortran.texi: Update information on temporary file locations.
2434
2435 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2436
2437         * trans-decl.c (gfc_build_qualified_array): Ensure
2438         ubound.N and lbound.N artificial variable names don't appear
2439         in debug info.
2440
2441 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
2442
2443         PR fortran/30073
2444         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
2445         block of code.  Set name to the variable associated with the descriptor.
2446
2447 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
2448
2449         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
2450         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
2451
2452 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2453
2454         * intrinsic.texi: Add the missing specific name of intrinsic
2455         procedure where the specific name is identical to the generic name.
2456         Fix inconsistent or mismatch in the argument names in intrinsic
2457         procedure descriptions.  Add the SCALAR allocatable description to
2458         ALLOCATED.
2459
2460 2010-04-14  Tobias Burnus  <burnus@net-b.de>
2461
2462         PR fortran/18918
2463         * array.c (gfc_find_array_ref): Handle codimensions.
2464         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
2465         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
2466         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
2467         New functions.
2468         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
2469         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
2470         GFC_ISYM_UCOBOUND.
2471         * intrinsic.h (add_functions): Add this_image, image_index,
2472         lcobound and ucobound intrinsics.
2473         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
2474         gfc_check_image_index, gfc_check_this_image,
2475         gfc_simplify_image_index, gfc_simplify_lcobound,
2476         gfc_simplify_this_image, gfc_simplify_ucobound):
2477         New function prototypes.
2478         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
2479         IMAGE_INDEX): Document new intrinsic functions.
2480         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
2481         error fatal.
2482         * simplify.c (simplify_bound_dim): Handle coarrays.
2483         (simplify_bound): Update simplify_bound_dim call.
2484         (gfc_simplify_num_images): Add -fcoarray=none check.
2485         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
2486         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
2487
2488 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2489
2490         PR fortran/43747
2491         * constructor.c: Fix typo in comment.
2492         * expr.c (find_array_section): Add check for max array limit.
2493
2494 2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>
2495
2496         PR bootstrap/31400
2497         * gfortranspec.c (lookup_option): Check for -static and return
2498         OPTION_static.
2499         (lang_specific_driver): Break when OPTION_static is discovered.
2500
2501 2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2502
2503         * array.c (extract_element): Restore function from trunk.
2504         (gfc_get_array_element): Restore function from trunk.
2505         (gfc_expand_constructor): Restore check against
2506         flag_max_array_constructor.
2507         * constructor.c (node_copy_and_append): Delete unused.
2508         * gfortran.h: Delete comment and extra include.
2509         * constructor.h: Bump copyright and clean up TODO comments.
2510         * resolve.c: Whitespace.
2511
2512 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2513
2514         * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
2515         with direct access access to elements. Adjusted prototype, fixed all
2516         callers.
2517         (gfc_simplify_dot_product): Removed duplicate check for zero-sized
2518         array.
2519         (gfc_simplify_matmul): Removed usage of ADVANCE macro.
2520         (gfc_simplify_spread): Removed workaround, directly insert elements
2521         at a given array position.
2522         (gfc_simplify_transpose): Likewise.
2523         (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
2524         function calls.
2525         (gfc_simplify_unpack): Likewise.
2526
2527 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2528
2529         * simplify.c (only_convert_cmplx_boz): Renamed to ...
2530         (convert_boz): ... this and moved to start of file.
2531         (gfc_simplify_abs): Whitespace fix.
2532         (gfc_simplify_acos): Whitespace fix.
2533         (gfc_simplify_acosh): Whitespace fix.
2534         (gfc_simplify_aint): Whitespace fix.
2535         (gfc_simplify_dint): Whitespace fix.
2536         (gfc_simplify_anint): Whitespace fix.
2537         (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
2538         (gfc_simplify_dnint): Whitespace fix.
2539         (gfc_simplify_asin): Whitespace fix.
2540         (gfc_simplify_asinh): Moved creation of result-expr out of switch.
2541         (gfc_simplify_atan): Likewise.
2542         (gfc_simplify_atanh): Whitespace fix.
2543         (gfc_simplify_atan2): Whitespace fix.
2544         (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
2545         (gfc_simplify_bessel_j1): Likewise.
2546         (gfc_simplify_bessel_jn): Likewise.
2547         (gfc_simplify_bessel_y0): Likewise.
2548         (gfc_simplify_bessel_y1): Likewise.
2549         (gfc_simplify_bessel_yn): Likewise.
2550         (gfc_simplify_ceiling): Reorderd statements.
2551         (simplify_cmplx): Use convert_boz(), check for constant arguments.
2552         Whitespace fix.
2553         (gfc_simplify_cmplx): Use correct default kind. Removed check for
2554         constant arguments.
2555         (gfc_simplify_complex): Replaced if-gate. Removed check for
2556         constant arguments.
2557         (gfc_simplify_conjg): Whitespace fix.
2558         (gfc_simplify_cos): Whitespace fix.
2559         (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
2560         (gfc_simplify_dcmplx): Removed check for constant arguments.
2561         (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
2562         (gfc_simplify_digits): Whitespace fix.
2563         (gfc_simplify_dim): Whitespace fix.
2564         (gfc_simplify_dprod): Reordered statements.
2565         (gfc_simplify_erf): Whitespace fix.
2566         (gfc_simplify_erfc): Whitespace fix.
2567         (gfc_simplify_epsilon): Whitespace fix.
2568         (gfc_simplify_exp): Whitespace fix.
2569         (gfc_simplify_exponent): Use convert_boz().
2570         (gfc_simplify_floor): Reorderd statements.
2571         (gfc_simplify_gamma): Whitespace fix.
2572         (gfc_simplify_huge): Whitespace fix.
2573         (gfc_simplify_iand): Whitespace fix.
2574         (gfc_simplify_ieor): Whitespace fix.
2575         (simplify_intconv): Use gfc_convert_constant().
2576         (gfc_simplify_int): Use simplify_intconv().
2577         (gfc_simplify_int2): Reorderd statements.
2578         (gfc_simplify_idint): Reorderd statements.
2579         (gfc_simplify_ior): Whitespace fix.
2580         (gfc_simplify_ishftc): Removed duplicate type check.
2581         (gfc_simplify_len): Use range_check() instead of manual range check.
2582         (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
2583         (gfc_simplify_log): Whitespace fix.
2584         (gfc_simplify_log10): Whitespace fix.
2585         (gfc_simplify_minval): Whitespace fix.
2586         (gfc_simplify_maxval): Whitespace fix.
2587         (gfc_simplify_mod): Whitespace fix.
2588         (gfc_simplify_modulo): Whitespace fix.
2589         (simplify_nint): Reorderd statements.
2590         (gfc_simplify_not): Whitespace fix.
2591         (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
2592         (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
2593         (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
2594         (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
2595         (gfc_simplify_realpart): Whitespace fix.
2596         (gfc_simplify_selected_char_kind): Removed unused result-variable.
2597         (gfc_simplify_selected_int_kind): Removed unused result-variable.
2598         (gfc_simplify_selected_real_kind): Removed unused result-variable.
2599         (gfc_simplify_sign): Whitespace fix.
2600         (gfc_simplify_sin): Whitespace fix.
2601         (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
2602         (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
2603         (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
2604         (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
2605         (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
2606
2607 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2608
2609         * gfortran.h (gfc_start_constructor): Removed.
2610         (gfc_get_array_element): Removed.
2611         * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr 
2612         instead. Fixed all callers.
2613         (extract_element): Removed.
2614         (gfc_expand_constructor): Temporarily removed check for
2615         max-array-constructor. Will be re-introduced later if still required.
2616         (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
2617         instead. Fixed all callers.
2618         * expr.c (find_array_section): Replaced manual lookup of elements
2619         by gfc_constructor_lookup.
2620
2621 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2622
2623         * gfortran.h (gfc_get_null_expr): New prototype.
2624         (gfc_get_operator_expr): New prototype.
2625         (gfc_get_character_expr): New prototype.
2626         (gfc_get_iokind_expr): New prototype.
2627         * expr.c (gfc_get_null_expr): New.
2628         (gfc_get_character_expr): New.
2629         (gfc_get_iokind_expr): New.
2630         (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
2631         * matchexp.c (build_node): Renamed and moved to
2632         expr.c (gfc_get_operator_expr). Reordered arguments to match 
2633         other functions. Fixed all callers.
2634         (gfc_get_parentheses): Use specific function to build expr.
2635         * array.c (gfc_match_array_constructor): Likewise.
2636         * arith.c (eval_intrinsic): Likewise.
2637         (gfc_hollerith2int): Likewise.
2638         (gfc_hollerith2real): Likewise.
2639         (gfc_hollerith2complex): Likewise.
2640         (gfc_hollerith2logical): Likewise.
2641         * data.c (create_character_intializer): Likewise.
2642         * decl.c (gfc_match_null): Likewise.
2643         (enum_initializer): Likewise.
2644         * io.c (gfc_match_format): Likewise.
2645         (match_io): Likewise.
2646         * match.c (gfc_match_nullify): Likewise.
2647         * primary.c (match_string_constant): Likewise.
2648         (match_logical_constant): Likewise.
2649         (build_actual_constructor): Likewise.
2650         * resolve.c (build_default_init_expr): Likewise.
2651         * symbol.c (generate_isocbinding_symbol): Likewise.
2652         (gfc_build_class_symbol): Likewise.
2653         (gfc_find_derived_vtab): Likewise.
2654         * simplify.c (simplify_achar_char): Likewise.
2655         (gfc_simplify_adjustl): Likewise.
2656         (gfc_simplify_adjustr): Likewise.
2657         (gfc_simplify_and): Likewise.
2658         (gfc_simplify_bit_size): Likewise.
2659         (gfc_simplify_is_iostat_end): Likewise.
2660         (gfc_simplify_is_iostat_eor): Likewise.
2661         (gfc_simplify_isnan): Likewise.
2662         (simplify_bound): Likewise.
2663         (gfc_simplify_leadz): Likewise.
2664         (gfc_simplify_len_trim): Likewise.
2665         (gfc_simplify_logical): Likewise.
2666         (gfc_simplify_maxexponent): Likewise.
2667         (gfc_simplify_minexponent): Likewise.
2668         (gfc_simplify_new_line): Likewise.
2669         (gfc_simplify_null): Likewise.
2670         (gfc_simplify_or): Likewise.
2671         (gfc_simplify_precision): Likewise.
2672         (gfc_simplify_repeat): Likewise.
2673         (gfc_simplify_scan): Likewise.
2674         (gfc_simplify_size): Likewise.
2675         (gfc_simplify_trailz): Likewise.
2676         (gfc_simplify_trim): Likewise.
2677         (gfc_simplify_verify): Likewise.
2678         (gfc_simplify_xor): Likewise.
2679         * trans-io.c (build_dt): Likewise.
2680         (gfc_new_nml_name_expr): Removed.
2681
2682 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2683
2684         * arith.h (gfc_constant_result): Removed prototype.
2685         * constructor.h (gfc_build_array_expr): Removed prototype.
2686         (gfc_build_structure_constructor_expr): Removed prototype.
2687         * gfortran.h (gfc_int_expr): Removed prototype.
2688         (gfc_logical_expr): Removed prototype.
2689         (gfc_get_array_expr): New prototype.
2690         (gfc_get_structure_constructor_expr): New prototype.
2691         (gfc_get_constant_expr): New prototype.
2692         (gfc_get_int_expr): New prototype.
2693         (gfc_get_logical_expr): New prototype.
2694         * arith.c (gfc_constant_result): Moved and renamed to
2695         expr.c (gfc_get_constant_expr). Fixed all callers.
2696         * constructor.c (gfc_build_array_expr): Moved and renamed to
2697         expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
2698         and kind. Fixed all callers.
2699         (gfc_build_structure_constructor_expr): Moved and renamed to
2700         expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
2701         to type and kind. Fixed all callers.
2702         * expr.c (gfc_logical_expr): Renamed to ...
2703         (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
2704         (gfc_int_expr): Renamed to ...
2705         (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
2706         callers.
2707         (gfc_get_constant_expr): New.
2708         (gfc_get_array_expr): New.
2709         (gfc_get_structure_constructor_expr): New.
2710         * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
2711         instead.
2712
2713 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2714
2715         * constructor.h: New.
2716         * constructor.c: New.
2717         * Make-lang.in: Add new files to F95_PARSER_OBJS.
2718         * arith.c (reducy_unary): Use constructor API.
2719         (reduce_binary_ac): Likewise.
2720         (reduce_binary_ca): Likewise.
2721         (reduce_binary_aa): Likewise.
2722         * check.c (gfc_check_pack): Likewise.
2723         (gfc_check_reshape): Likewise.
2724         (gfc_check_unpack): Likewise.
2725         * decl.c (add_init_expr_to_sym): Likewise.
2726         (build_struct): Likewise.
2727         * dependency.c (gfc_check_dependency): Likewise.
2728         (contains_forall_index_p): Likewise.
2729         * dump-parse-tree.c (show_constructor): Likewise.
2730         * expr.c (free_expr0): Likewise.
2731         (gfc_copy_expr): Likewise.
2732         (gfc_is_constant_expr): Likewise.
2733         (simplify_constructor): Likewise.
2734         (find_array_element): Likewise.
2735         (find_component_ref): Likewise.
2736         (find_array_section): Likewise.
2737         (find_substring_ref): Likewise.
2738         (simplify_const_ref): Likewise.
2739         (scalarize_intrinsic_call): Likewise.
2740         (check_alloc_comp_init): Likewise.
2741         (gfc_default_initializer): Likewise.
2742         (gfc_traverse_expr): Likewise.
2743         * iresolve.c (check_charlen_present): Likewise.
2744         (gfc_resolve_reshape): Likewise.
2745         (gfc_resolve_transfer): Likewise.
2746         * module.c (mio_constructor): Likewise.
2747         * primary.c (build_actual_constructor): Likewise.
2748         (gfc_match_structure_constructor): Likewise.
2749         * resolve.c (resolve_structure_cons): Likewise.
2750         * simplify.c (is_constant_array_expr): Likewise.
2751         (init_result_expr): Likewise.
2752         (transformational_result): Likewise.
2753         (simplify_transformation_to_scalar): Likewise.
2754         (simplify_transformation_to_array): Likewise.
2755         (gfc_simplify_dot_product): Likewise.
2756         (simplify_bound): Likewise.
2757         (simplify_matmul): Likewise.
2758         (simplify_minval_maxval): Likewise.
2759         (gfc_simplify_pack): Likewise.
2760         (gfc_simplify_reshape): Likewise.
2761         (gfc_simplify_shape): Likewise.
2762         (gfc_simplify_spread): Likewise.
2763         (gfc_simplify_transpose): Likewise.
2764         (gfc_simplify_unpack): Likewise.q
2765         (gfc_convert_constant): Likewise.
2766         (gfc_convert_char_constant): Likewise.
2767         * target-memory.c (size_array): Likewise.
2768         (encode_array): Likewise.
2769         (encode_derived): Likewise.
2770         (interpret_array): Likewise.
2771         (gfc_interpret_derived): Likewise.
2772         (expr_to_char): Likewise.
2773         (gfc_merge_initializers): Likewise.
2774         * trans-array.c (gfc_get_array_constructor_size): Likewise.
2775         (gfc_trans_array_constructor_value): Likewise.
2776         (get_array_ctor_strlen): Likewise.
2777         (gfc_constant_array_constructor_p): Likewise.
2778         (gfc_build_constant_array_constructor): Likewise.
2779         (gfc_trans_array_constructor): Likewise.
2780         (gfc_conv_array_initializer): Likewise.
2781         * trans-decl.c (check_constant_initializer): Likewise.
2782         * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
2783         (gfc_apply_interface_mapping_to_cons): Likewise.
2784         (gfc_trans_structure_assign): Likewise.
2785         (gfc_conv_structure): Likewise.
2786         * array.c (check_duplicate_iterator): Likewise.
2787         (match_array_list): Likewise.
2788         (match_array_cons_element): Likewise.
2789         (gfc_match_array_constructor): Likewise.
2790         (check_constructor_type): Likewise.
2791         (check_constructor): Likewise.
2792         (expand): Likewise.
2793         (expand_constructor): Likewise.
2794         (extract_element): Likewise.
2795         (gfc_expanded_ac): Likewise.
2796         (resolve_array_list): Likewise.
2797         (gfc_resolve_character_array_constructor): Likewise.
2798         (copy_iterator): Renamed to ...
2799         (gfc_copy_iterator): ... this.
2800         (gfc_append_constructor): Removed.
2801         (gfc_insert_constructor): Removed unused function.
2802         (gfc_get_constructor): Removed.
2803         (gfc_free_constructor): Removed.
2804         (qgfc_copy_constructor): Removed.
2805         * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
2806         Removed all references. Replaced constructor list by splay-tree.
2807         (struct gfc_constructor): Removed member 'next', moved 'offset' from
2808         the inner struct, added member 'base'.
2809         (gfc_append_constructor): Removed prototype.
2810         (gfc_insert_constructor): Removed prototype.
2811         (gfc_get_constructor): Removed prototype.
2812         (gfc_free_constructor): Removed prototype.
2813         (qgfc_copy_constructor): Removed prototype.
2814         (gfc_copy_iterator): New prototype.
2815         * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
2816
2817 2010-04-10  Tobias Burnus  <burnus@net-b.de>
2818
2819         PR fortran/43591
2820         * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
2821         proc-pointers and type-bound procedures.
2822         (gfc_specification_expr): Check proc-pointers for pureness.
2823
2824 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
2825
2826         PR bootstrap/43684
2827         * gfortranspec.c (lang_specific_driver): Do not expose vars 
2828         only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
2829         for such.
2830
2831 2010-04-09  Tobias Burnus  <burnus@net-b.de>
2832
2833         PR fortran/18918
2834         * decl.c (variable_decl, match_attr_spec): Fix setting the array
2835         spec.
2836         * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
2837         * data.c (gfc_assign_data_value): Ditto.
2838         * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
2839         (gfc_traverse_expr): Traverse also through codimension expressions.
2840         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
2841         gfc_has_ultimate_pointer): New functions.
2842         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
2843         (gfc_array_ref): Add codimen.
2844         (gfc_array_ref): Add in_allocate.
2845         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
2846         gfc_has_ultimate_pointer): Add prototypes.
2847         * interface.c (compare_parameter, compare_actual_formal,
2848         check_intents): Add coarray constraints.
2849         * match.c (gfc_match_iterator): Add coarray constraint.
2850         * match.h (gfc_match_array_ref): Update interface.
2851         * primary.c (gfc_match_varspec): Handle codimensions.
2852         * resolve.c (coarray_alloc, inquiry_argument): New static variables.
2853         (check_class_members): Return gfc_try instead for error recovery.
2854         (resolve_typebound_function,resolve_typebound_subroutine,
2855         check_members): Handle return value of check_class_members.
2856         (resolve_structure_cons, resolve_actual_arglist, resolve_function,
2857         check_dimension, compare_spec_to_ref, resolve_array_ref,
2858         resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
2859         resolve_allocate_expr, resolve_ordinary_assign): Add coarray
2860         support.
2861         * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
2862         Skip over coarray refs.
2863         (gfc_array_allocate) Add support for references containing coindexes.
2864         * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
2865         (gfc_map_intrinsic_function): Ignore codimensions.
2866
2867 2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>
2868
2869         PR fortran/28039
2870         * io.c (check_format_string):  Added check for additional non 
2871         blank characters after the format string was successfully 
2872         parsed.
2873         * io.c (check_format): Changed the error messages for positive
2874         int required and period required to drop through the error logic
2875         and report with gfc_error instead of gfc_error_now.  Corrected
2876         format postion for hollerith strings.
2877
2878 2010-04-08  Tobias Burnus  <burnus@net-b.de>
2879
2880         * module.c (use_iso_fortran_env_module): Fix standard check.
2881
2882 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2883
2884         * parse.c (parse_derived, parse_enum): Avoid set but not used
2885         warning.
2886
2887 2010-04-07  Janne Blomqvist  <jb@gcc.gnu.org>
2888
2889         PR fortran/40539
2890         * gfortran.texi: Add section about representation of
2891         LOGICAL variables.
2892
2893 2010-04-07  Simon Baldwin  <simonb@google.com>
2894
2895         * cpp.c (cb_cpp_error): Add warning reason argument, set a value
2896         for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
2897
2898 2010-04-07  Richard Guenther  <rguenther@suse.de>
2899
2900         * options.c (gfc_init_options): Do not set.
2901
2902 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2903
2904         PR fortran/18918
2905         * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
2906         * match.c (gfc_match_critical, sync_statement): Ditto.
2907         * gfortran.h (gfc_fcoarray): New enum.
2908         (gfc_option_t): Use it.
2909         * lang.opt (fcoarray): Add new flag.
2910         * invoke.texi (fcoarray): Document it.
2911         * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
2912         (gfc_handle_coarray_option): New function.
2913
2914 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2915
2916         PR fortran/18918
2917         * gfortran.h (gfc_array_spec): Add cotype.
2918         * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
2919         and defer error diagnostic.
2920         * resolve.c (resolve_fl_derived): Add missing check.
2921         (resolve_symbol): Add cotype/type check.
2922         * parse.c (parse_derived): Fix setting of coarray_comp.
2923
2924 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2925
2926         PR fortran/18918
2927         * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
2928         match_array_element_spec,gfc_copy_array_spec,
2929         gfc_compare_array_spec): Include corank.
2930         (match_array_element_spec,gfc_set_array_spec): Support codimension.
2931         * decl.c (build_sym,build_struct,variable_decl,
2932         match_attr_spec,attr_decl1,cray_pointer_decl,
2933         gfc_match_volatile): Add codimension.
2934         (gfc_match_codimension): New function.
2935         * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
2936         * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
2937         (gfc_add_codimension): New function prototype.
2938         * match.h (gfc_match_codimension): New function prototype.
2939         (gfc_match_array_spec): Update prototype
2940         * match.c (gfc_match_common): Update gfc_match_array_spec call.
2941         * module.c (MOD_VERSION): Bump.
2942         (mio_symbol_attribute): Support coarray attributes.
2943         (mio_array_spec): Add corank support.
2944         * parse.c (decode_specification_statement,decode_statement,
2945         parse_derived): Add coarray support.
2946         * resolve.c (resolve_formal_arglist, was_declared,
2947         is_non_constant_shape_array, resolve_fl_variable,
2948         resolve_fl_derived, resolve_symbol): Add coarray support.
2949         * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
2950         gfc_build_class_symbol): Add coarray support.
2951         (gfc_add_codimension): New function.
2952
2953 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2954
2955         PR fortran/18918
2956         * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
2957         atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
2958         stat_locked_other_image, stat_stopped_image and stat_unlocked of
2959         Fortran 2008.
2960         * intrinsic.texi (iso_fortran_env): Ditto.
2961         * libgfortran.h (libgfortran_stat_codes): New enum.
2962         * module.c (use_iso_fortran_env_module): Honour -std= when loading
2963         constants from the intrinsic module.
2964
2965 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2966
2967         PR fortran/39997
2968         * intrinsic.c (add_functions): Add num_images.
2969         * decl.c (gfc_match_end): Handle END CRITICAL.
2970         * intrinsic.h (gfc_simplify_num_images): Add prototype.
2971         * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
2972         and SYNC.
2973         * gfortran.h (gfc_statement): Add enum items for those.
2974         (gfc_exec_op) Ditto.
2975         (gfc_isym_id): Add num_images.
2976         * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
2977         (gfc_trans_sync,gfc_trans_critical): New functions.
2978         * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
2979         gfc_trans_critical): Add/update prototypes.
2980         * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
2981         and SYNC statements.
2982         * trans.h (gfor_fndecl_error_stop_string) Add variable.
2983         * resolve.c (resolve_sync): Add function.
2984         (gfc_resolve_blocks): Handle CRITICAL.
2985         (resolve_code): Handle CRITICAL, ERROR STOP,
2986         (resolve_branch): Add CRITICAL constraint check.
2987         and SYNC statements.
2988         * st.c (gfc_free_statement): Add new statements.
2989         * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
2990         (gfc_build_builtin_function_decls): Initialize it.
2991         * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
2992         (gfc_match_critical, gfc_match_error_stop, sync_statement,
2993         gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
2994         New functions.
2995         (match_exit_cycle): Handle CRITICAL constraint.
2996         (gfc_match_stopcode): Handle ERROR STOP.
2997         * match.h (gfc_match_critical, gfc_match_error_stop,
2998         gfc_match_sync_all, gfc_match_sync_images,
2999         gfc_match_sync_memory): Add prototype.
3000         * parse.c (decode_statement, gfc_ascii_statement,
3001         parse_executable): Handle new statements.
3002         (parse_critical_block): New function.
3003         * parse.h (gfc_compile_state): Add COMP_CRITICAL.
3004         * intrinsic.texi (num_images): Document new function.
3005         * simplify.c (gfc_simplify_num_images): Add function.
3006
3007 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3008
3009         PR fortran/43178
3010         * trans-array.c (gfc_conv_expr_descriptor): Update
3011         gfc_trans_scalar_assign call.
3012         (has_default_initializer): New function.
3013         (gfc_trans_deferred_array): Nullify less often.
3014         * trans-expr.c (gfc_conv_subref_array_arg,
3015         gfc_trans_subcomponent_assign): Update call to
3016         gfc_trans_scalar_assign.
3017         (gfc_trans_scalar_assign): Add parameter and pass it on.
3018         (gfc_trans_assignment_1): Optionally, do not dealloc before
3019         assignment.
3020         * trans-openmp.c (gfc_trans_omp_array_reduction): Update
3021         call to gfc_trans_scalar_assign.
3022         * trans-decl.c (gfc_get_symbol_decl): Do not always apply
3023         initializer to static variables.
3024         (gfc_init_default_dt): Add dealloc parameter and pass it on.
3025         * trans-stmt.c (forall_make_variable_temp,
3026         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
3027         gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
3028         gfc_trans_allocate): Update gfc_trans_assignment call.
3029         * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
3030         gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
3031         parameter to prototype.
3032
3033 2010-03-31  Paul Thomas  <pault@gcc.gnu.org>
3034
3035         * ioparm.def : Update copyright.
3036         * lang.opt : ditto
3037         * trans-array.c : ditto
3038         * trans-array.h : ditto
3039         * expr.c: ditto
3040         * trans-types.c: ditto
3041         * dependency.c : ditto
3042         * gfortran.h : ditto
3043         * options.c : ditto
3044         * trans-io.c : ditto
3045         * trans-intrinsic.c : ditto
3046         * libgfortran.h : ditto
3047         * invoke.texi : ditto
3048         * intrinsic.texi : ditto
3049         * trans.c : ditto
3050         * trans.h : ditto
3051         * intrinsic.c : ditto
3052         * interface.c : ditto
3053         * iresolve.c : ditto
3054         * trans-stmt.c : ditto
3055         * trans-stmt.h : ditto
3056         * parse,c : ditto
3057         * match.h : ditto
3058         * error.c : ditto
3059
3060 2010-03-20  Paul Thomas  <pault@gcc.gnu.org>
3061
3062         PR fortran/43450
3063         * trans-decl.c (gfc_create_module_variable): With -fwhole-file
3064         do not assert the context of derived types.
3065
3066 2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3067
3068         PR fortran/43409
3069         * ioparm.def: Change inquire size variable to type pointer to
3070         GFC_IO_INT type.
3071
3072 2010-03-18  Paul Thomas  <pault@gcc.gnu.org>
3073
3074         PR fortran/43039
3075         * trans-expr.c (conv_parent_component_references): Ensure that
3076         'dt' has a backend_decl.
3077
3078         PR fortran/43043
3079         * trans-expr.c (gfc_conv_structure): Ensure that the derived
3080         type has a backend_decl.
3081
3082         PR fortran/43044
3083         * resolve.c (resolve_global_procedure): Check that the 'cl'
3084         structure is not NULL.
3085
3086 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
3087
3088         * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
3089         redundant tab.
3090
3091 2010-03-17  Tobias Burnus  <burnus@net-b.de>
3092
3093         PR fortran/43331
3094         * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
3095         gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
3096         check.
3097         * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
3098         pointees as having explizit size.
3099         * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
3100         check.
3101         * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
3102         (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
3103         * resolve.c (resolve_symbol): Handle cp_was_assumed.
3104         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
3105         (gfc_finish_var_decl): Don't mark Cray pointees as restricted
3106         pointers.
3107
3108 2010-03-14  Tobias Burnus  <burnus@net-b.de>
3109
3110         PR fortran/43362
3111         * resolve.c (resolve_structure_cons): Add missing PURE constraint.
3112         (resolve_ordinary_assign): Add check to avoid segfault.
3113
3114 2010-03-12  Paul Thomas  <pault@gcc.gnu.org>
3115
3116         PR fortran/43291
3117         PR fortran/43326
3118         * resolve.c (resolve_compcall): Add new boolean dummy argument
3119         'class_members'. Only resolve expression at end if false.
3120         Remove redundant, static variable 'class_object'.
3121         (check_class_members): Add extra argument to call of
3122         resolve_compcall.
3123         (resolve_typebound_function): Renamed resolve_class_compcall.
3124         Do all the detection of class references here. Correct calls to
3125         resolve_compcall for extra argument.
3126         (resolve_typebound_subroutine): resolve_class_typebound_call
3127         renamed. Otherwise same as resolve_typebound_function.
3128         (gfc_resolve_expr): Call resolve_typebound_function.
3129         (resolve_code): Call resolve_typebound_subroutine.
3130
3131 2010-03-10  Tobias Burnus  <burnus@net-b.de
3132
3133         PR fortran/43303
3134         * symbol.c (get_iso_c_sym): Set sym->result.
3135
3136 2010-03-08  Janus Weil  <janus@gcc.gnu.org>
3137
3138         PR fortran/43256
3139         * resolve.c (resolve_compcall): Don't set 'value.function.name' here
3140         for TBPs, otherwise they will not be resolved properly.
3141         (resolve_function): Use 'value.function.esym' instead of
3142         'value.function.name' to check if we're dealing with a TBP.
3143         (check_class_members): Set correct type of passed object for all TBPs,
3144         not only generic ones, except if the type is abstract.
3145
3146 2010-03-04  Janus Weil  <janus@gcc.gnu.org>
3147
3148         PR fortran/43244
3149         * decl.c (gfc_match_final_decl): Make sure variable names starting with
3150         'final...' are not misinterpreted as FINAL statements.
3151
3152 2010-03-03  Paul Thomas  <pault@gcc.gnu.org>
3153
3154         PR fortran/43243
3155         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
3156         allocatable ultimate components do not need temporaries, whilst
3157         ultimate pointer components do.
3158
3159 2010-03-03  Janus Weil  <janus@gcc.gnu.org>
3160
3161         PR fortran/43169
3162         * resolve.c (resolve_code): Correctly set gfc_current_ns for
3163         EXEC_SELECT_TYPE.
3164         (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
3165         (gfc_pure): Ditto.
3166
3167 2010-03-02  Paul Thomas  <pault@gcc.gnu.org>
3168
3169         PR fortran/43180
3170         * trans-array.c (gfc_conv_array_parameter): A full array of
3171         derived type need not be restricted to a symbol without an
3172         array spec to use the call to gfc_conv_expr_descriptor.
3173
3174         PR fortran/43173
3175         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
3176         allocatable arrays do not need temporaries.
3177
3178 2010-03-01  Tobias Burnus  <burnus@net-b.de>
3179
3180         PR fortran/43199
3181         * resolve.c (find_array_spec): Handle REF_COMPONENT with
3182         CLASS components.
3183
3184 2010-02-28  Tobias Burnus  <burnus@net-b.de>
3185
3186         PR fortran/43205
3187         * trans-expr.c (is_zero_initializer_p): Move up in the file.
3188         (gfc_conv_initializer): Handle zero initializer as special case.
3189
3190 2010-02-27  Tobias Burnus  <burnus@net-b.de>
3191
3192         PR fortran/43185
3193         * resolve.c (resolve_fl_variable_derived): Imply SAVE
3194         for module variables for Fortran 2008.
3195
3196 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
3197
3198         PR debug/43166
3199         * trans-common.c (build_common_decl): Also update DECL_MODE,
3200         and DECL_SIZE when encountering a larger common block and call
3201         layout_decl.
3202
3203 2010-02-24  Tobias Burnus  <burnus@net-b.de>
3204
3205         PR fortran/43042
3206         * trans-expr.c (gfc_conv_initializer): Call directly
3207         gfc_conv_constant for C_NULL_(FUN)PTR.
3208
3209 2010-02-22  Paul Thomas  <pault@gcc.gnu.org>
3210
3211         PR fortran/43072
3212         * dependency.c (gfc_full_array_ref_p): Check for contiguous by
3213         checking the rest of the dimensions for elements.
3214
3215 2010-02-21  Tobias Burnus  <burnus@net-b.de>
3216
3217         PR fortran/35259
3218         * gfortran.h (gfc_option_t): New flag -fprotect-parens.
3219         * lang.opt: Ditto.
3220         * option.c (gfc_init_options,gfc_handle_option): Ditto.
3221         * trans-expr.c (gfc_conv_expr_op): Use the flag.
3222         * invoke.texi: Document new -fno-protect-parens flag.
3223
3224 2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
3225
3226         PR fortran/36932
3227         PR fortran/36933
3228         PR fortran/43072
3229         PR fortran/43111
3230         * dependency.c (gfc_check_argument_var_dependency): Use enum
3231         value instead of arithmetic vaue for 'elemental'.
3232         (check_data_pointer_types): New function.
3233         (gfc_check_dependency): Call check_data_pointer_types.
3234         * trans-array.h : Change fourth argument of
3235         gfc_conv_array_parameter to boolean.
3236         * trans-array.c (gfc_conv_array_parameter): A contiguous array
3237         can be a dummy but it must not be assumed shape or deferred.
3238         Change fourth argument to boolean. Array constructor exprs will
3239         always be contiguous and do not need packing and unpacking.
3240         * trans-expr.c (gfc_conv_procedure_call): Clean up some white
3241         space and change fourth argument of gfc_conv_array_parameter
3242         to boolean.
3243         (gfc_trans_arrayfunc_assign): Change fourth argument of
3244         gfc_conv_array_parameter to boolean.
3245         * trans-io.c (gfc_convert_array_to_string): The same.
3246         * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
3247
3248 2010-02-20  Tobias Burnus  <burnus@net-b.de>
3249
3250         PR fortran/42958
3251         * libgfortran.h: Add GFC_RTCHECK_MEM.
3252         * invoke.texi (-fcheck=): Document -fcheck=mem.
3253         * tranc.c (gfc_call_malloc): Remove negative-size run-time error
3254         and enable malloc-success check only with -fcheck=mem.
3255         * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
3256
3257 2010-02-16  Tobias Burnus  <burnus@net-b.de>
3258
3259         PR fortran/43040
3260         * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
3261         * intrinsic.c (add_functions): Ditto.
3262         * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
3263         * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
3264
3265 2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3266
3267         PR fortran/32382
3268         * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
3269         gfc_trans_do prototype.
3270         * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
3271         a loop exit condition.  If exit condition is given, build the loop exit
3272         code, checking IO results of implied do loops in READ and WRITE.
3273         (gfc_trans_do): Likewise.
3274         * trans.c (trans_code): New static work function, previously
3275         gfc_trans_code. Passes exit condition to gfc_trans_do.
3276         (gfc_trans_code): Calls trans_code with NULL_TREE condition.
3277         (gfc_trans_code_cond): Calls trans_code with loop exit condition.
3278         * trans-io.c (build_dt): Build an exit condition to allow checking IO
3279         result status bits in the dtparm structure. Use this condition in call
3280         to gfc_trans_code_cond.
3281
3282 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
3283
3284         PR fortran/41113
3285         PR fortran/41117
3286         * trans-array.c (gfc_conv_array_parameter): Use
3287         gfc_full_array_ref_p to detect full and contiguous variable
3288         arrays. Full array components and contiguous arrays do not need
3289         internal_pack and internal_unpack.
3290
3291 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
3292
3293         PR fortran/43030
3294         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
3295
3296         PR fortran/43029
3297         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
3298         here.
3299         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
3300         MATCH_ERROR.
3301
3302 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
3303             Tobias Burnus <burnus@net-b.de>
3304
3305         PR fortran/40823
3306         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
3307
3308 2010-02-10  Tobias Burnus  <burnus@net-b.de>
3309
3310         PR fortran/43015
3311         * trans-decl.c (gfc_generate_function_code): Only check
3312         actual-vs.-dummy character bounds if not bind(C).
3313
3314 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
3315
3316         PR fortran/42309
3317         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
3318         info->dimen after info has been freed.
3319
3320 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3321
3322         PR fortran/42999
3323         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
3324         with iterators.
3325
3326 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
3327
3328         * module.c (fix_mio_expr): Declare sym.
3329
3330 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
3331
3332         PR fortran/41869
3333         * module.c (fix_mio_expr): Fix for private generic procedures.
3334
3335 2010-02-09  Daniel Kraft  <d@domob.eu>
3336
3337         PR fortran/39171
3338         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
3339         length to be correct and issue only with -Wsurprising.
3340         * invoke.texi (Wsurprising): Mention this new warning that is
3341         turned on by -Wsurprising.
3342
3343 2010-02-09  Daniel Kraft  <d@domob.eu>
3344
3345         PR fortran/41507
3346         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
3347         can be CHARACTER type.
3348         (MINVAL), (MAXLOC), (MINLOC): Ditto.
3349
3350 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
3351
3352         PR fortran/42309
3353         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
3354         'formal_ptr'. If this is true, give returned descriptor unity
3355         lbounds, in all dimensions, and the appropriate offset.
3356         (gfc_conv_procedure_call); If formal is a pointer, set the last
3357         argument of gfc_conv_subref_array_arg to true.
3358         * trans.h : Add last argument for gfc_conv_subref_array_arg.
3359         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
3360         new arg of gfc_conv_subref_array_arg to false.
3361         * trans-stmt.c (forall_make_variable_temp): The same.
3362
3363 2010-02-03  Tobias Burnus  <burnus@net-b.de>
3364
3365         PR fortran/42936
3366         * interface.c (compare_parameter): Disable rank-checking
3367         for NULL().
3368
3369 2010-02-02  Tobias Burnus  <burnus@net-b.de>
3370
3371         PR fortran/42650
3372         * parse.c (decode_specification_statement): Use sym->result not sym.
3373
3374 2010-02-01  Tobias Burnus  <burnus@net-b.de>
3375
3376         PR fortran/42922
3377         * decl.c (variable_decl): Allow default initializer in
3378         TYPE declarations in PURE functions.
3379
3380 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
3381
3382         PR fortran/42888
3383         * resolve.c (resolve_allocate_expr): Move default initialization code
3384         here from gfc_trans_allocate.
3385         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
3386         EXEC_INIT_ASSIGN.
3387         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
3388         of CLASS variables via memcpy.
3389         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
3390         to resolve_allocate_expr.
3391
3392 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
3393
3394         PR fortran/38324
3395         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
3396         * gfortran.h : Add prototype for above.
3397         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
3398         (gfc_trans_subcomponent_assign): Call new function to replace
3399         the code to deal with allocatable components.
3400         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
3401         gfc_get_full_arrayspec_from_expr to replace existing code.
3402
3403 2010-01-25  Tobias Burnus  <burnus@net-b.de>
3404
3405         PR fortran/42858
3406         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
3407         check.
3408
3409 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
3410
3411         PR fortran/41044
3412         PR fortran/41167
3413         * expr.c (remove_subobject_ref): If the constructor is NULL use
3414         the expression as the source.
3415         (simplify_const_ref): Change the type of expression if
3416         there are component references.  Allow for substring to be at
3417         the end of an arbitrarily long chain of references.  If an
3418         element is found that is not in an EXPR_ARRAY, assume that this
3419         is scalar initialization of array. Call remove_subobject_ref in
3420         this case with NULL second argument.
3421
3422 2010-01-24  Tobias Burnus  <burnus@net-b.de>
3423
3424         PR fortran/39304
3425         * array.c (gfc_array_dimen_size): Use correct specific
3426         function in the check.
3427
3428 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
3429
3430         PR fortran/42736
3431         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
3432         is required, turn any trailing array elements after a range
3433         into ranges so that offsets can be calculated.
3434
3435 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
3436
3437         * module.c (mio_f2k_derived): Use enumerator as initializer of
3438         enum variable.
3439
3440         PR bootstrap/42812
3441         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
3442         bitfield of width 2.
3443
3444 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
3445
3446         PR fortran/42804
3447         * resolve.c (extract_compcall_passed_object): Set locus for
3448         passed-object argument.
3449         (extract_ppc_passed_object): Set locus and correctly remove PPC
3450         reference.
3451
3452 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
3453
3454         PR fortran/42783
3455         * trans-decl.c (add_argument_checking): Do not use the backend
3456         decl directly to test for the presence of an optional dummy
3457         argument.  Use gfc_conv_expr_present, remembering to set the
3458         symbol referenced.
3459
3460         PR fortran/42772
3461         * trans-decl.c (gfc_generate_function_code): Small white space
3462         changes. If 'recurcheckvar' is NULL do not try to reset it.
3463
3464 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
3465
3466         PR fortran/42545
3467         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
3468         component for extended types.
3469         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
3470         and take care of parent component accessibility.
3471
3472 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
3473
3474         PR fortran/42677
3475         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
3476         * interface.c (check_interface1): Move a warning message here from
3477         resolve_fl_procedure.
3478         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
3479         * module.c (read_module): Remove call to gfc_check_interfaces, since
3480         this comes too early here.
3481         * resolve.c (resolve_fl_procedure): Move warning message to
3482         check_interface1.
3483
3484 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3485
3486         PR fortran/42684
3487         * interface.c (check_interface1): Pass symbol name rather than NULL to
3488         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
3489         trap MULL.
3490         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3491         than NULL to gfc_compare_interfaces.
3492
3493 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
3494
3495         PR fortran/41478
3496         * trans-array.c (duplicate_allocatable):  Static version of
3497         gfc_duplicate_allocatable with provision to handle scalar
3498         components. New boolean argument to switch off call to malloc
3499         if true.
3500         (gfc_duplicate_allocatable): New function to call above with
3501         new argument false.
3502         (gfc_copy_allocatable_data): New function to call above with
3503         new argument true.
3504         (structure_alloc_comps): Do not apply indirect reference to
3505         scalar pointers. Add new section to copy allocatable components
3506         of arrays. Extend copying of allocatable components to include
3507         scalars.
3508         (gfc_copy_only_alloc_comp): New function to copy allocatable
3509         component derived types, without allocating the base structure.
3510         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
3511         Add primitive for gfc_copy_only_alloc_comp.
3512         * trans-expr.c (gfc_conv_procedure_call): After calls to
3513         transformational functions with results that are derived types
3514         with allocatable components, copy the components in the result.
3515         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
3516         of lhs derived types before allocation.
3517         
3518 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
3519
3520         PR fortran/42481
3521         * module.c (load_generic_interfaces): If a procedure that is
3522         use associated but not generic is given an interface that
3523         includes itself, then make it generic.
3524
3525 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
3526             Shujing Zhao  <pearly.zhao@oracle.com>
3527
3528         PR translation/42469
3529         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
3530         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
3531         character between option name and help text.
3532
3533 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3534
3535         PR fortran/20923
3536         PR fortran/32489
3537         * trans-array.c (gfc_conv_array_initializer): Change call to
3538         gfc_error_now to call to gfc_fatal_error.
3539         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
3540         (is_constant_element): Changed name from constant_element.
3541         (gfc_constant_ac): Only use expand_construuctor for expression
3542         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
3543         call gfc_is_constant_expr.
3544         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
3545         message.
3546         * resolve.c (gfc_is_expandable_expr): New function that determiners if
3547         array expressions should have their constructors expanded.
3548         (gfc_resolve_expr): Use new function to determine whether or not to call
3549         gfc_expand_constructor.
3550
3551 2010-01-09  Tobias Burnus  <burnus@net-b.de>
3552
3553         PR fortran/41298
3554         * trans-expr.c (gfc_trans_structure_assign): Handle
3555         c_null_(fun)ptr.
3556         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
3557         to the constructor for c_null_(fun)ptr.
3558         * resolve.c (resolve_structure_cons): Add special case
3559         for c_null_(fun)ptr.
3560
3561 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
3562
3563         * gfortranspec.c (lang_specific_driver): Update copyright notice
3564         dates.
3565
3566 2010-01-08  Tobias Burnus  <burnus@net-b.de>
3567
3568         PR/fortran 25829
3569         * symbol.c (check_conflict, gfc_copy_attr): Add
3570         ASYNCHRONOUS support.
3571         (gfc_add_asynchronous): New function.
3572         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
3573         (gfc_match_asynchronous): New function.
3574         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
3575         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
3576         (gfc_add_asynchronous): New Prototype.
3577         * module.c (ab_attribute, mio_symbol_attribute): Add
3578         ASYNCHRONOUS support.
3579         * resolve.c (was_declared): Ditto.
3580         * match.h (gfc_match_asynchronous): New prototype.
3581         * parse.c (decode_specification_statement,decode_statement):
3582         Add ASYNCHRONOUS support.
3583
3584 2010-01-07  Tobias Burnus  <burnus@net-b.de>
3585
3586         PR fortran/42597
3587         * trans-decl.c (get_proc_pointer_decl): Fix call to
3588         gfc_conv_initializer for array-valued proc-pointer funcs.
3589
3590 2010-01-07  Tobias Burnus  <burnus@net-b.de>
3591
3592         PR fortran/41872
3593         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
3594         allocatable scalars with SAVE attribute.
3595
3596 2010-01-05  Tobias Burnus  <burnus@net-b.de>
3597
3598         PR fortran/42517
3599         * options.c (gfc_post_options): Set -frecursion
3600         when -fopenmp is used.
3601
3602 2010-01-05  Tobias Burnus  <burnus@net-b.de>
3603
3604         PR fortran/41872
3605         * trans-expr.c (gfc_conv_procedure_call): Nullify
3606         return value for allocatable-scalar character functions.
3607
3608 2010-01-04  Tobias Burnus  <burnus@net-b.de>
3609
3610         PR fortran/36161
3611         * error.c (error_printf, gfc_warning, gfc_notify_std,
3612         gfc_warning_now, gfc_error, gfc_error_now,
3613         gfc_fatal_error): Change argument name from nocmsgid to
3614         gmsgid to enable (x)gettext's % checking.
3615
3616 2010-01-04  Tobias Burnus  <burnus@net-b.de>
3617         
3618         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
3619
3620 2010-01-04  Tobias Burnus  <burnus@net-b.de>
3621
3622         PR fortran/41872
3623         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
3624         for functions returning allocatable scalars.
3625         * trans-stmt.c (gfc_trans_allocate): Emmit error when
3626         reallocating an allocatable scalar.
3627         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
3628         in comment.
3629         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
3630         allocatable scalars.
3631         (gfc_generate_function_code): Nullify result variable for
3632         allocatable scalars.
3633         
3634         PR fortran/40849
3635         * module.c (gfc_use_module): Fix warning string to allow
3636         for translation.
3637
3638         PR fortran/42517
3639         * invoke.texi (-fcheck=recursion): Mention that the checking
3640         is also disabled for -frecursive.
3641         * trans-decl.c (gfc_generate_function_code): Disable
3642         -fcheck=recursion when -frecursive is used.
3643
3644         * intrinsic.texi (iso_c_binding): Improve wording.
3645
3646 \f
3647 Copyright (C) 2010 Free Software Foundation, Inc.
3648
3649 Copying and distribution of this file, with or without modification,
3650 are permitted in any medium without royalty provided the copyright
3651 notice and this notice are preserved.