OSDN Git Service

86aad78e29ce1be5d160201ff6c340780c182197
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-11-08  Janus Weil  <janus@gcc.gnu.org>
2
3         PR fortran/46344
4         * decl.c (build_struct): Build vtab immediately if derived type
5         has already been declared.
6
7 2010-11-08  Janus Weil  <janus@gcc.gnu.org>
8
9         PR fortran/46344
10         * trans-types.c (gfc_copy_dt_decls_ifequal): Handle CLASS components.
11
12 2010-11-06  Janus Weil  <janus@gcc.gnu.org>
13
14         PR fortran/46330
15         * trans-expr.c (gfc_trans_class_assign): Find 'vtab' symbol in correct
16         namespace.
17
18 2010-11-05  Janus Weil  <janus@gcc.gnu.org>
19
20         PR fortran/45451
21         PR fortran/46174
22         * class.c (gfc_find_derived_vtab): Improved search for existing vtab.
23         Add component '$copy' to vtype symbol for polymorphic deep copying.
24         * expr.c (gfc_check_pointer_assign): Make sure the vtab is generated
25         during resolution stage.
26         * resolve.c (resolve_codes): Don't resolve code if namespace is already
27         resolved.
28         * trans-stmt.c (gfc_trans_allocate): Call '$copy' procedure for
29         polymorphic ALLOCATE statements with SOURCE.
30
31 2010-11-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
32             Paul Thomas  <pault@gcc.gnu.org>
33
34         * dump-parse-tree.c (code_indent):  Take label into acount
35         when calculating indent.
36         (show_typespec):  Also display class.
37         (show_attr):  Add module name to argument.
38         Don't show UNKNOWN for flavor, access and save. Don't show
39         SAVE_NONE.  Don't show INTENT_UNKNOWN.  Show module for use
40         association.  Show intent only for dummy arguments.
41         Set length of shown symbol names to minimum of 12.
42         Show attributes header.
43         (show_symbol):  Adjust show_level.
44         (show_symtree):  Clear up display for ambiguous.  Show if symbol
45         was imported from namespace.
46         (show_code_node):  Clear up indenting.  Traverse symtree and
47         show code directly instead of calling show_namespace.
48
49 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
50
51         * trans-decl.c (add_argument_checking): Use build_zero_cst instead of
52         fold_convert.
53         * trans-expr.c (gfc_conv_missing_dummy, fill_with_spaces): Likewise.
54         * trans-stmt.c (gfc_trans_do): Likewise.
55
56 2010-11-02  Steven G. Kargl  < kargl@gcc.gnu.org>
57             Tobias Burnus  <burnus@net-b.de>
58
59         PR fortran/45170
60         * array.c (gfc_match_array_constructor): Reject deferred type
61         parameter (DTP) in type-spec.
62         * decl.c (char_len_param_value, match_char_length,
63         gfc_match_char_spec, build_sym, variable_decl,
64         enumerator_decl): Support DTP.
65         * expr.c (check_inquiry): Fix check due to support for DTP.
66         * gfortran.h (gfc_typespec): Add Boolean 'deferred'.
67         * misc.c (gfc_clear_ts): Set it to false.
68         * match.c (gfc_match_allocate): Support DTP.
69         * resolve.c (resolve_allocate_expr): Not-implemented error for DTP.
70         (resolve_fl_variable): Add DTP constraint check.
71         * trans-decl.c (gfc_trans_deferred_vars): Add not-implemented
72         error for DTP.
73
74 2010-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>
75
76         PR fortran/46152
77         * fortran/match.c (match_derived_type_spec): Reoplace gfc_match_symbol
78         with a gfc_find_symbol to prevent namespace pollution.  Remove dead
79         code.
80         (match_type_spec): Remove parsing of '::'.  Collapse character
81         kind checking to one location.
82         (gfc_match_allocate): Use correct locus in error message.
83
84 2010-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
85
86         * gfortran.h (gfc_option_t):  Replace dump_parse_tree by
87         dump_fortran_original and add dump_fortran_optimized.
88         * lang.opt: Add fdump-fortran-original and
89         fdump-fortran-optimized.  Document that fdump-parse-tree is
90         deprecated.
91         * gfortran.texi: Add -fdump-fortran-original and
92         -fdump-fortran-optimized.  -fdump-parse-tree is deprecated.
93         * frontend-passes.c (gfc_run_passes):  If optimizing and
94         if gfc_option.dump_fortran_optimized is set, dump the parse tree
95         after optimization.
96         * parse.c:  Rename gfc_option.dump_parse_tree to
97         gfc_option.dump_fortran_original.
98         * options.c (gfc_init_options):  Rename gfc_option.dump_parse_tree
99         to gfc_option.dump_fortran_original and handle
100         gfc_option.dump_fortran_optimize.
101         (gfc_post_options): Rename gfc_option.dump_parse_tree
102         to gfc_option.dump_fortran_original.
103         (gfc_handle_option):  Rename OPT_fdump_parse_tree to
104         OPT_fdump_fortran_original and gfc_option.dump_parse_tree
105         to gfc_option.dump_fortran_original.  Handle
106         OPT_fdump_fortran_optimized.
107
108 2010-10-30  Janus Weil  <janus@gcc.gnu.org>
109
110         PR fortran/44917
111         PR fortran/44926
112         PR fortran/46196
113         * interface.c (count_types_test): Symmetrize type check.
114         (generic_correspondence): Ditto.
115
116 2010-10-27  Janus Weil  <janus@gcc.gnu.org>
117
118         PR fortran/46161
119         * interface.c (compare_allocatable): Handle polymorphic allocatables.
120         (compare_parameter): Add two error messages for polymorphic dummies.
121
122 2010-10-26  Janus Weil  <janus@gcc.gnu.org>
123
124         PR fortran/42647
125         * trans.h (gfc_deallocate_scalar_with_status): New prototype.
126         * trans.c (gfc_deallocate_scalar_with_status): New function for
127         deallocation of allocatable scalars.
128         * trans-array.c (structure_alloc_comps): Call it here ...
129         * trans-decl.c (gfc_trans_deferred_vars): ... here ...
130         * trans-stmt.c (gfc_trans_deallocate): ... and here.
131
132 2010-10-26  Tobias Burnus  <burnus@net-b.de>
133
134         PR fortran/45451
135         * trans-stmt.c (gfc_trans_allocate): Do a deep-copy for SOURCE=.
136
137         PR fortran/43018
138         * trans-array.c (duplicate_allocatable): Use size of type and not
139         the size of the pointer to the type.
140
141 2010-10-25  Steven G. Kargl  <kargl@gcc.gnu.org>
142
143         PR fortran/46140
144         * fortran/scanner.c (include_line): Check return value of load_file.
145
146 2010-10-23  Tobias Burnus  <burnus@net-b.de>
147
148         PR fortran/46122
149         * expr.c (gfc_check_vardef_context): Fix PROTECTED check.
150
151 2010-10-21  Janus Weil  <janus@gcc.gnu.org>
152
153         PR fortran/46060
154         * match.h (gfc_matching_ptr_assignment): New global variable to indicate
155         we're currently matching a (non-proc-)pointer assignment.
156         * decl.c (match_pointer_init): Set it.
157         * match.c (gfc_match_pointer_assignment): Ditto.
158         * primary.c (matching_actual_arglist): New global variable to indicate
159         we're currently matching an actual argument list.
160         (gfc_match_actual_arglist): Set it.
161         (gfc_match_varspec): Reject procedure pointer component calls with
162         missing argument list.
163
164 2010-10-21  Janus Weil  <janus@gcc.gnu.org>
165
166         PR fortran/46067
167         * interface.c (gfc_compare_interfaces): Switch arguments of type
168         comparison (important for polymorphic variables).
169
170 2010-10-21  Tobias Burnus  <burnus@net-b.de>
171
172         PR fortran/46100
173         * expr.c (gfc_check_vardef_context): Treat pointer functions
174         as variables.
175
176 2010-10-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
177
178         PR fortran/46079
179         * trans_stmt.c (gfc_trans_stop): Fix whitespace.  Build a call to new
180         F08 numeric stop function.
181         * trans.h: Add declaration for gfor_fndecl_stop_numeric_f08.
182         * trans-decl.c (gfc_build_builtin_function_decls): Build declaration
183         for stop_numeric_f08.
184
185 2010-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
186
187         * gfortran.h: Remove definition of bt enumerator.
188         * libgfortran.h: Add bt enumerator type alighned with defintion.
189         Remove the dtype enumerator, no longer used.
190         previously given in libgfortran/io.h
191         * trans-types.c: Use new bt enumerator.
192         * trans-io.c: Likewise.
193
194 2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
195
196         * trans-io.c (gfc_build_io_library_fndecls):
197         Array descriptor arguments to transfer_array can be
198         dereferenced recursively.
199
200 2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
201
202         PR fortran/20165
203         PR fortran/31593
204         PR fortran/43665
205         * trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
206         IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
207         IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
208         IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
209         (gfc_build_io_library_fndecls):  Add corresponding function
210         decls.
211         (transfer_expr):  If the current transfer is a READ, use
212         the iocall with the original version, otherwise the version
213         with _WRITE.
214         (transfer_array_desc):  Likewise.
215
216 2010-10-15  Tobias Burnus  <burnus@net-b.de>
217
218         PR fortran/45186
219         * trans.h (gfc_add_modify_loc, gfc_evaluate_now_loc): New prototypes.
220         (gfc_trans_runtime_error_vararg): Remove prototype.
221         * trans.c (gfc_add_modify_loc, gfc_evaluate_now_loc): New functions.
222         (gfc_add_modify, gfc_evaluate_now): Use them.
223         (trans_runtime_error_vararg): Renamed from
224         gfc_trans_runtime_error_vararg, made static and use locus.
225         (gfc_trans_runtime_error): Use it.
226         (gfc_trans_runtime_check): Ditto and make use of locus.
227         * trans-stmt.c (gfc_trans_if_1, gfc_trans_simple_do,
228         gfc_trans_do, gfc_trans_do_while): Improve line number
229         associated with generated expressions.
230
231 2010-10-12  Daniel Kraft  <d@domob.eu>
232
233         PR fortran/38936
234         * parse.c (parse_associate): Set typespec of associate-name if that of
235         the target is already available.
236
237 2010-10-10  Janus Weil  <janus@gcc.gnu.org>
238
239         PR fortran/45961
240         * resolve.c (resolve_typebound_function): Bugfix for type-bound
241         operators.
242
243 2010-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
244
245         * frontend-passes.c:  Include opts.h.
246         (optimize_comparison):  Renamed from optimize_equality.
247         Change second argument to operation to be compared.
248         Use flag_finite_math_only to avoid comparing REAL and
249         COMPLEX only when NANs are honored.  Simplify comparing
250         of string concatenations where left or right operands are
251         equal.  Simplify all comparison operations, based on the result
252         of gfc_dep_compare_expr.
253         * dependency.c:  Include arith.h.
254         (gfc_are_identical_variables):  Volatile variables should not
255         compare equal to themselves.
256         (gfc_dep_compare_expr):  Handle string constants and string
257         concatenations.
258
259 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
260
261         * f95-lang.c (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
262         * gfortran.h (gfc_init_options_struct): Declare.
263         * options.c (gfc_init_options_struct): New.  Split out from
264         gfc_init_options.
265
266 2010-10-07  Janus Weil  <janus@gcc.gnu.org>
267
268         PR fortran/45933
269         * resolve.c (resolve_typebound_function): Use correct declared type
270         for type-bound operators.
271
272 2010-10-07  Mikael Morin  <mikael@gcc.gnu.org>
273
274         PR fortran/45916
275         Revert revision 165026:
276         2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
277
278         * decl.c (match_procedure_in_type): Assertify if conditions.
279
280 2010-10-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
281
282         PR fortran/45889
283         * resolve.c (resolve_transfer): Use expression inside parenthesis to
284         find acutal component to be transgferred.
285
286 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
287
288         * trans-stmt.c (gfc_trans_allocate): free lhs expr.
289
290 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
291
292         * trans-array.c (gfc_free_ss_chain): Made non-static.
293         * trans-array.h (gfc_free_ss_chain): New prototype.
294         * trans-stmt.c (gfc_trans_where_2): Free ss chains.
295
296 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
297
298         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Also free symbol's
299         subcomponents.
300
301 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
302
303         * trans-stmt.c (gfc_trans_forall_1): Free forall struct at the end.
304
305 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
306
307         * trans-expr.c (get_proc_ptr_comp): Restore initial expression type
308         before calling gfc_free_expr.
309
310 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
311
312         * trans-array.c (gfc_conv_tmp_array_ref): Add factorized call to
313         gfc_advance_se_ss_chain.
314         * trans-expr.c (gfc_conv_subref_array_ref, gfc_conv_procedure_call,
315         gfc_conv_array_constructor_expr, gfc_trans_assignment_1): Remove
316         calls to gfc_advance_se_ss_chain after gfc_conv_tmp_array_ref.
317         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
318         * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.
319
320 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
321
322         * trans.c (gfc_restore_backend_locus): New function.
323         (gfc_get_backend_locus): Renamed to ...
324         (gfc_save_backend_locus): ... this.
325         * trans.h (gfc_restore_backend_locus, gfc_get_backend_locus,
326         gfc_save_backend_locus): Same.
327         * trans-array.c (gfc_trans_g77_array, gfc_trans_dummy_array_bias,
328         gfc_trans_deferred_array): Rename gfc_get_backend_locus to
329         gfc_save_backend_locus.
330         (gfc_trans_dummy_array_bias): Call gfc_restore_backend_locus at the
331         end.
332         (gfc_trans_g77_array, gfc_trans_deferred_array): Use
333         gfc_restore_backend_locus instead of gfc_set_backend_locus.
334         (gfc_trans_deferred_array): Call gfc_restore_backend_locus on early
335         return.
336         * trans-decl.c (gfc_get_extern_function_decl, build_entry_thunks,
337         gfc_trans_deferred_vars):
338         Rename gfc_get_backend_locus to gfc_save_backend_locus.
339         Use gfc_restore_backend_locus insted of gfc_set_backend_locus.
340
341 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
342
343         * trans-array.c (gfc_build_constant_array_constructor): Free array
344         spec when done.
345
346 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
347
348         * symbol.c (gfc_copy_formal_args_ppc): Free previous formal arg list
349         before overwriting it.
350
351 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
352
353         * array.c (gfc_match_array_spec): Don't re-initialize cleared struct.
354         * symbol.c (gen_shape_param): Ditto.
355
356 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
357
358         * symbol.c (free_entry_list): New function.
359         (gfc_free_namespace): Free list of entries.
360
361 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
362
363         * symbol.c (free_components): Free list of formal args and formal
364         namespace.
365
366 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
367
368         * simplify.c (gfc_simplify_size): Clear temporary mpz int before
369         returning.
370
371 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
372
373         * resolve.c (add_dt_to_dt_list): Remove unneeded if.
374
375 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
376
377         * resolve.c (check_typebound_baseobject): Free local expr before
378         returning.
379
380 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
381
382         * primary.c (gfc_match_structure_constructor): Invert the assert logic.
383
384 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
385
386         * primary.c (gfc_free_structure_ctor_component): Also free the
387         component structure itself.
388
389 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
390
391         * module.c (gfc_use_module): Free atom_string when done with it.
392
393 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
394
395         * module.c (read_module): Remove useless string duplication.
396
397 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
398
399         * gfortranspec.c (append_arg): Remove commented code.
400
401 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
402
403         * decl.c (match_procedure_in_type): Assertify if conditions.
404
405 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
406
407         * cpp.c (gfc_cpp_post_options): Don't create a cpp reader if
408         preprocessing is disabled.
409
410 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
411
412         PR middle-end/45838
413         * f95-lang.c (ATTR_NOTHROW_LEAF_LIST, ATTR_CONST_NOTHROW_LEAF_LIST,
414         ATTR_NOTHROW_LIST, ATTR_CONST_NOTHROW_LIST): Define.
415         (gfc_define_builtin): Change last argument to int bitmask from bool,
416         control addition of TREE_NOTHROW and leaf attribute as well.
417         (DO_DEFINE_MATH_BUILTIN): Adjust callers.
418         (gfc_init_builtin_functions): Likewise.  Remove
419         ATTR_{,CONST_}NOTHROW_LIST enum.
420
421 2010-10-04  Andi Kleen <ak@linux.intel.com>
422
423         * Make-lang.in (gfortran, f951): Add + to build rule.
424
425 2010-10-04  Richard Guenther  <rguenther@suse.de>
426
427         * f95-lang.c (current_translation_unit): New global variable.
428         (gfc_create_decls): Build a translation-unit decl.
429         (pushdecl): In the global binding-level use the
430         translation-unit decl as DECL_CONTEXT.
431         * trans-decl.c (gfc_get_symbol_decl): Use DECL_FILE_SCOPE_P.
432         (build_function_decl): Likewise.  Delay setting the assembler
433         name, leave setting of DECL_CONTEXT to pushdecl.
434         (trans_function_start): Use DECL_FILE_SCOPE_P.
435         (gfc_create_module_variable): Likewise.  Remove questionable
436         asserts.
437         * trans.c (gfc_generate_module_code): Likewise.
438
439 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
440
441         * cpp.c (cpp_define_builtins): Call functions from cppbuiltin.c
442         instead of duplicating code.
443         * Make-lang.in: Add dependency on cppbuiltin.h. Don't define
444         BASEVER.
445
446 2010-10-02  Janus Weil  <janus@gcc.gnu.org>
447
448         PR fortran/45748
449         * resolve.c (resolve_formal_arglist): Avoid setting default type for
450         formal arguments of intrinsic procedures.
451
452 2010-09-30  Janus Weil  <janus@gcc.gnu.org>
453
454         PR fortran/45828
455         * resolve.c (resolve_allocate_expr): Do not use
456         'gfc_has_default_initializer'.
457
458 2010-09-30  Tobias Burnus  <burnus@net-b.de>
459
460         * gfortran.tex (Fortran 2008 status): Update list of
461         implemented features.
462
463 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
464
465         * lang.opt: Don't use VarExists.
466
467 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
468
469         * cpp.c (cpp_define_builtins): Update names of gfc_option_t
470         members.
471         (gfc_cpp_post_options): Update names of cpp_options members.
472         (cb_cpp_error): Update names of diagnostic_context members.
473         * f95-lang.c (gfc_init_builtin_functions): Update names of
474         gfc_option_t members.
475         * gfortran.h (gfc_option_t): Rename warn_conversion and
476         flag_openmp.
477         * intrinsic.c (gfc_convert_type_warn): Update names of
478         gfc_option_t members.
479         * options.c (gfc_init_options, gfc_post_options, set_Wall,
480         gfc_handle_option): Update names of gfc_option_t members.
481         * parse.c (next_free, next_fixed): Update names of gfc_option_t
482         members.
483         * scanner.c (pedantic): Remove extern declaration.
484         (skip_free_comments, skip_fixed_comments, include_line): Update
485         names of gfc_option_t members.
486         * trans-decl.c (gfc_generate_function_code): Update names of
487         gfc_option_t members.
488
489 2010-09-28  Tobias Burnus  <burnus@net-b.de>
490
491         PR fortran/40569
492         PR fortran/40568
493         * intrinsic.c (add_functions): Make compiler_version and
494         compiler_options CLASS_INQUIRY.
495         * gfortran.h (gfc_get_option_string): New prototype.
496         * intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS):
497         Add documentation.
498         (C_SIZEOF): Mark as inquiry function of ISO_C_BINDING.
499         (ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS.
500         (ISO_C_BINDING): Refer to C_SIZEOF.
501         * options.c (gfc_get_option_string): New function.
502         * simplify.c (gfc_simplify_compiler_options): Use it.
503         (gfc_simplify_compiler_version): Include compiler name.
504
505 2010-09-28  Jan Hubicka  <jh@suse.cz>
506
507         * f95-lang.c (gfc_define_builtin): Make leaf.
508         (gfc_init_builtin_functions): Handle only ATTR_CONST_NOTHROW_LEAF_LIST
509         and ATTR_NOTHROW_LEAF_LIST.
510         (DEF_SYNC_BUILTIN): Check ATTR_CONST_NOTHROW_LEAF_LIST.
511         (DEF_GOMP_BUILTIN): Likewise.
512
513 2010-09-28  Tobias Burnus  <burnus@net-b.de>
514
515         PR fortran/45756
516         * trans-decl.c (gfc_get_symbol_decl): Use gsym for decl of
517         module parameters.
518
519 2010-09-27  Tobias Burnus  <burnus@net-b.de>
520
521         PR fortran/40569
522         PR fortran/40568
523         * intrinsic.h (gfc_simplify_compiler_options,
524         gfc_simplify_compiler_version): New prototypes.
525         * intrinsic.c (gfc_intrinsic_function_by_id,
526         make_from_module): New functions.
527         (gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic,
528         gfc_specific_intrinsic): Don't return module intrinsics.
529         (add_functions): Add compiler_options, compiler_version.
530         (gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID.
531         * symbol.c (std_for_isocbinding_symbol): Add version check for
532         NAMED_FUNCTIONS.
533         * iso-fortran-env.def: Add compiler_options, compiler_version.
534         * iso-c-binding.def: Add c_sizeof.
535         * gfortran.h (gfc_intrinsic_sym): Add from_module:1.
536         (iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS.
537         (gfc_intrinsic_function_by_id): New prototype.
538         * module.c (create_intrinsic_function): New function.
539         (import_iso_c_binding_module, use_iso_fortran_env_module): Use it.
540         * trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS.
541         * resolve.c (resolve_intrinsic): Try also to resolve intrinsics
542         by ISYM ID.
543         * simplify.c (gfc_simplify_compiler_options,
544         gfc_simplify_compiler_version): New functions.
545
546 2010-09-26  Daniel Kraft  <d@domob.eu>
547
548         PR fortran/45783
549         PR fortran/45795
550         * resolve.c (resolve_select_type): Clarify code.
551         (resolve_assoc_var): Only set typespec if it is currently unknown.
552
553 2010-09-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
554
555         PR fortran/45793
556         * module.c (create_int_parameter_array): Set the array value shape.
557
558 2010-09-25  Tobias Burnus  <burnus@net-b.de>
559
560         * gfortran.texi: Re-add accidently removed \input line.
561
562 2010-09-25  Daniel Kraft  <d@domob.eu>
563
564         PR fortran/45776
565         * gfortran.h (struct gfc_dt): New member `dt_io_kind'.
566         * io.c (resolve_tag): F2008 check for NEWUNIT and variable
567         definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG.
568         (gfc_free_dt): Correctly handle freeing of `dt_io_kind' and
569         `extra_comma' with changed semantics.
570         (gfc_resolve_dt): Check variable definitions.
571         (match_io_element): Remove INTENT and PURE checks here and
572         initialize code->ext.dt member.
573         (match_io): Set dt->dt_io_kind.
574         (gfc_resolve_inquire): Check variable definition for all tags
575         except UNIT, FILE and ID.
576         * resolve.c (resolve_transfer): Variable definition check.
577
578 2010-09-25  Tobias Burnus  <burnus@net-b.de>
579
580         * interface.c (gfc_match_end_interface): Constify char pointer
581         to fix warning.
582
583 2010-09-24  Steven G. Kargl  < kargl@gcc.gnu.org>
584
585         * interface.c (gfc_match_end_interface): Deal with user defined
586         operators that overload rational operators and C1202.
587
588 2010-09-24  Tobias Burnus  <burnus@net-b.de>
589
590         * gfortran.texi: Add second space after end-of-sentence period;
591         change / to /@/ to allow hyphenation of URLs.
592         (Standards): Remove duplicated OpenMP, update wording given that
593         Fortran 2008 now released.
594         (Fortran 2008 status): Update and add list of implemented features.
595
596 2010-09-24  Tobias Burnus  <burnus@net-b.de>
597
598         PR fortran/40571
599         * iso-fortran-env.def: Add NAMED_KINDARRAY with
600         character_kinds, integer_kinds, logical_kinds and
601         real_kinds.
602         * gfortran.h: Add them to iso_fortran_env_symbol.
603         * libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to
604         LIBERROR_INQUIRE_INTERNAL_UNIT and move it from
605         libgfortran_stat_codes to libgfortran_error_codes.
606         * module.c (create_int_parameter_array): New function.
607         (use_iso_fortran_env_module): Use it for
608         NAMED_KINDARRAY of iso-fortran-env.def.
609         * trans-decl.c (gfc_get_symbol_decl): Parameter
610         arrays of intrinsics modules become local static variables.
611         * intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds,
612         integer_kinds, logical_kinds and real_kinds.
613
614 2010-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
615
616         PR fortran/45744
617         * frontend-passes.c (optimize_binop_array_assignment):
618         Only re-use lhs as intermediate storage if kind and type
619         parameters match.
620
621 2010-09-23  Mikael Morin  <mikael@gcc.gnu.org>
622
623         PR fortran/45745
624         PR fortran/45648
625         * trans-array.c (gfc_conv_expr_descriptor): Handle
626         ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case.
627
628 2010-09-23  Tobias Burnus  <burnus@net-b.de>
629
630         * intrinsic.texi (OpenMP modules): Add named constants of
631         OMP_LIB.
632
633 2010-09-23  Daniel Kraft  <d@domob.eu>
634
635         PR fortran/38936
636         PR fortran/44044
637         PR fortran/45474
638         * gfortran.h (gfc_check_vardef_context): New method.
639         (struct symbol_attribute): New flag `select_type_temporary'.
640         * primary.c (gfc_variable_attr): Clarify initialization of ref.
641         (match_variable): Remove PROTECTED check and assignment check
642         for PARAMETERs (this is now done later).
643         * match.c (gfc_match_iterator): Remove INTENT(IN) check.
644         (gfc_match_associate): Defer initialization of newAssoc->variable.
645         (gfc_match_nullify): Remove PURE definability check.
646         (select_type_set_tmp): Set new `select_type_temporary' flag.
647         * expr.c (gfc_check_assign): Remove INTENT(IN) check here.
648         (gfc_check_pointer_assign): Ditto (and other checks removed).
649         (gfc_check_vardef_context): New method.
650         * interface.c (compare_parameter_protected): Removed.
651         (compare_actual_formal): Use `gfc_check_vardef_context' for checks
652         related to INTENT([IN]OUT) arguments.
653         * intrinsic.c (check_arglist): Check INTENT for intrinsics.
654         * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'.
655         (remove_last_array_ref): New method.
656         (resolve_deallocate_expr), (resolve_allocate_expr): Ditto.
657         (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG).
658         (resolve_assoc_var): Remove checks for definability here.
659         (resolve_select_type): Handle resolving of code->block here.
660         (resolve_ordinary_assign): Remove PURE check.
661         (resolve_code): Do not resolve code->blocks for SELECT TYPE here.
662         Use `gfc_check_vardef_context' for assignments and pointer-assignments.
663
664 2010-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
665
666         * gfortran.texi (Argument list functions): Allow URL to wrap.
667         * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX)
668         (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE)
669         (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of
670         code markups in the text.
671         * invoke.texi (Fortran Dialect Options)
672         (Error and Warning Options, Directory Options, Code Gen Options):
673         Likewise.  Remove @code inside @smallexample.
674
675 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
676
677         * gfortranspec.c (lang_specific_driver): Handle OPT__version and
678         OPT__help instead of OPT_fversion and OPT_fhelp.
679         * lang.opt (-all-warnings, -assert, -assert=, -comments,
680         -comments-in-macros, -define-macro, -define-macro=, -dependencies,
681         -dump, -dump=, -include-barrier, -include-directory,
682         -include-directory=, -include-directory-after,
683         -include-directory-after=, -include-prefix, -include-prefix=,
684         -no-line-commands, -no-standard-includes, -output, -output=,
685         -preprocess, -print-missing-file-dependencies, -trace-includes,
686         -undefine-macro, -undefine-macro=, -user-dependencies, -verbose,
687         -write-dependencies, -write-user-dependencies): New.
688
689 2010-09-21  Jason Blevins  <jrblevin@sdf.org>
690
691         * intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN,
692         execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY):
693         Correct spelling.
694
695 2010-09-21  Mikael Morin  <mikael@gcc.gnu.org>
696
697         PR fortran/45648
698         * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and
699         info->dim.
700
701         PR fortran/45648
702         * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are
703         accessing dimensions in reversed order. 
704
705         PR fortran/45648
706         * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying
707         intrinsic function call. 
708
709         * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup.
710         Update asserts accordingly.
711
712         PR fortran/45648
713         * trans.h (gfc_se): New field force_tmp. 
714         * trans-expr.c (gfc_conv_procedure_call): Check for argument alias
715         and set parmse.force_tmp if some alias is found. 
716         * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation
717         if se->force_tmp is set. 
718
719 2010-09-20  Janus Weil  <janus@gcc.gnu.org>
720
721         PR fortran/45438
722         * trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for
723         TBPs, PPCs and pointer/allocatable components.
724
725 2010-09-20  Paul Thomas  <pault@gcc.gnu.org>
726
727         PR fortran/45081
728         * simplify.c (is_constant_array_expr): Allow structure array
729         elements as well as constants.
730         (gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread,
731         gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived
732         type of source to the result.
733
734 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
735
736         * frontend-passes.c (gfc_expr_walker):  Also
737         handle EXPR_SUBSTRING.
738
739 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
740
741         * frontend-passes.c (gfc_expr_walker):  Handle
742         constructors and references.
743
744 2010-09-16  Tobias Burnus  <burnus@net-b.de>
745
746         PR fortran/43665
747         * trans-types.c (create_fn_spec): New function.
748         (gfc_get_function_type): Call it.
749
750 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
751
752         * gfortran.h (walk_code_fn_t, walk_expr_fn_t): New types.
753         (gfc_expr_walker, gfc_code_walker): New prototypes.
754         * frontend-passes.c (gfc_expr_walker, gfc_code_walker): New functions.
755         (WALK_SUBEXPR, WALK_SUBEXPR_TAIL, WALK_SUBCODE): Define.
756         (optimize_namespace): Use gfc_code_walker.
757         (optimize_code, optimize_expr): Rewritten as gfc_code_walker hooks.
758         (optimize_expr_0, optimize_code_node,
759         optimize_actual_arglist): Removed.
760         (optimize_assignment): Don't call optimize_expr_0.
761
762 2010-09-16  Janus Weil  <janus@gcc.gnu.org>
763
764         PR fortran/45674
765         * interface.c (compare_parameter): Create vtab for actual argument,
766         instead of formal (if needed).
767
768 2010-09-15  Janus Weil  <janus@gcc.gnu.org>
769
770         PR fortran/45577
771         * resolve.c (resolve_allocate_expr): Do default initialization via
772         EXEC_INIT_ASSIGN.
773
774 2010-09-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
775
776         * mathbuiltins.def: Do not defined huge_val built-in.
777         * trans-const.c (gfc_build_inf_or_huge): New function.
778         * trans-const.h (gfc_build_inf_or_huge): New prototype.
779         * f95-lang.c (gfc_init_builtin_functions): Don't defined
780         huge_val built-ins.
781         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't
782         have functions of type (*) (void) anymore.
783         (gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge.
784         (gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead
785         of generating a call to huge_val().
786
787 2010-09-11  Mikael Morin  <mikael@gcc.gnu.org>
788
789         * gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute.
790         * dependency.c (gfc_check_dependency): Don't depend on
791         expr's inline_noncopying_intrinsic_attribute.
792         * dependency.c (gfc_check_argument_var_dependency,
793         gfc_check_argument_dependency): Ditto. Recursively check dependency
794         as NOT_ELEMENTAL in the non-copying (=transpose) case.
795         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
796         * resolve.c (find_noncopying_intrinsics): Remove.
797         (resolve_function, resolve_call): Remove call to
798         find_noncopying_intrinsics.
799
800         * trans-array.c (gfc_conv_array_transpose): Remove.
801         (gfc_walk_subexpr): Make non-static. Move prototype...
802         * trans-array.h (gfc_walk_subexpr): ... here.
803         * trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose
804         handling.
805         (walk_inline_intrinsic_transpose, walk_inline_intrinsic_function,
806         gfc_inline_intrinsic_function_p): New.
807         (gfc_is_intrinsic_libcall): Return early in inline intrinsic case.
808         Remove transpose from the libcall list.
809         (gfc_walk_intrinsic_function): Special case inline intrinsic.
810         * trans.h (gfc_inline_intrinsic_function_p): New prototype.
811
812 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
813
814         * trans-expr.c (expr_is_variable): New function taking non-copying
815         intrinsic functions into account.
816         (gfc_trans_assignment_1): Use expr_is_variable.
817
818 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
819
820         * trans-array.c (gfc_conv_loop_setup): Access the shape along the
821         real array dimension instead of the scalarizer (loop) dimension.
822
823 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
824
825         * trans-array.c (gfc_conv_resolve_dependencies): Handle same-array
826         transposed references.
827
828 2010-09-10  Tobias Burnus  <burnus@net-b.de>
829
830         PR fortran/45186
831         * trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
832         build4_stat_loc): New inline functions.
833         (build1_loc, build2_loc, build3_loc, build4_loc): New macros.
834         (build1_v, build2_v, build3_v, build4_v): Use input_location
835         as locus.
836         * trans-array.c (gfc_trans_scalarized_loop_end,
837         gfc_conv_array_parameter): Replace build[1-4] by build[1-4]_loc.
838         * trans.c (gfc_build_addr_expr, gfc_build_array_ref,
839         gfc_finish_wrapped_block): Ditto.
840         * trans-decl.c (gfc_init_default_dt, init_intent_out_dt): Ditto.
841         * trans-expr.c (gfc_conv_missing_dummy,
842         gfc_trans_alloc_subarray_assign, gfc_trans_zero_assign): Ditto.
843         * trans-openmp.c (gfc_omp_clause_default_ctor,
844         gfc_trans_omp_critical, gfc_trans_omp_parallel,
845         gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
846         gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
847         gfc_trans_omp_single, gfc_trans_omp_task,
848         gfc_trans_omp_workshare): Ditto.
849
850 2010-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
851
852         * fortran/expr.c (check_inquiry): OPTIONAL attribute is not allowed
853         for dummy argument that appears in a specification statement.
854
855 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
856
857         * trans-array.c (gfc_get_array_ref_dim): New function.
858         (gfc_trans_create_temp_array): Reconstruct array
859         bounds from loop bounds. Use array bounds instead of loop bounds.
860
861 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
862
863         * trans-array.c (gfc_set_loop_bounds_from_array_spec):
864         Get the array dimension from the dim array.
865
866 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
867
868         * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
869         dim array to get the stride in the innermost loop.
870
871 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
872
873         * trans-array.c (gfc_trans_create_temp_array): Don't set dim array.
874         (gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array.
875         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
876
877 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
878
879         * trans-array.c (gfc_trans_create_temp_array): Assert loop dimension
880         and info dimension are the same. Loop over loop dimension.
881         * trans-stmt.c (gfc_conv_elemental_dependencies): Set loop dimension
882
883 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
884
885         * trans-array.c (gfc_conv_array_transpose): Change generated descriptor
886         name
887
888 2010-09-09  Tobias Burnus  <burnus@net-b.de>
889
890         PR fortran/43665
891         * intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
892         STAT): Show also syntax for the function version.
893         * intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
894          add_sym_3s_intent): Remove function.
895         (add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
896         as argument.
897         (add_sym_2_intent): New function.
898         (add_functions): Set intent for functions which modify
899         the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
900         argument name of hostnm from "a" to "c"
901         (add_subroutines): Change add_sym_*s_intent to
902         add_sym_*s and add intent to the add_sym_*s calls.
903
904 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
905
906         PR fortran/38282
907         * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
908         MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
909         * gfortran.h: Define ISYM values for above intrinsics.
910         * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
911         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
912         gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
913         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
914         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
915         gfc_simplify_merge_bits, gfc_simplify_rshift,
916         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
917         gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
918         gfc_resolve_shift): New prototypes.
919         * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
920         gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
921         * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
922         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
923         functions.
924         * trans-intrinsic.c (gfc_conv_intrinsic_dshift,
925         gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
926         gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
927         functions.
928         (gfc_conv_intrinsic_function): Call above static functions.
929         * intrinsic.texi: Document new intrinsics.
930         * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
931         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
932         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
933         gfc_simplify_merge_bits, gfc_simplify_rshift, 
934         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
935         New functions.
936
937 2010-09-08  Jakub Jelinek  <jakub@redhat.com>
938
939         * frontend-passes.c (optimize_code_node): Walk block chain by default.
940
941         PR fortran/45597
942         * trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code
943         instead of code->block.
944
945         PR fortran/45595
946         * openmp.c (resolve_omp_do): Report not enough do loops for
947         collapse even if block->next is NULL.
948
949 2010-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
950
951         PR fortran/45576
952         * dependency.c (gfc_deb_compare_expr):  Take missing optional
953         arguments into account.
954
955 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
956
957         * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
958         * trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
959         (gfc_build_intrinsic_function_decls): Don't build the
960         gfor_fndecl_clz128 and gfor_fndecl_ctz128.
961         * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
962         gfc_conv_intrinsic_trailz): Generate inline arithmetic instead
963         of calling clz128/ctz128 library functions.
964
965 2010-09-07  Jan Hubicka  <jh@suse.cz>
966
967         * trans-expr.c (gfc_conv_initializer): Set STATIC flags for
968         initializers.
969
970 2010-09-07  Tobias Burnus <burnus@net-b.de>
971         
972         PR fortran/45583
973         * intrinsic.texi (COS): Remove superfluous "n".
974
975 2010-09-07  Tobias Burnus <burnus@net-b.de>
976
977         PR fortran/45186
978         * trans-array.c (gfc_conv_descriptor_data_get,
979         gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr,
980         gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype,
981         gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride,
982         gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound,
983         gfc_conv_shift_descriptor_lbound,
984         gfc_set_loop_bounds_from_array_spec,
985         gfc_trans_allocate_array_storage, gfc_trans_create_temp_array,
986         gfc_conv_array_transpose, gfc_get_iteration_count,
987         gfc_grow_array, gfc_trans_array_ctor_element,
988         gfc_trans_array_constructor_subarray,
989         gfc_trans_array_constructor_value,
990         constant_array_constructor_loop_size, gfc_trans_array_constructor,
991         gfc_set_vector_loop_bounds, gfc_trans_array_bound_check,
992         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
993         gfc_conv_array_ref, gfc_trans_preloop_setup,
994         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
995         gfc_conv_loop_setup, gfc_conv_array_extent_dim,
996         gfc_conv_descriptor_size, gfc_array_init_size,
997         gfc_array_allocate, gfc_array_deallocate,
998         gfc_trans_array_bounds, gfc_trans_auto_array_allocation,
999         gfc_trans_dummy_array_bias, gfc_get_dataptr_offset,
1000         get_array_charlen, gfc_conv_expr_descriptor,
1001         array_parameter_size, gfc_conv_array_parameter,
1002         gfc_trans_dealloc_allocated, get_full_array_size,
1003         duplicate_allocatable,
1004         structure_alloc_comps): Change fold_build[0-9] to
1005         fold_build[0-9]_loc.
1006         (duplicate_allocatable, structure_alloc_comps,
1007         gfc_duplicate_allocatable): Add space after function name.
1008
1009 2010-09-07  Mikael Morin  <mikael@gcc.gnu.org>
1010
1011         * trans-stmt.c (gfc_trans_character_select): Be conversion-safe while
1012         checking string length value.
1013         * trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using
1014         gfc_charlen_type_node type.
1015
1016         PR fortran/45564
1017         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string
1018         length to gfc_charlen_type_node.
1019
1020 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1021
1022         PR fortran/36931
1023         * frontend-passes.c (optimize_binop_array_assignment):  New
1024         function.
1025         (optimize_assignment):  Call it.
1026
1027 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1028
1029         PR fortran/34145
1030         * trans-expr.c (gfc_conv_substring):  If start and end
1031         of the string reference are equal, set the length to one.
1032
1033 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1034
1035         PR fortran/45560
1036         * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
1037
1038 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1039
1040         PR fortran/45560
1041         * dump-parse-tree.c (gfc_debug_expr): New function.
1042
1043 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1044
1045         PR fortran/38282
1046         * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
1047         (check_specific): Special case for those intrinsics.
1048         * gfortran.h (gfc_isym_id): Add new intrinsics
1049         * intrinsic.h (gfc_check_transf_bit_intrins,
1050         gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
1051         gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
1052         New prototypes.
1053         * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
1054         gfc_resolve_iparity, resolve_transformational): New functions.
1055         (gfc_resolve_product, gfc_resolve_sum,
1056         gfc_resolve_parity): Use resolve_transformational.
1057         * check.c (gfc_check_transf_bit_intrins): New function.
1058         * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
1059         gfc_simplify_iparity, do_bit_any, do_bit_ior,
1060         do_bit_xor, simplify_transformation): New functions.
1061         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
1062         gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
1063         * trans-intrinsic.c (gfc_conv_intrinsic_arith,
1064         gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
1065         Handle IALL, IANY and IPARITY intrinsics.       
1066         * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
1067         order.
1068         (IALL, IANY, IPARITY): Document new intrinsics.
1069
1070 2010-09-05  Tobias Burnus <burnus@net-b.de>
1071
1072         PR fortran/45186
1073         * f95-lang.c (gfc_truthvalue_conversion): Use
1074         fold_build[0-9]_loc instead of fold_build[0-9].
1075         * convert.c (convert): Ditto.
1076         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
1077         build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
1078         gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
1079         gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
1080         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
1081         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
1082         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
1083         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
1084         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
1085         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
1086         gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
1087         gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
1088         gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
1089         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
1090         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
1091         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
1092         gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
1093         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
1094         gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
1095         gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
1096         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
1097         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
1098         size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
1099         gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
1100         gfc_conv_intrinsic_transfer, gfc_conv_allocated,
1101         gfc_conv_associated, gfc_conv_same_type_as,
1102         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
1103
1104 2010-09-04  Tobias Burnus  <burnus@net-b.de>
1105
1106         PR fortran/45530
1107         * resolve.c (resolve_fl_namelist): Change constraint checking
1108         order to prevent endless loop.
1109
1110 2010-09-04  Janus Weil  <janus@gcc.gnu.org>
1111
1112         PR fortran/45507
1113         * resolve.c (resolve_allocate_expr): Generate default initializers
1114         already at this point, resolve them and put them into expr3, ...
1115         * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
1116         translation stage.
1117
1118 2010-09-03  Tobias Burnus  <burnus@net-b.de>
1119
1120         PR fortran/45186
1121         * trans-intrinsic.c (gfc_conv_intrinsic_sign,
1122         gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
1123         of build_call_expr.
1124         * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
1125         gfc_conv_string_length, gfc_conv_substring,
1126         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
1127         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
1128         gfc_conv_expr_op, gfc_build_compare_string,
1129         gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
1130         gfc_conv_derived_to_class, conv_isocbinding_procedure,
1131         gfc_conv_procedure_call, fill_with_spaces,
1132         gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
1133         gfc_trans_structure_assign, gfc_trans_pointer_assignment,
1134         gfc_trans_scalar_assign, gfc_trans_zero_assign,
1135         gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
1136         fold_build[0-9] to fold_build[0-9]_loc.
1137         * trans-io.c (set_parameter_const, set_parameter_value,
1138         set_parameter_ref, gfc_convert_array_to_string, set_string,
1139         set_internal_unit, io_result, set_error_locus,
1140         nml_get_addr_expr, build_dt): Ditto.
1141         * trans-openmp.c (gfc_omp_clause_default_ctor,
1142         gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
1143         gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
1144         gfc_trans_omp_do): Ditto.
1145         * trans.c (gfc_add_modify, gfc_build_addr_expr,
1146         gfc_build_array_ref, gfc_trans_runtime_error_vararg,
1147         gfc_trans_runtime_check, gfc_call_malloc,
1148         gfc_allocate_with_status, gfc_allocate_array_with_status,
1149         gfc_call_free, gfc_deallocate_with_status,
1150         gfc_call_realloc): Ditto.
1151
1152 2010-09-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1153
1154         PR fortran/45159
1155         * dependency.c (gfc_deb_compare_expr):  Compare equal for equal
1156         arglists for pure user functions, or for those intrinsic
1157         functions which are also pure.
1158         * intrinsics.c (add_conv):  Mark conversion functions as pure.
1159         (add_char_conversions):  Likewise.
1160
1161 2010-09-03  Daniel Kraft  <d@domob.eu>
1162
1163         PR fortran/34162
1164         * resolve.c (resolve_actual_arglist): Allow internal procedure
1165         as actual argument with Fortran 2008.
1166
1167 2010-09-03  Daniel Kraft  <d@domob.eu>
1168
1169         PR fortran/44602
1170         * gfortran.h (struct gfc_code): Renamed `whichloop' to
1171         `which_construct' as this is no longer restricted to loops.
1172         * parse.h (struct gfc_state_data): New field `construct'.
1173         * match.c (match_exit_cycle): Handle EXIT from non-loops.
1174         * parse.c (push_state): Set `construct' field.
1175         * resolve.c (resolve_select_type): Extend comment.
1176         * trans-stmt.c (gfc_trans_if): Add exit label.
1177         (gfc_trans_block_construct), (gfc_trans_select): Ditto.
1178         (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
1179         (gfc_trans_do), (gfc_trans_do_while): Ditto.
1180         (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
1181         (gfc_trans_cycle): Ditto.
1182         (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
1183
1184 2010-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1185
1186         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
1187         (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
1188         (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
1189         * intrinsic.texi (RSHIFT): Fix documentation.
1190
1191 2010-09-02  Tobias Burnus  <burnus@net-b.de>
1192
1193         PR fortran/45186
1194         * trans-common.c (create_common): Change build[0-9] to
1195         build[0-9]_loc.
1196         * trans-const.c (gfc_conv_constant_to_tree,
1197         gfc_conv_constant_to_tree): Ditto.
1198         * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
1199         gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
1200         add_argument_checking, create_main_function,
1201         gfc_generate_return): Ditto.
1202         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
1203         * trans-stmt.c (allocate_temp_for_forall_nest_1,
1204         compute_inner_temp_size, compute_overall_iter_number,
1205         generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
1206         gfc_conv_elemental_dependencies, gfc_do_allocate,
1207         gfc_evaluate_where_mask, gfc_trans_allocate,
1208         gfc_trans_arithmetic_if, gfc_trans_call,
1209         gfc_trans_character_select, gfc_trans_deallocate,
1210         gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
1211         gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
1212         gfc_trans_integer_select, gfc_trans_logical_select,
1213         gfc_trans_pointer_assign_need_temp, gfc_trans_return,
1214         gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
1215         gfc_trans_where_assign) Ditto.
1216
1217 2010-09-02  Janus Weil  <janus@gcc.gnu.org>
1218
1219         PR fortran/44541
1220         * resolve.c (resolve_symbol): Correct check for attributes of CLASS
1221         variable.
1222
1223 2010-09-02  Tobias Burnus  <burnus@net-b.de>
1224
1225         PR fortran/45489
1226         * resolve.c (apply_default_init): Mark symbol as referenced,
1227         if it is initialized.
1228         (resolve_symbol): Change intialized check for BT_DERIVED such
1229         that also function results get initialized; remove now obsolete
1230         gfc_set_sym_referenced for BT_CLASS.
1231
1232 2010-09-01  Janus Weil  <janus@gcc.gnu.org>
1233
1234         PR fortran/44541
1235         * class.c (gfc_find_derived_vtab): Add component '$def_init'.
1236         * resolve.c (resolve_allocate_expr): Defer handling of default
1237         initialization to 'gfc_trans_allocate'.
1238         (apply_default_init,resolve_symbol): Handle polymorphic dummies.
1239         (resolve_fl_derived): Suppress error messages for vtypes.
1240         * trans-stmt.c (gfc_trans_allocate): Handle initialization via
1241         polymorphic MOLD expression.
1242         * trans-expr.c (gfc_trans_class_init_assign): Now only used for
1243         dummy initialization.
1244
1245 2010-09-01  Tobias Burnus  <burnus@net-b.de>
1246
1247         * gfortran.texi (preprocessing): Update URL to COCO.
1248
1249 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1250
1251         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
1252         array quad_decls. Remove unnecessary assignment.
1253
1254 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1255
1256         * trans-expr.c (gfc_conv_power_op): Handle floating-point types
1257         other than long double.
1258         * mathbuiltins.def: Add builtins from the POW and CPOW family.
1259         * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
1260         * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
1261         prefix to function name.
1262         (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
1263         (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
1264         function name.
1265         (gfc_conv_intrinsic_exponent): Likewise.
1266         (gfc_conv_intrinsic_abs): Likewise.
1267         (gfc_conv_intrinsic_mod): Likewise.
1268         (gfc_conv_intrinsic_sign): Likewise.
1269         (gfc_conv_intrinsic_arith): Likewise.
1270         (gfc_conv_intrinsic_fraction): Likewise.
1271         (gfc_conv_intrinsic_nearest): Likewise.
1272         (gfc_conv_intrinsic_spacing): Likewise.
1273         (gfc_conv_intrinsic_rrspacing): Likewise.
1274         (gfc_conv_intrinsic_scale): Likewise.
1275         (gfc_conv_intrinsic_set_exponent): Likewise.
1276
1277 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1278
1279         * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
1280         * intrinsic.h (gfc_resolve_execute_command_line): New function.
1281         * iresolve.c (gfc_resolve_execute_command_line): New function.
1282         * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
1283         * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
1284
1285 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1286
1287         PR fortran/38282
1288         * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
1289         and parity{,l,ll} builtins.
1290         * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
1291         (gfc_conv_intrinsic_function): Call above new functions.
1292         * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
1293         functions.
1294         * intrinsic.texi: Document POPCNT and POPPAR.
1295
1296 2010-08-30  Janus Weil  <janus@gcc.gnu.org>
1297
1298         PR fortran/45456
1299         * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
1300
1301 2010-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1302
1303         * Make-lang.in: Add frontend-passes.o dependencies.
1304
1305 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
1306
1307         PR fortran/42769
1308         * resolve.c (resolve_structure_cons): For derived types, make sure the
1309         type has been resolved.
1310         (resolve_typebound_procedures): Make sure the vtab has been generated.
1311
1312 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
1313
1314         PR fortran/45439
1315         * match.c (gfc_match_select_type): Give the associate-name the
1316         FL_VARIABLE attribute.
1317
1318 2010-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1319
1320         * simplify.c (gfc_simplify_bessel_n2): Fix indention
1321         and argument type.
1322
1323 2010-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1324
1325         PR fortran/45436
1326         * trans-types.c (gfc_init_kinds): Disable TFmode.
1327
1328 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
1329
1330         PR fortran/45432
1331         * match.c (gfc_match_allocate): Avoid double free on error.
1332
1333 2010-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1334
1335         PR fortran/32049
1336         * gfortran.h (gfc_real_info): Add c_float128 field.
1337         * mathbuiltins.def: Indicate which builtins are const.
1338         * trans-types.h (float128_type_node, complex_float128_type_node,
1339         gfc_real16_is_float128): New variables.
1340         * trans-types.c (float128_type_node, complex_float128_type_node,
1341         gfc_real16_is_float128): New variables.
1342         (gfc_init_kinds): Allow TFmode.
1343         (gfc_build_real_type): Mark __float128 types as such.
1344         (gfc_init_types): Initialize float128_type_node and
1345         complex_float128_type_node
1346         * f95-lang.c (gfc_init_builtin_functions): Adjust for new
1347         argument of OTHER_BUILTIN macro.
1348         * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
1349         (builtin_decl_for_precision): Special case for __float128.
1350         (builtin_decl_for_float_kind): Likewise.
1351         (define_quad_builtin): New function.
1352         (gfc_build_intrinsic_lib_fndecls): Create all __float128
1353         library decls if necessary. Store them in the real16_decl and
1354         complex16_decl builtin map fields.
1355         (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
1356         library function names.
1357
1358 2010-08-27  Tobias Burnus  <burnus@net-b.de>
1359
1360         PR fortran/33197
1361         * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
1362         * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
1363         gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
1364         gfc_resolve_parity): New prototypes.
1365         * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
1366         GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
1367         * gcc/fortran/iresolve.c (gfc_resolve_norm2,
1368         gfc_resolve_parity): New functions.
1369         * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
1370         New functions.
1371         * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
1372         gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
1373         * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
1374         * gcc/fortran/simplify.c (simplify_transformation_to_array):
1375         Add post-processing opterator.
1376         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
1377         gfc_simplify_product, gfc_simplify_sum): Update call.
1378         (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
1379         gfc_simplify_parity): New functions.
1380
1381 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
1382
1383         PR fortran/45420
1384         * match.c (select_type_set_tmp): Add the possibility to reset the
1385         temporary to NULL.
1386         (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
1387
1388 2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1389
1390         PR fortran/45159
1391         * dependency.c (check_section_vs_section):  Single test for
1392         identical strides which takes into account that only one
1393         of the strides may be NULL.
1394
1395 2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1396
1397         PR fortran/43217
1398         * primary.c (match_hollerith_constant): Calculate padding needed to
1399         fill default integer and allocate string for that size.  Set pad bytes
1400         to ' '.
1401         * gfortran.h: Add hollerith pad value to type spec union.
1402         * data.c (create_character_initializer): Fix spelling of function name.
1403         Use hollerith pad value to calculate length.
1404         * arith.c (hollerith2representation); Use hollerith pad value to
1405         calculate length.
1406
1407 2010-08-26  Daniel Kraft  <d@domob.eu>
1408
1409         PR fortran/38936
1410         PR fortran/44047
1411         PR fortran/45384
1412         * gfortran.h (struct gfc_association_list): New flag `dangling'.
1413         (gfc_build_block_ns): Declared here...
1414         * parse.h (gfc_build_block_ns): ...instead of here.
1415         * trans.h (gfc_process_block_locals): Expect additionally the
1416         gfc_association_list of BLOCK (if present).
1417         * match.c (select_type_set_tmp): Create sym->assoc for temporary.
1418         * resolve.c (resolve_variable): Only check for invalid *array*
1419         references on associate-names.
1420         (resolve_assoc_var): New method with code previously in resolve_symbol.
1421         (resolve_select_type): Use association to give the selector and
1422         temporaries their values instead of ordinary assignment.
1423         (resolve_fl_var_and_proc): Allow CLASS associate-names.
1424         (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
1425         * trans-stmt.c (gfc_trans_block_construct): Pass association-list
1426         to `gfc_process_block_locals' to match new interface.
1427         * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
1428         here automatically.
1429         (gfc_process_block_locals): Defer them rather here when linked to
1430         from the BLOCK's association list.
1431
1432 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1433
1434         * trans-decl.c (gfc_build_intrinsic_function_decls): Set
1435         TREE_NOTHROW on fndecls that can't throw.  Set
1436         TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
1437         (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
1438         gfor_fndecl_associated.
1439
1440 2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>
1441
1442         PR fortran/45380
1443         * frontend-passes.c (optimize_equality): Don't optimize array equality
1444
1445 2010-08-23  Janus Weil  <janus@gcc.gnu.org>
1446
1447         PR fortran/45366
1448         * resolve.c (resolve_procedure_interface): New function split off from
1449         'resolve_symbol'.
1450         (resolve_formal_arglist): Call it here ...
1451         (resolve_symbol): ... and here.
1452
1453 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
1454
1455         * Make-lang.in (gfortranspec.o): Update dependencies.
1456         * gfortranspec.c: Include coretypes.h before gcc.h.  Include
1457         opts.h.
1458         (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
1459         (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
1460         (g77_xargc): Make unsigned.
1461         (g77_xargv): Change to g77_x_decoded_options.
1462         (g77_newargc): Make unsigned.
1463         (g77_newargv): Change to g77_new_decoded_options.
1464         (strings_same, options_same): New.
1465         (append_arg): Use cl_decoded_option structures.
1466         (append_option): New.
1467         (add_arg_libgfortran): New.
1468         (lang_specific_driver): Use cl_decoded_option structures.
1469
1470 2010-08-21  Janus Weil  <janus@gcc.gnu.org>
1471
1472         PR fortran/45271
1473         PR fortran/45290
1474         * class.c (add_proc_comp): Add static initializer for PPCs.
1475         (add_procs_to_declared_vtab): Modified comment.
1476         * module.c (mio_component): Add argument 'vtype'. Don't read/write the
1477         initializer if the component is part of a vtype.
1478         (mio_component_list): Add argument 'vtype', pass it on to
1479         'mio_component'.
1480         (mio_symbol): Modified call to 'mio_component_list'.
1481         * trans.h (gfc_conv_initializer): Modified prototype.
1482         (gfc_trans_assign_vtab_procs): Removed.
1483         * trans-common.c (create_common): Modified call to
1484         'gfc_conv_initializer'.
1485         * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
1486         gfc_emit_parameter_debug_info): Modified call to
1487         'gfc_conv_initializer'.
1488         (build_function_decl): Remove assertion.
1489         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1490         Removed call to 'gfc_trans_assign_vtab_procs'.
1491         (gfc_conv_initializer): Add argument 'procptr'.
1492         (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
1493         (gfc_trans_assign_vtab_procs): Removed.
1494         * trans-stmt.c (gfc_trans_allocate): Removed call to
1495         'gfc_trans_assign_vtab_procs'.
1496
1497 2010-08-21  Tobias Burnus  <burnus@net-b.de>
1498
1499         PR fortran/36158
1500         PR fortran/33197
1501         * intrinsic.c (add_sym): Init value attribute.
1502         (set_attr_value): New function.
1503         (add_functions) Use it and add JN/YN resolvers.
1504         * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
1505         * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
1506         * gfortran.h (gfc_intrinsic_arg): Add value attribute.
1507         * iresolve.c (gfc_resolve_bessel_n2): New function.
1508         * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
1509         formal arg list.
1510         (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
1511         Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
1512         * simplify.c (): For YN set to -INF if previous values
1513         was -INF.
1514         * trans-expr.c (gfc_conv_procedure_call): Don't crash
1515         if sym->as is NULL.
1516         * iresolve.c (gfc_resolve_extends_type_of): Set the
1517         type of the dummy argument to the one of the actual.
1518
1519 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1520
1521         * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
1522
1523 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1524
1525         * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
1526         comment, not -lg2c.
1527
1528 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1529
1530         * trans-openmp.c: Use FOR_EACH_VEC_ELT.
1531
1532 2010-08-19  Daniel Kraft  <d@domob.eu>
1533
1534         PR fortran/29785
1535         PR fortran/45016
1536         * trans.h (struct gfc_se): New flag `byref_noassign'.
1537         * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
1538         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1539         * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
1540         and check for compile-time errors with those.
1541         * trans-decl.c (trans_associate_var): Use new routine
1542         `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
1543         * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
1544         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1545         (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
1546         (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
1547         * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
1548         rank remapping for assignment.
1549
1550 2010-08-19  Tobias Burnus  <burnus@net-b.de>
1551
1552         * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
1553         * * simplify.c (gfc_simplify_bessel_yn): Change recursive
1554         into recurrence.
1555
1556 2010-08-19  Tobias Burnus  <burnus@net-b.de>
1557
1558         PR fortran/36158
1559         PR fortran/33197
1560         * check.c (gfc_check_bessel_n2): New function.
1561         * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
1562         * intrinsic.c (add_functions): Add transformational version
1563         of the Bessel_jn/yn intrinsics.
1564         * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
1565         gfc_simplify_bessel_yn2): New prototypes.
1566         * intrinsic.texi (Bessel_jn, Bessel_yn): Document
1567         transformational variant.
1568         * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
1569         Check for negative order.
1570         (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
1571         gfc_simplify_bessel_yn2): New functions.
1572
1573 2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1574
1575         PR fortran/41859
1576         * resolve.c (resolve_transfer): Traverse operands and set expression
1577         to be checked to a non EXPR_OP type.
1578
1579 2010-08-19  Janus Weil  <janus@gcc.gnu.org>
1580
1581         PR fortran/45290
1582         * gfortran.h (gfc_add_save): Modified prototype.
1583         * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
1584         (match_pointer_init): New function to match F08 pointer initialization.
1585         (variable_decl,match_procedure_decl,match_ppc_decl): Use
1586         'match_pointer_init'.
1587         (match_attr_spec): Module variables are implicitly SAVE.
1588         (gfc_match_save): Modified call to 'gfc_add_save'.
1589         * expr.c (gfc_check_assign_symbol): Extra checks for pointer
1590         initialization.
1591         * primary.c (gfc_variable_attr): Handle SAVE attribute.
1592         * resolve.c (resolve_structure_cons): Add new argument and do pointer
1593         initialization checks.
1594         (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
1595         (resolve_values): Call 'resolve_structure_cons' directly with init arg.
1596         (resolve_fl_variable): Handle SAVE_IMPLICIT.
1597         * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
1598         SAVE_IMPLICIT.
1599         * trans-decl.c (gfc_create_module_variable): Module variables with
1600         TARGET can already exist.
1601         * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
1602         (gfc_conv_initializer): Implement non-NULL pointer
1603         initialization.
1604
1605 2010-08-18  Tobias Burnus  <burnus@net-b.de>
1606
1607         PR fortran/45295
1608         * intrinsic.texi (selected_char_kind): Document ISO_10646
1609         support.
1610
1611 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
1612
1613         PR fortran/45304
1614         * trans-decl.c (build_library_function_decl_1): Chain on
1615         void_list_node instead of creating a new TREE_LIST.
1616         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
1617         * trans-types.c (gfc_get_function_type): Likewise.  Set
1618         typelist to void_list_node for the main program.
1619
1620 2010-08-17  Daniel Kraft  <d@domob.eu>
1621
1622         PR fortran/38936
1623         * gfortran.h (struct gfc_association_list): New member `where'.
1624         (gfc_is_associate_pointer) New method.
1625         * match.c (gfc_match_associate): Remember locus for each associate
1626         name matched and do not try to set variable flag.
1627         * parse.c (parse_associate): Use remembered locus for symbols.
1628         * primary.c (match_variable): Instead of variable-flag check for
1629         associate names set it for all such names used.
1630         * symbol.c (gfc_is_associate_pointer): New method.
1631         * resolve.c (resolve_block_construct): Don't generate assignments
1632         to give associate-names their values.
1633         (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
1634         (resolve_symbol): Set some more attributes for associate variables,
1635         set variable flag here and check it and don't try to build an
1636         explicitely shaped array-spec for array associate variables.
1637         * trans-expr.c (gfc_conv_variable): Dereference in case of association
1638         to scalar variable.
1639         * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
1640         (gfc_sym_type): Return pointer type for association to scalar vars.
1641         * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
1642         (trans_associate_var): New method.
1643         (gfc_trans_deferred_vars): Handle association symbols.
1644
1645 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1646
1647         * lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
1648         RejectDriver.
1649         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
1650         RejectDriver.
1651         * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
1652         OPT_MDX and OPT_MMDX.
1653
1654 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1655
1656         * lang.opt (MDX, MMDX): Mark RejectDriver.
1657
1658 2010-08-15  Janus Weil  <janus@gcc.gnu.org>
1659
1660         * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
1661         vtabs for generics any more).
1662
1663 2010-08-15  Daniel Kraft  <d@domob.eu>
1664
1665         PR fortran/38936
1666         * gfortran.h (gfc_find_proc_namespace): New method.
1667         * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
1668         around with namespace.
1669         * symbol.c (gfc_find_proc_namespace): New method.
1670         * trans-decl.c (gfc_build_qualified_array): Use it for correct
1671         value of nest.
1672         * primary.c (gfc_match_varspec): Handle associate-names as arrays.
1673         * parse.c (parse_associate): Removed assignment-generation here...
1674         * resolve.c (resolve_block_construct): ...and added it here.
1675         (resolve_variable): Handle names that are arrays but were not parsed
1676         as such because of association.
1677         (resolve_code): Fix BLOCK resolution.
1678         (resolve_symbol): Generate array-spec for associate-names.
1679
1680 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1681
1682         PR fortran/45211
1683         * decl.c (verify_c_interop_param): Remove superfluous space (" ").
1684         (verify_c_interop): Handle unresolved DT with bind(C).
1685
1686 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1687
1688         * trans-expr.c (gfc_conv_expr_present): Regard nullified
1689         pointer arrays as absent.
1690         (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
1691         dummys as absent argument.
1692         * interface.c (compare_actual_formal,compare_parameter):
1693         Ditto.
1694
1695 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1696
1697         * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
1698         dummies with intent(in).
1699
1700 2010-08-15  Daniel Kraft  <d@domob.eu>
1701
1702         PR fortran/45197
1703         * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
1704         routines not IMPURE also as PURE.
1705         * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
1706         `NO_CLASS' in `CLASS_IMPURE'.
1707         (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
1708         (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
1709         (add_functions): Ditto.
1710         (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
1711         * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
1712         (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
1713         are not ALLOCATABLE and have their INTENT specified.
1714
1715 2010-08-13  Daniel Kraft  <d@domob.eu>
1716
1717         * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
1718         * array.c (gfc_match_array_spec): Match implied-shape specification and
1719         handle AS_IMPLIED_SHAPE correctly otherwise.
1720         * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
1721         (variable_decl): Some checks for implied-shape declaration.
1722         * resolve.c (resolve_symbol): Assert that array-spec is no longer
1723         AS_IMPLIED_SHAPE in any case.
1724
1725 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
1726
1727         * lang.opt (MD, MMD): Change to MDX and MMDX.
1728         * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
1729
1730 2010-08-11  Janus Weil  <janus@gcc.gnu.org>
1731
1732         PR fortran/44595
1733         * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
1734         'gfc_intrinsic_arg'.
1735         (check_arglist,check_specific): Add reference to 'name' field.
1736         (init_arglist): Remove reference to 'name' field.
1737         * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
1738         * check.c (variable_check): Reverse order of checks. Respect intent of
1739         formal arg.
1740         (int_or_proc_check): New function.
1741         (coarray_check): New function.
1742         (allocatable_check): New function.
1743         (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
1744         (gfc_check_complex): Use 'int_or_real_check'.
1745         (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
1746         gfc_check_ucobound): Use 'coarray_check'.
1747         (gfc_check_pack): Use 'real_or_complex_check'.
1748         (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
1749         'int_or_proc_check'.
1750         (scalar_check,type_check,numeric_check,int_or_real_check,
1751         real_or_complex_check,kind_check,double_check,logical_array_check,
1752         array_check,same_type_check,rank_check,nonoptional_check,
1753         kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
1754         gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
1755         gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
1756         gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
1757         gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
1758         gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
1759         gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
1760         to 'name' field.
1761
1762 2010-08-10  Daniel Kraft  <d@domob.eu>
1763
1764         * gfortran.texi (Interoperability with C): Fix ordering in menu
1765         and add new subsection about pointers.
1766         (Interoperable Subroutines and Functions): Split off the pointer part.
1767         (working with Pointers): New subsection with extended discussion
1768         of pointers (especially procedure pointers).
1769
1770 2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1771
1772         PR fortran/44235
1773         * array.c (gfc_ref_dimen_size):  Add end argument.
1774         If end is non-NULL, calculate it.
1775         (ref_size):  Adjust call to gfc_ref_dimen_size.
1776         (gfc_array_dimen_size):  Likewise.
1777         (gfc_array_res_shape):  Likewise.
1778         * gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
1779         * resolve.c (resolve_array_ref):  For stride not equal to -1,
1780         fill in the lowest possible end.
1781
1782 2010-08-09  Janus Weil  <janus@gcc.gnu.org>
1783
1784         * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
1785
1786 2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>
1787
1788         * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
1789         alloca.
1790         (check_some_aliasing): Likewise.
1791         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
1792         (gfc_conv_intrinsic_int): Likewise.
1793         (gfc_conv_intrinsic_lib_function): Likewise.
1794         (gfc_conv_intrinsic_cmplx): Likewise.
1795         (gfc_conv_intrinsic_ctime): Likewise.
1796         (gfc_conv_intrinsic_fdate): Likewise.
1797         (gfc_conv_intrinsic_ttynam): Likewise.
1798         (gfc_conv_intrinsic_minmax): Likewise.
1799         (gfc_conv_intrinsic_minmax_char): Likewise.
1800         (gfc_conv_intrinsic_ishftc): Likewise.
1801         (gfc_conv_intrinsic_index_scan_verify): Likewise.
1802         (gfc_conv_intrinsic_merge): Likewise.
1803         (gfc_conv_intrinsic_trim): Likewise.
1804         * trans.c (gfc_trans_runtime_error_vararg): Likewise.
1805
1806 2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1807
1808         PR fortran/45159
1809         * dependency.c (check_section_vs_section):  Handle cases where
1810         the start expression coincides with the lower or upper
1811         bound of the array.
1812
1813 2010-08-04  Janus Weil  <janus@gcc.gnu.org>
1814
1815         PR fortran/42207
1816         PR fortran/44064
1817         PR fortran/44065
1818         * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
1819         container types. Do not artificially increase refs. Commit symbols one
1820         by one.
1821         * interface.c (compare_parameter): Make sure vtabs are present before
1822         generating module variables.
1823         * resolve.c (resolve_allocate_expr): Ditto.
1824
1825 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1826
1827         PR fortran/45183
1828         PR fortran/44857
1829         * resolve.c (resolve_structure_cons): Fix
1830         freeing of charlen.
1831
1832 2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
1833
1834         PR fortran/42051
1835         PR fortran/44064
1836         * symbol.c (changed_syms): Made static again.
1837         (gfc_symbol_state): Don't conditionalize on GFC_DEBUG.
1838         Changed conditional internal error into assert.
1839         Rename function to ...
1840         (gfc_enforce_clean_symbol_state): ... this.
1841         * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state):
1842         Rename the former to the latter.
1843         * parse.c (decode_statement, decode_omp_directive,
1844         decode_gcc_attribute): Update callers accordingly. Don't conditionalize
1845         on GFC_DEBUG.
1846         (changed_syms): Remove declaration.
1847         (next_statement): Use gfc_enforce_clean_symbol_state.
1848
1849 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1850
1851         PR fortran/44857
1852         * resolve.c (resolve_structure_cons): Fix handling of
1853         initialization structure constructors with character
1854         elements of the wrong length.
1855         * array.c (gfc_check_iter_variable): Add NULL check.
1856         (gfc_resolve_character_array_constructor): Also truncate
1857         character length.
1858
1859 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1860
1861         * trans-io.c (gfc_build_io_library_fndecls): Fix return
1862         value of some libgfortran functions.
1863
1864 2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1865
1866         PR fortran/45159
1867         * dependency.c (gfc_deb_compare_expr):  Remove any integer
1868         conversion functions to larger types from both arguments.
1869         Remove handling these functions futher down.
1870
1871 2010-08-03  Janus Weil  <janus@gcc.gnu.org>
1872
1873         PR fortran/44584
1874         PR fortran/45161
1875         * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
1876         * resolve.c (resolve_tb_generic_targets): Check for errors.
1877
1878 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1879
1880         PR fortran/45159
1881         * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
1882         can be reversed.
1883
1884 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1885
1886         PR fortran/36854
1887         * dependency.h:  Add prototype for gfc_are_identical_variables.
1888         * frontend-passes.c:  Include depencency.h.
1889         (optimimize_equality):  Use gfc_are_identical_variables.
1890         * dependency.c (identical_array_ref): New function.
1891         (gfc_are_identical_variables):  New function.
1892         (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
1893         * dependency.c (gfc_check_section_vs_section).  Rename gfc_
1894         prefix from statc function.
1895         (check_section_vs_section): Change arguments to gfc_array_ref,
1896         adjust function body accordingly.
1897
1898 2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1899             Janus Weil  <janus@gcc.gnu.org>
1900
1901         PR fortran/42051
1902         PR fortran/44064
1903         PR fortran/45151
1904         * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
1905         * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
1906         gfc_copy_formal_args, gfc_copy_formal_args_intr,
1907         gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
1908         * parse.c (parse_derived_contains, parse_spec, parse_progunit):
1909         Call reject_statement in case of error.
1910         (match_deferred_characteritics): Call gfc_undo_symbols in case match
1911         fails.
1912
1913 2010-08-01  Janus Weil  <janus@gcc.gnu.org>
1914
1915         PR fortran/44912
1916         * class.c (gfc_build_class_symbol): Make '$vptr' component private.
1917         (gfc_find_derived_vtab): Make vtabs and vtypes public.
1918         * module.c (read_module): When reading module files, always import
1919         vtab and vtype symbols.
1920
1921 2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
1922
1923         PR fortran/42051
1924         PR fortran/44064
1925         * symbol.c (changed_syms): Made non-static.
1926         * parse.c (changed_syms): Declare new external.
1927         (next_statement): Assert changed_syms is NULL at the beginning.
1928
1929 2010-07-30  Janus Weil  <janus@gcc.gnu.org>
1930             Steven G. Kargl  <kargl@gcc.gnu.org>
1931
1932         PR fortran/44929
1933         * match.c (match_type_spec): Try to parse derived types before
1934         intrinsic types.
1935
1936 2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
1937
1938         * gfortran.h (gfc_release_symbol): New prototype.
1939         * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
1940         (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
1941         Use gfc_release_symbol.
1942         * parse.c (gfc_fixup_sibling_symbols): Ditto.
1943         * resolve.c (resolve_symbol): Ditto.
1944
1945 2010-07-29  Tobias Burnus  <burnus@net-b.de>
1946
1947         PR fortran/45087
1948         PR fortran/45125
1949         * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
1950         external procedure declarations in modules.
1951         (gfc_get_symbol_decl): Modify assert.
1952
1953 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
1954
1955         PR fortran/44962
1956         * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
1957
1958 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
1959
1960         PR fortran/45004
1961         * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
1962         (gfc_trans_class_assign): Modified prototype.
1963         * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
1964         * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
1965         (gfc_trans_class_assign): ... here. Modified actual arguments.
1966         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
1967         handle the MOVE_ALLOC intrinsic with scalar and class arguments.
1968         * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
1969
1970 2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
1971
1972         PR fortran/42051
1973         PR fortran/44064
1974         * class.c (gfc_find_derived_vtab): Accept or discard newly created
1975         symbols before returning.
1976
1977 2010-07-29  Joseph Myers  <joseph@codesourcery.com>
1978
1979         * lang.opt (cpp): Remove Joined and Separate markers.
1980         (cpp=): New internal option.
1981         * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
1982         * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
1983         OPT_cpp.
1984
1985 2010-07-29  Daniel Kraft  <d@domob.eu>
1986
1987         PR fortran/45117
1988         * array.c (resolve_array_bound): Fix error message to properly handle
1989         non-variable expressions.
1990
1991 2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>
1992
1993         * decl.c (free_value): Also free repeat field.
1994         * data.c (gfc_assign_data_value): Always free offset before returning.
1995
1996 2010-07-28  Daniel Kraft  <d@domob.eu>
1997
1998         * gfortran.h (gfc_build_intrinsic_call): New method.
1999         * expr.c (gfc_build_intrinsic_call): New method.
2000         * simplify.c (range_check): Ignore non-constant value.
2001         (simplify_bound_dim): Handle non-variable expressions and
2002         fix memory leak with non-free'ed expression.
2003         (simplify_bound): Handle non-variable expressions.
2004         (gfc_simplify_shape): Ditto.
2005         (gfc_simplify_size): Ditto, but only in certain cases possible.
2006
2007 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
2008
2009         * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
2010         Remove.
2011
2012 2010-07-28  Tobias Burnus  <burnus@net-b.de>
2013
2014         PR fortran/45077
2015         * trans-types.c (gfc_get_derived_type): Fix DT declaration
2016         from modules for whole-file mode.
2017
2018 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2019
2020         * gfortran.h (gfc_handle_option): Update prototype and return
2021         value type.
2022         * options.c (gfc_handle_option): Update prototype and return value
2023         type.
2024
2025 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2026
2027         * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
2028         decoded options in allocating deferred_opt.
2029         * cpp.h (gfc_cpp_init_options): Update prototype.
2030         * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
2031         * gfortran.h (gfc_option_lang_mask): New.
2032         (gfc_init_options): Update prototype.
2033         * options.c (gfc_option_lang_mask): New.
2034         (gfc_init_options): Update prototype.  Pass new arguments to
2035         gfc_cpp_init_options.
2036
2037 2010-07-26  Tobias Burnus  <burnus@net-b.de>
2038
2039         PR fortran/40873
2040         * trans-decl.c (gfc_get_extern_function_decl): Fix generation
2041         for functions which are later in the same file.
2042         (gfc_create_function_decl, build_function_decl,
2043         build_entry_thunks): Add global argument.
2044         * trans.c (gfc_generate_module_code): Update
2045         gfc_create_function_decl call.
2046         * trans.h (gfc_create_function_decl): Update prototype.
2047         * resolve.c (resolve_global_procedure): Also resolve for
2048         IFSRC_IFBODY.
2049
2050 2010-07-26  Richard Henderson  <rth@redhat.com>
2051
2052         PR target/44132
2053         * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
2054         (gfc_write_global_declarations): New.
2055
2056 2010-07-26  Tobias Burnus  <burnus@net-b.de>
2057
2058         PR fortran/45066
2059         * trans-io.c (build_dt): Use NULL_TREE rather than NULL
2060         for call to transfer_namelist_element.
2061         * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
2062         for -fwhole-file.
2063
2064 2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
2065
2066         PR fortran/40628
2067         * Make-lang.in:  Add fortran/frontend-passes.o.
2068         * gfortran.h:  Add prototype for gfc_run_passes.
2069         * resolve.c (gfc_resolve):  Call gfc_run_passes.
2070         * frontend-passes.c:  New file.
2071
2072 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2073
2074         PR fortran/42852
2075         * scanner.c (gfc_next_char_literal): Enable truncation warning for
2076         free-form '&'.
2077
2078 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
2079
2080         PR fortran/44660
2081         * gfortran.h (gfc_namespace): New field old_equiv.
2082         (gfc_free_equiv_until): New prototype.
2083         * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
2084         a parameterized stop condition.
2085         (gfc_free_equiv): Use gfc_free_equiv_until.
2086         * parse.c (next_statement): Save equivalence list.
2087         (reject_statement): Restore equivalence list.
2088
2089 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2090
2091         PR fortran/42852
2092         * scanner.c (gfc_next_char_literal): Move check for truncation earlier
2093         in the function so that it does not get missed by early exits.
2094         (load_line): Add checks for quoted strings and free form comments to
2095         disable warnings on comments. Add check for ampersand as first
2096         character after truncation and don't warn for this case, but warn if
2097         there are subsequent non-whitespace characters.
2098
2099 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2100
2101         PR fortran/40011
2102         * parse.c (gfc_parse_file): Do not override
2103         gfc_global_ns_list items.
2104
2105 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2106
2107         * options.c (gfc_init_options): Enable -fwhole-file by default.
2108         * interface.c (compare_parameter): Assume a Hollerith constant is
2109         compatible with all other argument types.
2110
2111 2010-07-23  Tobias Burnus  <burnus@net-b.de>
2112
2113         PR fortran/44945
2114         * trans-decl.c (gfc_get_symbol_decl): Use module decl with
2115         -fwhole-file also for derived types.
2116         * trans-types.c (copy_dt_decls_ifequal): Remove static and
2117         rename to gfc_copy_dt_decls_ifequal.
2118         (gfc_get_derived_type): Update call.
2119         * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
2120
2121 2010-07-23  Tobias Burnus  <burnus@net-b.de>
2122
2123         PR fortran/45030
2124         * resolve.c (resolve_global_procedure): Properly handle ENTRY.
2125
2126 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
2127
2128         * trans-types.c (gfc_get_array_descriptor_base,
2129         gfc_get_array_type_bounds): Set TYPE_NAMELESS.
2130         * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
2131         instead of clearing DECL_NAME.
2132         (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
2133
2134 2009-07-23  Paul Thomas  <pault@gcc.gnu.org>
2135
2136         PR fortran/24524
2137         * trans-array.c (gfc_init_loopinfo): Initialize the reverse
2138         field.
2139         gfc_trans_scalarized_loop_end: If reverse set in dimension n,
2140         reverse the scalarization loop.
2141         gfc_conv_resolve_dependencies: Pass the reverse field of the
2142         loopinfo to gfc_dep_resolver.
2143         trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
2144         assignment by resetting loop.reverse.
2145         gfortran.h : Add the gfc_reverse enum.
2146         trans.h : Add the reverse field to gfc_loopinfo.
2147         dependency.c (gfc_check_dependency): Pass null to the new arg
2148         of gfc_dep_resolver.
2149         (gfc_check_section_vs_section): Check for reverse dependencies.
2150         (gfc_dep_resolver): Add reverse argument and deal with the loop
2151         reversal logic.
2152         dependency.h : Modify prototype for gfc_dep_resolver to include
2153         gfc_reverse *.
2154
2155 2010-07-23  Daniel Kraft  <d@domob.eu>
2156
2157         PR fortran/44709
2158         * gfortran.h (gfc_find_symtree_in_proc): New method.
2159         * symbol.c (gfc_find_symtree_in_proc): New method.
2160         * match.c (match_exit_cycle): Look for loop name also in parent
2161         namespaces within current procedure.
2162
2163 2010-07-22  Tobias Burnus  <burnus@net-b.de>
2164
2165         PR fortran/45019
2166         * dependency.c (gfc_check_dependency): Add argument alising check.
2167         * symbol.c (gfc_symbols_could_alias): Add argument alising check.
2168
2169 2010-07-22  Daniel Kraft  <d@domob.eu>
2170
2171         * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
2172         now in the correct place.
2173
2174 2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
2175
2176         PR fortran/44929
2177         * Revert my commit r162325.
2178
2179 2010-07-21  Daniel Kraft  <d@domob.eu>
2180
2181         * trans.h (gfc_get_return_label): Removed.
2182         (gfc_generate_return): New method.
2183         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2184         returning a tree directly.
2185         * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
2186         (gfc_trans_block_construct): Update for new interface to
2187         `gfc_trans_deferred_vars'.
2188         * trans-decl.c (current_function_return_label): Removed.
2189         (current_procedure_symbol): New variable.
2190         (gfc_get_return_label): Removed.
2191         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2192         returning a tree directly.
2193         (get_proc_result), (gfc_generate_return): New methods.
2194         (gfc_generate_function_code): Clean up and do init/cleanup here
2195         also with gfc_wrapped_block.  Remove return-label but rather
2196         return directly.
2197
2198 2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
2199
2200         PR fortran/44929
2201         * fortran/match.c (match_type_spec): Check for derived type before
2202         intrinsic types.
2203
2204 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
2205
2206         PR fortran/42385
2207         * interface.c (matching_typebound_op): Add argument for the
2208         return of the generic name for the procedure.
2209         (build_compcall_for_operator): Add an argument for the generic
2210         name of an operator procedure and supply it to the expression.
2211         (gfc_extend_expr, gfc_extend_assign): Use the generic name in
2212         calls to the above procedures.
2213         * resolve.c (resolve_typebound_function): Catch procedure
2214         component calls for CLASS objects, check that the vtable is
2215         complete and insert the $vptr and procedure components, to make
2216         the call.
2217         (resolve_typebound_function): The same.
2218         * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
2219         an allocatable scalar if it is a result.
2220
2221 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
2222
2223         PR fortran/44353
2224         * match.c (gfc_match_iterator): Reverted.
2225
2226 2010-07-18  Paul Thomas  <pault@gcc.gnu.org>
2227
2228         PR fortran/44353
2229         * match.c (gfc_match_iterator): Remove error that iterator
2230         cannot be INTENT(IN).
2231
2232 2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>
2233
2234         * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
2235         Access subscript through the "dim" field index.
2236         (gfc_trans_create_temp_array): Access ss info through the "dim" field
2237         index.
2238         (gfc_conv_array_index_offset): Ditto.
2239         (gfc_conv_loop_setup): Ditto.
2240         (gfc_conv_expr_descriptor): Ditto.
2241         (gfc_conv_ss_startstride): Ditto.  Update call to
2242         gfc_conv_section_startstride.
2243         (gfc_conv_section_startstride): Set values along the array dimension.
2244         Get array dimension directly from the argument.
2245
2246 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
2247
2248         * trans.h (gfc_string_to_single_character): New prototype.
2249         * trans-expr.c (string_to_single_character): Renamed to ...
2250         (gfc_string_to_single_character): ... this.  No longer static.
2251         (gfc_conv_scalar_char_value, gfc_build_compare_string,
2252         gfc_trans_string_copy): Adjust callers.
2253         * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
2254         * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
2255         (select_struct): Move to toplevel, add GTY(()).
2256         (gfc_trans_character_select): Optimize SELECT CASE
2257         with character length 1.
2258
2259 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2260
2261         * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2262         * trans-common.c: Likewise.
2263         * trans-decl.c: Likewise.
2264         * trans-types.c: Likewise.
2265         * trans.c: Likewise.
2266
2267 2010-07-15  Janus Weil  <janus@gcc.gnu.org>
2268
2269         PR fortran/44936
2270         * resolve.c (resolve_typebound_generic_call): Resolve generic
2271         non-polymorphic type-bound procedure calls to the correct specific
2272         procedure.
2273         (resolve_typebound_subroutine): Remove superfluous code.
2274
2275 2010-07-15  Daniel Kraft  <d@domob.eu>
2276
2277         PR fortran/44709
2278         * trans.h (struct gfc_wrapped_block): New struct.
2279         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2280         (gfc_finish_wrapped_block): New method.
2281         (gfc_init_default_dt): Add new init code to block rather than
2282         returning it.
2283         * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
2284         (gfc_trans_dummy_array_bias): Ditto.
2285         (gfc_trans_g77_array): Ditto.
2286         (gfc_trans_deferred_array): Ditto.
2287         * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
2288         (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
2289         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2290         (gfc_finish_wrapped_block): New method.
2291         * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
2292         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
2293         (gfc_trans_deferred_array): Ditto.
2294         * trans-decl.c (gfc_trans_dummy_character): Ditto.
2295         (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
2296         (init_intent_out_dt): Ditto.
2297         (gfc_init_default_dt): Add new init code to block rather than
2298         returning it.
2299         (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
2300         and cleanup code and put it all together.
2301
2302 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
2303
2304         * trans.h (gfc_build_compare_string): Add CODE argument.
2305         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
2306         gfc_build_compare_string.
2307         * trans-expr.c (gfc_conv_expr_op): Pass CODE to
2308         gfc_build_compare_string.
2309         (string_to_single_character): Rename len variable to length.
2310         (gfc_optimize_len_trim): New function.
2311         (gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
2312         or NE_EXPR and one of the strings is string literal with LEN_TRIM
2313         bigger than the length of the other string, they compare unequal.
2314
2315         PR fortran/40206
2316         * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
2317         in CASE_LABEL_EXPR and use NULL for low for the default case.
2318
2319 2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>
2320
2321         * trans-array.c (gfc_conv_section_upper_bound): Remove
2322         (gfc_conv_section_startstride): Don't set the upper bound in the
2323         vector subscript case.
2324         (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
2325
2326 2010-07-14  Janus Weil  <janus@gcc.gnu.org>
2327
2328         PR fortran/44925
2329         * gfortran.h (gfc_is_data_pointer): Remove prototype.
2330         * dependency.c (gfc_is_data_pointer): Make it static.
2331         * intrinsic.texi: Update documentation on C_LOC.
2332         * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
2333         and add a check for polymorphic variables.
2334
2335 2010-07-14  Jakub Jelinek  <jakub@redhat.com>
2336
2337         * trans-expr.c (string_to_single_character): Also optimize
2338         string literals containing a single char followed only by spaces.
2339         (gfc_trans_string_copy): Remove redundant string_to_single_character
2340         calls.
2341
2342         * trans-decl.c (gfc_build_intrinsic_function_decls,
2343         gfc_build_builtin_function_decls): Mark functions as
2344         DECL_PURE_P or TREE_READONLY.
2345
2346 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
2347
2348         * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
2349         instead of build_function_call_expr.
2350         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
2351
2352 2010-07-13  Tobias Burnus  <burnus@net-b.de>
2353             Daniel Franke  <franke.daniel@gmail.com>
2354
2355         PR fortran/43665
2356         * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
2357         * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
2358         static.
2359         * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
2360
2361 2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
2362             Tobias Burnus  <burnus@net-b.de>
2363
2364         PR fortran/43665
2365         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
2366         noclobber/noescape annotations to function calls.
2367         (gfc_build_builtin_function_decls): Likewise.
2368
2369 2010-07-13  Janus Weil  <janus@gcc.gnu.org>
2370
2371         PR fortran/44434
2372         PR fortran/44565
2373         PR fortran/43945
2374         PR fortran/44869
2375         * gfortran.h (gfc_find_derived_vtab): Modified prototype.
2376         * class.c (gfc_build_class_symbol): Modified call to
2377         'gfc_find_derived_vtab'.
2378         (add_proc_component): Removed, moved code into 'add_proc_comp'.
2379         (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
2380         generics.
2381         (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
2382         Removed treatment of generics.
2383         (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
2384         Call 'add_proc_comp' instead of duplicating code.
2385         (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
2386         and 'declared'.
2387         (add_generic_specifics,add_generics_to_declared_vtab): Removed.
2388         (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
2389         Removed treatment of generics.
2390         * iresolve.c (gfc_resolve_extends_type_of): Modified call to
2391         'gfc_find_derived_vtab'.
2392         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2393         Removed treatment of generics.
2394         (resolve_select_type,resolve_fl_derived): Modified call to
2395         'gfc_find_derived_vtab'.
2396         * trans-decl.c (gfc_get_symbol_decl): Ditto.
2397         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
2398         Ditto.
2399         * trans-stmt.c (gfc_trans_allocate): Ditto.
2400
2401 2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2402
2403         PR fortran/37077
2404         * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
2405         internal unit.
2406
2407 2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>
2408
2409         * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
2410         * resolve.c (build_default_init_expr): Ditto.
2411
2412 2010-07-11  Tobias Burnus  <burnus@net-b.de>
2413
2414         PR fortran/44702
2415         * module.c (sort_iso_c_rename_list): Remove.
2416         (import_iso_c_binding_module,use_iso_fortran_env_module):
2417         Allow multiple imports of the same symbol.
2418
2419 2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>
2420
2421         * arith.c (gfc_arith_done_1): Release mpfr internal caches.
2422
2423 2010-07-11  Janus Weil  <janus@gcc.gnu.org>
2424
2425         PR fortran/44869
2426         * decl.c (build_sym,attr_decl1): Only build the class container if the
2427         symbol has sufficient attributes.
2428         * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
2429         pointer attribute for classes.
2430         * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
2431         * module.c (MOD_VERSION): Bump.
2432         (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
2433         (mio_symbol_attribute): Handle class_pointer attribute.
2434         * parse.c (parse_derived): Use class_pointer instead of pointer
2435         attribute for classes.
2436         * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
2437         * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
2438         resolve_allocate_expr,resolve_fl_derived): Ditto.
2439         (resolve_fl_var_and_proc): Check for class_ok attribute.
2440
2441 2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>
2442
2443         * trans-io.c (gfc_build_st_parameter): Update calls to
2444         gfc_add_field_to_struct.
2445         * trans-stmt.c (ADD_FIELD): Ditto.
2446         * trans-types.c
2447         (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
2448         C_ADDRESS field.
2449         (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
2450         fieldlist, remove fieldlist from argument list.
2451         (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
2452         and remove fieldlist from argument list.
2453         (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
2454         gfc_get_mixed_entry_union): Move setting
2455         TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
2456         * trans-types.h (gfc_add_field_to_struct): Update prototype.
2457
2458 2010-07-10  Paul Thomas  <pault@gcc.gnu.org>
2459
2460         PR fortran/44773
2461         * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
2462         if the lhs has never been host associated, as well as not being
2463         use associated, a pointer or a target.
2464         * resolve.c (resolve_variable): Mark variables that are host
2465         associated.
2466         * gfortran.h: Add the host_assoc bit to the symbol_attribute
2467         structure.
2468
2469 2010-07-09  Janus Weil  <janus@gcc.gnu.org>
2470
2471         * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
2472         STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
2473         SIZEOF and C_SIZEOF.
2474
2475 2010-07-08  Janus Weil  <janus@gcc.gnu.org>
2476
2477         PR fortran/44649
2478         * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
2479         * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
2480         gfc_resolve_storage_size): New prototypes.
2481         * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
2482         * intrinsic.c (add_functions): Add STORAGE_SIZE.
2483         * iresolve.c (gfc_resolve_storage_size): New function.
2484         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
2485         arguments.
2486         (gfc_conv_intrinsic_storage_size): New function.
2487         (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
2488
2489 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
2490
2491         PR fortran/44847
2492         * match.c (match_exit_cycle): Error on EXIT also from collapsed
2493         !$omp do loops.  Error on CYCLE to non-innermost collapsed
2494         !$omp do loops.
2495
2496 2010-07-08  Tobias Burnus  <burnus@net-b.de>
2497
2498         PR fortran/18918
2499         * array.c (gfc_match_array_ref): Better error message for
2500         coarrays with too few ranks.
2501         (match_subscript): Move one diagnostic to caller.
2502         * gfortran.h (gfc_get_corank): Add prottype.
2503         * expr.c (gfc_get_corank): New function.
2504         * iresolve.c (resolve_bound): Fix rank for cobounds.
2505         (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
2506         gfc_resolve_ucobound, gfc_resolve_this_image): Update
2507         resolve_bound call.
2508
2509 2010-07-06  Tobias Burnus  <burnus@net-b.de>
2510
2511         PR fortran/44742
2512         * array.c (gfc_expand_constructor): Add optional diagnostic.
2513         * gfortran.h (gfc_expand_constructor): Update prototype.
2514         * expr.c (gfc_simplify_expr, check_init_expr,
2515         gfc_reduce_init_expr): Update gfc_expand_constructor call.
2516         * resolve.c (gfc_resolve_expr): Ditto.
2517
2518 2010-07-06  Tobias Burnus  <burnus@net-b.de>
2519
2520         * trans-decl.c: Include diagnostic-core.h besides toplev.h.
2521         * trans-intrinsic.c: Ditto.
2522         * trans-types.c: Ditto.
2523         * convert.c: Include diagnostic-core.h instead of toplev.h.
2524         * options.c: Ditto.
2525         * trans-array.c: Ditto.
2526         * trans-const.c: Ditto.
2527         * trans-expr.c: Ditto.
2528         * trans-io.c: Ditto.
2529         * trans-openmp.c: Ditto.
2530         * trans.c: Ditto.
2531
2532 2010-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
2533
2534         PR fortran/PR44693
2535         * check.c (dim_rank_check):  Also check intrinsic functions.
2536         Adjust permissible rank for functions which reduce the rank of
2537         their argument.  Spread is an exception, where DIM can
2538         be one larger than the rank of array.
2539
2540 2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>
2541
2542         PR fortran/44797
2543         * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
2544
2545 2010-07-05  Paul Thomas  <pault@gcc.gnu.org>
2546
2547         PR fortran/44596
2548         * trans-types.c (gfc_get_derived_type): Derived type fields
2549         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
2550         but build_pointer_type_for_mode must be used for this.
2551
2552 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
2553
2554         * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
2555         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
2556         type of gfc_conv_procedure_call.
2557         (conv_generic_with_optional_char_arg): Likewise.
2558         * trans-stmt.c (gfc_trans_call): Likewise.
2559         * trans-expr.c (gfc_conv_function_expr): Likewise.
2560         (gfc_conv_procedure_call): Use build_call_vec instead of
2561         build_call_list.
2562
2563 2010-07-04  Daniel Kraft  <d@domob.eu>
2564
2565         * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
2566
2567 2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
2568
2569         PR fortran/44596
2570         PR fortran/44745
2571         * trans-types.c (gfc_get_derived_type): Derived type fields
2572         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
2573
2574 2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>
2575
2576         PR fortran/44662
2577         * decl.c (match_procedure_in_type): Clear structure before using.
2578         (gfc_match_generic): Ditto.
2579
2580 2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>
2581
2582         * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
2583         * trans-types.c (gfc_add_field_to_struct_1): New function, most
2584         of which comes from...
2585         (gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
2586         (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
2587         building fields.
2588         (gfc_get_array_descriptor_base): Likewise.
2589         (gfc_get_mixed_entry_union): Likewise.
2590         (gfc_get_derived_type): Add extra chain parameter for
2591         gfc_add_field_to_struct.
2592         * trans-stmt.c (gfc_trans_character_select): Likewise.
2593         * trans-io.c (gfc_build_st_parameter): Likewise.
2594
2595 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
2596
2597         PR fortran/44718
2598         * resolve.c (is_external_proc): Prevent procedure pointers from being
2599         regarded as external procedures.
2600
2601 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
2602
2603         PR fortran/44696
2604         * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
2605         passed as second argument of ASSOCIATED.
2606
2607 2010-06-29  Paul Thomas  <pault@gcc.gnu.org>
2608
2609         PR fortran/44582
2610         * trans-expr.c (arrayfunc_assign_needs_temporary): New function
2611         to determine if a function assignment can be made without a
2612         temporary.
2613         (gfc_trans_arrayfunc_assign): Move all the conditions that
2614         suppress the direct function call to the above new functon and
2615         call it.
2616
2617 2010-06-28  Paul Thomas  <pault@gcc.gnu.org>
2618
2619         PR fortran/40158
2620         * interface.c (argument_rank_mismatch): New function.
2621         (compare_parameter): Call new function instead of generating
2622         the error directly.
2623
2624 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
2625
2626         * trans-openmp.c (dovar_init): Define.  Define VECs containing it.
2627         (gfc_trans_omp_do): Use a VEC to accumulate variables and their
2628         initializers.
2629
2630 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
2631
2632         * Make-lang.in: Update dependencies.
2633
2634 2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>
2635
2636         * gfortran.h (gfc_code): Split backend_decl field into cycle_label
2637         and exit_label fields.
2638         * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
2639         individually.
2640         * trans-stmt.c (gfc_trans_simple_do): Likewise.
2641         (gfc_trans_do): Likewise.
2642         (gfc_trans_do_while): Likewise.
2643         (gfc_trans_cycle): Use cycle_label directly.
2644         (gfc_trans_exit): Use exit_label directly.
2645
2646 2010-06-27  Daniel Kraft  <d@domob.eu>
2647
2648         * dump-parse-tree.c (show_symbol): Dump target-expression for
2649         associate names.
2650         (show_code_node): Make distinction between BLOCK and ASSOCIATE.
2651         (show_namespace): Use show_level for correct indentation of
2652         "inner namespaces" (contained procedures or BLOCK).
2653
2654 2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2655
2656         PR fortran/44678
2657         * dump-parse-tree.c (show_code_node):  Show namespace for
2658         EXEC_BLOCK.
2659
2660 2010-06-26  Tobias Burnus  <burnus@net-b.de>
2661
2662         * decl.c (gfc_match_decl_type_spec): Support
2663         TYPE(intrinsic-type-spec).
2664
2665 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2666
2667         * intrinsic.h (gfc_check_selected_real_kind,
2668         gfc_simplify_selected_real_kind): Update prototypes.
2669         * intrinsic.c (add_functions): Add radix support to
2670         selected_real_kind.
2671         * check.c (gfc_check_selected_real_kind): Ditto.
2672         * simplify.c (gfc_simplify_selected_real_kind): Ditto.
2673         * trans-decl.c (gfc_build_intrinsic_function_decls):
2674         Change call from selected_real_kind to selected_real_kind2008.
2675         * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
2676         (PRECISION, RANGE, RADIX): Add cross @refs.
2677
2678 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2679
2680         * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
2681         * gfortran.texi (_gfortran_set_options): Update for
2682         GFC_STD_F2008_OBS addition.
2683         * libgfortran.h: Add GFC_STD_F2008_OBS.
2684         * options.c (set_default_std_flags, gfc_handle_option): Handle
2685         GFC_STD_F2008_OBS.
2686         io.c (check_format): Fix allow_std check.
2687
2688 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2689
2690         * decl.c (gfc_match_entry): Allow END besides
2691         END SUBROUTINE/END FUNCTION for contained procedures.
2692
2693 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2694
2695         * parse.c (next_free, next_fixed): Allow ";" as first character.
2696
2697 2010-06-24  Tobias Burnus  <burnus@net-b.de>
2698
2699         PR fortran/44614
2700         * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
2701
2702 2010-06-22  Janus Weil  <janus@gcc.gnu.org>
2703
2704         PR fortran/44616
2705         * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
2706         containers.
2707
2708 2010-06-21  Tobias Burnus  <burnus@net-b.de>
2709
2710         PR fortran/40632
2711         * interface.c (compare_parameter): Add gfc_is_simply_contiguous
2712         checks.
2713         * symbol.c (gfc_add_contiguous): New function.
2714         (gfc_copy_attr, check_conflict): Handle contiguous attribute.
2715         * decl.c (match_attr_spec): Ditto.
2716         (gfc_match_contiguous): New function.
2717         * resolve.c (resolve_fl_derived, resolve_symbol): Handle
2718         contiguous.
2719         * gfortran.h (symbol_attribute): Add contiguous.
2720         (gfc_is_simply_contiguous): Add prototype.
2721         (gfc_add_contiguous): Add prototype.
2722         * match.h (gfc_match_contiguous): Add prototype.
2723         * parse.c (decode_specification_statement,
2724         decode_statement): Handle contiguous attribute.
2725         * expr.c (gfc_is_simply_contiguous): New function.
2726         * dump-parse-tree.c (show_attr): Handle contiguous.
2727         * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
2728         Ditto.
2729         * trans-expr.c (gfc_add_interface_mapping): Copy
2730         attr.contiguous.
2731         * trans-array.c (gfc_conv_descriptor_stride_get,
2732         gfc_conv_array_parameter): Handle contiguous arrays.
2733         * trans-types.c (gfc_build_array_type, gfc_build_array_type,
2734         gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
2735         Ditto.
2736         * trans.h (gfc_array_kind): Ditto.
2737         * trans-decl.c (gfc_get_symbol_decl): Ditto.
2738
2739 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
2740
2741         * options.c (gfc_handle_option): Don't handle N_OPTS.
2742
2743 2010-06-19  Janus Weil  <janus@gcc.gnu.org>
2744
2745         PR fortran/44584
2746         * resolve.c (resolve_fl_derived): Reverse ordering of conditions
2747         to avoid ICE.
2748
2749 2010-06-18  Tobias Burnus  <burnus@net-b.de>
2750
2751         PR fortran/44556
2752         * resolve.c (resolve_allocate_deallocate): Properly check
2753         part-refs in stat=/errmsg= for invalid use.
2754
2755 2010-06-17  Janus Weil  <janus@gcc.gnu.org>
2756
2757         PR fortran/44558
2758         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2759         Return directly in case of an error.
2760
2761 2010-06-16  Janus Weil  <janus@gcc.gnu.org>
2762
2763         PR fortran/44549
2764         * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
2765         * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
2766         structure to each procedure in a procedure list.
2767         * module.c (mio_typebound_proc): Add NULL argument to
2768         'gfc_get_typebound_proc'.
2769         * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
2770         to initialize the new structure.
2771
2772 2010-06-15  Janus Weil  <janus@gcc.gnu.org>
2773
2774         PR fortran/43388
2775         * gfortran.h (gfc_expr): Add new member 'mold'.
2776         * match.c (gfc_match_allocate): Implement the MOLD tag.
2777         * resolve.c (resolve_allocate_expr): Ditto.
2778         * trans-stmt.c (gfc_trans_allocate): Ditto.
2779
2780 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
2781
2782         PR fortran/44536
2783         * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
2784         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
2785         GFC_DECL_SAVED_DESCRIPTOR set.
2786         (gfc_omp_report_decl): New function.
2787         * trans.h (gfc_omp_report_decl): New prototype.
2788         * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
2789
2790 2010-06-13  Daniel Franke  <franke.daniel@gmail.com>
2791
2792         PR fortran/31588
2793         PR fortran/43954
2794         * gfortranspec.c (lang_specific_driver): Removed deprecation
2795         warning for -M.
2796         * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
2797         * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
2798         * cpp.h (gfc_cpp_makedep): New.
2799         (gfc_cpp_add_dep): New.
2800         (gfc_cpp_add_target): New.
2801         * cpp.c (gfc_cpp_option): Add deps* members.
2802         (gfc_cpp_makedep): New.
2803         (gfc_cpp_add_dep): New.
2804         (gfc_cpp_add_target): New.
2805         (gfc_cpp_init_options): Initialize new options.
2806         (gfc_cpp_handle_option): Handle new options.
2807         (gfc_cpp_post_options): Map new options to libcpp-options.
2808         (gfc_cpp_init): Handle deferred -MQ and -MT options.
2809         (gfc_cpp_done): If requested, write dependencies to file.
2810         * module.c (gfc_dump_module): Add a module filename as target.
2811         * scanner.c (open_included_file): New parameter system; add the
2812         included file as dependency.
2813         (gfc_open_included_file): Add the included file as dependency.
2814         (gfc_open_intrinsic_module): Likewise.
2815         * invoke.texi: Removed deprecation warning for -M.
2816         * gfortran.texi: Removed Makefile-dependencies project.
2817
2818 2010-06-12  Daniel Franke  <franke.daniel@gmail.com>
2819
2820         * resolve.c (resolve_global_procedure): Improved checking if an
2821         explicit interface is required.
2822
2823 2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2824
2825         * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
2826         return type.
2827         * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
2828         (gfc_conv_intrinsic_ttynam): Likewise.
2829         (gfc_conv_intrinsic_trim): Likewise.
2830
2831 2010-06-12  Janus Weil  <janus@gcc.gnu.org>
2832
2833         PR fortran/40117
2834         * decl.c (match_procedure_in_type): Allow procedure lists (F08).
2835
2836 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2837
2838         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
2839
2840 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2841
2842         * mathbuiltins.def: Add builtins that do not directly correspond
2843         to a Fortran intrinsic, with new macro OTHER_BUILTIN.
2844         * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
2845         * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
2846         code_{r,c}{4,8,10,16} fields. Add
2847         {,complex}{float,double,long_double}_built_in fields.
2848         (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
2849         DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
2850         definition of OTHER_BUILTIN.
2851         (real_compnt_info): Remove unused struct.
2852         (builtin_decl_for_precision, builtin_decl_for_float_kind): New
2853         functions.
2854         (build_round_expr): Call builtin_decl_for_precision instead of
2855         series of if-else.
2856         (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
2857         instead of a switch.
2858         (gfc_build_intrinsic_lib_fndecls): Match
2859         {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
2860         (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
2861         kinds.
2862         (gfc_conv_intrinsic_lib_function): Go through all the extended
2863         gfc_intrinsic_map.
2864         (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
2865         instead of a switch.
2866         (gfc_conv_intrinsic_abs): Likewise.
2867         (gfc_conv_intrinsic_mod): Likewise.
2868         (gfc_conv_intrinsic_sign): Likewise.
2869         (gfc_conv_intrinsic_fraction): Likewise.
2870         (gfc_conv_intrinsic_nearest): Likewise.
2871         (gfc_conv_intrinsic_spacing): Likewise.
2872         (gfc_conv_intrinsic_rrspacing): Likewise.
2873         (gfc_conv_intrinsic_scale): Likewise.
2874         (gfc_conv_intrinsic_set_exponent): Likewise.
2875
2876 2010-06-11  Paul Thomas  <pault@gcc.gnu.org>
2877
2878         PR fortran/42051
2879         PR fortran/43896
2880         * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
2881         functions with CLASS formal arguments.
2882
2883 2010-06-10  Janus Weil  <janus@gcc.gnu.org>
2884
2885         PR fortran/44207
2886         * resolve.c (conformable_arrays): Handle allocatable components.
2887
2888 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2889
2890         PR fortran/38273
2891         * gfortran.texi: Document that Cray pointers cannot be function
2892         results.
2893
2894 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2895
2896         PR fortran/36234
2897         * gfortran.texi: Document lack of support for syntax
2898         "complex FUNCTION name*16()", and existence of alternative
2899         legacy syntax "complex*16 FUNCTION name()".
2900
2901 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2902
2903         PR fortran/43032
2904         * intrinsic.texi (FLUSH): Note the difference between FLUSH and
2905         POSIX's fsync(), and how to call the latter from Fortran code.
2906
2907 2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
2908
2909         PR fortran/44457
2910         * interface.c (compare_actual_formal): Reject actual arguments with
2911         array subscript passed to ASYNCHRONOUS dummys.
2912
2913 2010-06-10  Daniel Kraft  <d@domob.eu>
2914
2915         PR fortran/38936
2916         * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
2917         (struct gfc_symbol): New field `assoc'.
2918         (struct gfc_association_list): New struct.
2919         (struct gfc_code): New struct `block' in union, move `ns' there
2920         and add association list.
2921         (gfc_free_association_list): New method.
2922         (gfc_has_vector_subscript): Made public;
2923         * match.h (gfc_match_associate): New method.
2924         * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
2925         * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
2926         * interface.c (gfc_has_vector_subscript): Made public.
2927         (compare_actual_formal): Rename `has_vector_subscript' accordingly.
2928         * match.c (gfc_match_associate): New method.
2929         (gfc_match_select_type): Change reference to gfc_code's `ns' field.
2930         * primary.c (match_variable): Don't allow names associated to expr here.
2931         * parse.c (decode_statement): Try matching ASSOCIATE statement.
2932         (case_exec_markers, case_end): Add ASSOCIATE statement.
2933         (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
2934         (parse_associate): New method.
2935         (parse_executable): Handle ST_ASSOCIATE.
2936         (parse_block_construct): Change reference to gfc_code's `ns' field.
2937         * resolve.c (resolve_select_type): Ditto.
2938         (resolve_code): Ditto.
2939         (resolve_block_construct): Ditto and add comment.
2940         (resolve_select_type): Set association list in generated BLOCK to NULL.
2941         (resolve_symbol): Resolve associate names.
2942         * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
2943         and free association list.
2944         (gfc_free_association_list): New method.
2945         * symbol.c (gfc_new_symbol): NULL new field `assoc'.
2946         * trans-stmt.c (gfc_trans_block_construct): Change reference to
2947         gfc_code's `ns' field.
2948
2949 2010-06-10  Kai Tietz  <kai.tietz@onevision.com>
2950
2951         * error.c (error_print): Pre-initialize loc by NULL.
2952         * openmp.c (resolve_omp_clauses): Add explicit
2953         braces to avoid ambigous else.
2954         * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
2955
2956 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
2957
2958         * gfc-internals.texi: Move to GFDL 1.3.
2959         * gfortran.texi: Ditto.
2960         * intrinsic.texi: Ditto.
2961         * invoke.texi: Ditto.
2962
2963 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
2964
2965         PR fortran/44347
2966         * check.c (gfc_check_selected_real_kind): Verify that the
2967         actual arguments are scalar.
2968
2969 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
2970
2971         PR fortran/44359
2972         * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
2973
2974 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
2975
2976         PR fortran/44430
2977         * dump-parse-tree.c (show_symbol): Avoid infinite loop.
2978
2979 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2980
2981         * fortran/symbol.c (check_conflict):  Remove an invalid conflict check.
2982
2983 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2984
2985         * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
2986         gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
2987         * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
2988         gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
2989         gfc_check_bitfcn.
2990         * fortran/check.c (nonnegative_check, less_than_bitsize1, 
2991         less_than_bitsize2): New functions.
2992         (gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
2993         nonnegative_check and less_than_bitsize1.
2994         (gfc_check_ibclr, gfc_check_ibset): Removed.
2995         (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
2996         less_than_bitsize1.
2997
2998 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
2999
3000         PR fortran/44211
3001         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
3002         Resolve references.
3003
3004 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
3005
3006         * resolve.c (resolve_deallocate_expr): Avoid warning
3007         about possible use of iunitialized sym.
3008         (resolve_allocate_expr): Pre-initialize sym by NULL.
3009
3010 2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3011
3012         PR fortran/43040
3013         * f95-lang.c (gfc_init_builtin_functions): Remove comment.
3014
3015 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3016
3017         * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
3018         allocation.
3019         (gfc_get_array_type_bounds): Likewise.
3020
3021         * trans-decl.c (gfc_allocate_lang_decl): Likewise.
3022         (gfc_find_module): Likewise.
3023
3024         * f95-lang.c (pushlevel): Likewise.
3025
3026         * trans.h (struct lang_type): Add variable_size GTY option.
3027         (struct lang_decl): Likewise.
3028
3029 2010-06-08  Tobias Burnus  <burnus@net-b.de>
3030
3031         PR fortran/44446
3032         * symbol.c (check_conflict): Move protected--external/procedure check ...
3033         * resolve.c (resolve_select_type): ... to the resolution stage.
3034
3035 2010-06-07  Tobias Burnus  <burnus@net-b.de>
3036
3037         * options.c (gfc_handle_option): Fix -fno-recursive.
3038
3039 2010-06-07  Tobias Burnus  <burnus@net-b.de>
3040
3041         * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
3042         * gfortran.texi (copyrights-gfortran): Ditto.
3043
3044 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
3045
3046         * lang.opt (fshort-enums): Define using Var and VarExists.
3047         * options.c (gfc_handle_option): Don't set flag_short_enums here.
3048
3049 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
3050             Janus Weil  <janus@gcc.gnu.org>
3051
3052         PR fortran/43945
3053         * resolve.c (get_declared_from_expr): Move to before
3054         resolve_typebound_generic_call.  Make new_ref and class_ref
3055         ignorable if set to NULL.
3056         (resolve_typebound_generic_call): Once we have resolved the
3057         generic call, check that the specific instance is that which
3058         is bound to the declared type.
3059         (resolve_typebound_function,resolve_typebound_subroutine): Avoid
3060         freeing 'class_ref->next' twice.
3061
3062 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
3063
3064         PR fortran/43895
3065         * trans-array.c (structure_alloc_comps): Dereference scalar
3066         'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
3067         TREE_TYPE (decl).
3068
3069 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
3070
3071         * gfortranspec.c (append_arg, lang_specific_driver): Use
3072         GCC-specific formats in diagnostics.
3073
3074 2010-06-02  Tobias Burnus  <burnus@net-b.de>
3075
3076         PR fortran/44360
3077         * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
3078         symbols.
3079
3080 2010-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3081
3082         PR fortran/44371
3083         * match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
3084         condition block.
3085
3086 2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>
3087
3088         * fortran/gfortran.texi:  Fix typos in description of variable-format-
3089         expressions.
3090
3091 2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
3092
3093         PR fortran/36928
3094         * dependency.c (gfc_check_section_vs_section):  Check
3095         for interleaving array assignments without conflicts.
3096
3097 2010-05-30  Janus Weil  <janus@gcc.gnu.org>
3098
3099         * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
3100         $data component of a class container.
3101         * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
3102         * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
3103         gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
3104         * gcc/fortran/interface.c (matching_typebound_op): Ditto.
3105         * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
3106         * gcc/fortran/parse.c (parse_derived): Ditto.
3107         * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
3108         gfc_expr_attr): Ditto.
3109         * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
3110         resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
3111         resolve_fl_var_and_proc, resolve_typebound_procedure,
3112         resolve_fl_derived): Ditto.
3113         * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
3114         * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
3115         CLASS_DATA.
3116         * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
3117         gfc_trans_deferred_vars): Ditto.
3118         * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
3119
3120 2010-05-28  Tobias Burnus  <burnus@net-b.de>
3121
3122         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
3123
3124 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3125
3126         * gfortranspec.c (append_arg, lang_specific_driver): Use
3127         fatal_error instead of fatal.  Use warning instead of fprintf for
3128         warnings.
3129
3130 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3131
3132         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
3133         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
3134         xstrerror instead of strerror.
3135
3136 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3137
3138         * cpp.c (cb_cpp_error): Save and restore
3139         global_dc->warn_system_headers, not variable warn_system_headers.
3140
3141 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3142
3143         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
3144
3145 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3146
3147         * trans-common.c: Do not include rtl.h, include output.h instead.
3148         * trans-decl.c: Likewise.
3149
3150 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
3151
3152         PR fortran/40011
3153         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
3154         namespace before trying to reorder the gsymbols.
3155
3156 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
3157
3158         PR fortran/30668
3159         PR fortran/31346
3160         PR fortran/34260
3161         * resolve.c (resolve_global_procedure): Add check for global
3162         procedures with implicit interfaces and assumed-shape or optional
3163         dummy arguments. Verify that function return type, kind and string
3164         lengths match.
3165
3166 2010-05-21  Tobias Burnus  <burnus@net-b.de>
3167
3168         * gfortran.h: Do not include system.h.
3169         * bbt.c: Include system.h.
3170         * data.c: Ditto.
3171         * dependency.c: Ditto.
3172         * dump-parse-tree.c: Ditto.
3173         * arith.h: Do not include gfortran.h.
3174         * constructor.h: Do not include gfortran.h and splay-tree.h.
3175         * match.h: Do not include gfortran.h.
3176         * parse.h: Ditto.
3177         * target-memory.h: Ditto.
3178         * openmp.c: Do not include toplev.h and target.h.
3179         * trans-stmt.c: Ditto not include toplev.h.
3180         * primary.c: Ditto.
3181         * trans-common.c: Tell why toplev.h is needed. And
3182         do not include target.h.
3183         * trans-expr.c: Tell why toplev.h is needed.
3184         * trans-array.c: Ditto.
3185         * trans-openmp.c: Ditto.
3186         * trans-const.c: Ditto.
3187         * trans.c: Ditto.
3188         * trans-types.c: Ditto.
3189         * trans-io.c: Ditto.
3190         * trans-decl.c: Ditto.
3191         * scanner.c: Ditto.
3192         * convert.c: Ditto.
3193         * trans-intrinsic.c: Ditto.
3194         * options.c: Ditto.
3195
3196 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3197
3198         PR fortran/43851
3199         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
3200         before returning MATCH_ERROR. Add check for scalar. Add check for
3201         default integer kind.
3202
3203 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
3204
3205         PR fortran/44212
3206         * match.c (gfc_match_select_type): On error jump back out of the local
3207         namespace.
3208         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
3209         stage, more precisely to ...
3210         * resolve.c (resolve_fl_derived): ... this place.
3211
3212 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
3213
3214         PR fortran/44213
3215         * resolve.c (ensure_not_abstract): Allow abstract types with
3216         non-abstract ancestors.
3217
3218 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3219
3220         * trans-const.c: Include realmpfr.h.
3221         * Make-lang.in: Update dependencies.
3222
3223 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3224
3225         * trans-const.c, trans-types.c, trans-intrinsic.c:
3226         Clean up redundant includes.
3227
3228 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
3229
3230         PR fortran/38407
3231         * lang.opt (Wunused-dummy-argument): New option.
3232         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
3233         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
3234         (set_Wall): Enable warn_unused_dummy_argument.
3235         (gfc_handle_option): Set warn_unused_dummy_argument according to
3236         command line.
3237         * trans-decl.c (generate_local_decl): Separate warnings about
3238         unused variables and unused dummy arguments.
3239         * invoke.texi: Documented new option.
3240
3241 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
3242
3243         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
3244         (gfc_conv_string_tmp): Do not assert type comparibilty.
3245         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
3246         (gfc_conv_expr_descriptor): Remove assert.
3247         * trans-common.c: Clarify why rtl.h and tm.h are included.
3248         * trans-openmp.c: Do not include ggc.h and real.h.
3249         Explain why gimple.h is included.
3250         * trans-const.c: Do not include ggc.h.
3251         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
3252         * trans.c: Do not include ggc.h and real.h.
3253         Explain why gimple.h is included.
3254         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
3255         and dwarf2out.h are included.
3256         * trans-io.c: Do not include gimple.h and real.h.
3257         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
3258         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
3259         is included.
3260
3261 2010-05-20  Tobias Burnus  <burnus@net-b.de>
3262
3263         * options.c (gfc_init_options,gfc_post_options): Enable
3264         flag_associative_math by default.
3265
3266 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3267
3268         PR fortran/43851
3269         * trans-stmt.c (gfc_trans_stop): Add generation of call to
3270         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
3271         blank STOP, handling a null expression. (gfc_trans_pause): Use
3272         pause_string for blank PAUSE.
3273         * trans.h: Add external function declaration for error_stop_numeric.
3274         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
3275         the declaration for the library call. Adjust whitespaces.
3276         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
3277         signal no stop code. Match the expression following the stop and pass
3278         that to the translators. Remove the old use of digit matching.  Add
3279         checks that the stop_code expression is INTEGER or CHARACTER, constant,
3280         and if CHARACTER, default character KIND.
3281
3282 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3283
3284         PR fortran/44055
3285         * lang.opt (Wconversion-extra): New option.
3286         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
3287         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
3288         (set_Wall): Enable -Wconversion.
3289         (gfc_handle_option): Set warn_conversion_extra.
3290         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
3291         introduced for -Wconversion if -Wconversion-extra is present.
3292         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
3293         -Wconversion; document -Wconversion-extra.
3294
3295 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3296
3297         PR fortran/42360
3298         * gfortran.h (gfc_has_default_initializer): New.
3299         * expr.c (gfc_has_default_initializer): New.
3300         * resolve.c (has_default_initializer): Removed, use
3301         gfc_has_default_initializer() instead. Updated all callers.
3302         * trans-array.c (has_default_initializer): Removed, use
3303         gfc_has_default_initializer() instead. Updated all callers.
3304         * trans-decl.c (generate_local_decl): Do not check the
3305         first component only to check for initializers, but use
3306         gfc_has_default_initializer() instead.
3307
3308 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3309
3310         PR fortran/38404
3311         * primary.c (match_string_constant): Move start_locus just inside 
3312         the string.
3313         * data.c (create_character_intializer): Clarified truncation warning.
3314
3315 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3316
3317         PR fortran/34505
3318         * intrinsic.h (gfc_check_float): New prototype.
3319         (gfc_check_sngl): New prototype.
3320         * check.c (gfc_check_float): New.
3321         (gfc_check_sngl): New.
3322         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
3323         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
3324         and SNGL.
3325         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
3326         added them to the list of specifics of REAL instead.
3327
3328 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3329
3330         PR fortran/43990
3331         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
3332         This is now handled via 'gfc_class_null_initializer'.
3333
3334 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3335
3336         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
3337         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
3338         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3339         add_procs_to_declared_vtab,add_generic_specifics, 
3340         add_generics_to_declared_vtab,gfc_find_derived_vtab,
3341         find_typebound_proc_uop,gfc_find_typebound_proc,
3342         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
3343         gfc_get_tbp_symtree): Moved here from other places.
3344         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
3345         class.c.
3346         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
3347         gfc_find_typebound_proc,gfc_find_typebound_user_op,
3348         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
3349         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
3350         * Make-lang.in: Add class.o.
3351         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
3352         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3353         add_procs_to_declared_vtab,add_generic_specifics,
3354         add_generics_to_declared_vtab,gfc_find_derived_vtab,
3355         find_typebound_proc_uop,gfc_find_typebound_proc,
3356         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
3357         gfc_get_tbp_symtree): Move to class.c.
3358
3359 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3360
3361         * trans-types.c (gfc_init_types): Use build_function_type_list.
3362         (gfc_get_ppc_type): Likewise.
3363         * trans-decl.c (gfc_generate_constructors): Likewise.
3364         * f95-lang.c (build_builtin_fntypes): Likewise.
3365         (gfc_init_builtin_functions): Likewise.
3366         (DEF_FUNCTION_TYPE_0): Likewise.
3367         (DEF_FUNCTION_TYPE_1): Likewise.
3368         (DEF_FUNCTION_TYPE_2): Likewise.
3369         (DEF_FUNCTION_TYPE_3): Likewise.
3370         (DEF_FUNCTION_TYPE_4): Likewise.
3371         (DEF_FUNCTION_TYPE_5): Likewise.
3372         (DEF_FUNCTION_TYPE_6): Likewise.
3373         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
3374         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
3375  
3376 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3377
3378         * trans-array.c (gfc_trans_array_constructor_value): Use
3379         build_constructor instead of build_constructor_from_list.
3380         (gfc_build_constant_array_constructor): Likewise.
3381         * trans-decl.c (create_main_function): Likewise.
3382         * trans-stmt.c (gfc_trans_character_select): Likewise.
3383
3384 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3385
3386         PR fortran/44044
3387         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
3388         (resolve_fl_variable_derived): ... this place.
3389         (resolve_symbol): Make sure function symbols (and their result
3390         variables) are not resolved twice.
3391
3392 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
3393
3394         PR fortran/35779
3395         * array.c (match_array_list): Revert change from 2010-05-13.
3396
3397 2010-05-16  Richard Guenther  <rguenther@suse.de>
3398
3399         * trans-decl.c (module_htab_decls_hash): Revert last change.
3400
3401 2010-05-16  Richard Guenther  <rguenther@suse.de>
3402
3403         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
3404
3405 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3406
3407         * options.c (set_Wall): Remove special logic for Wuninitialized
3408         without -O.
3409
3410 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
3411
3412         PR fortran/44154
3413         PR fortran/42647
3414         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
3415         if branches.
3416
3417 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
3418
3419         PR fortran/43207
3420         PR fortran/43969
3421         * gfortran.h (gfc_class_null_initializer): New prototype.
3422         * expr.c (gfc_class_null_initializer): New function to build a NULL
3423         initializer for CLASS pointers.
3424         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
3425         containers. Remove default NULL initialization of $data component.
3426         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
3427         message.
3428         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
3429         Use new function 'gfc_class_null_initializer'.
3430         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
3431         class variables.
3432
3433 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3434
3435         PR fortran/44135
3436         * fortran/interface.c (get_sym_storage_size): Use signed instead of
3437         unsigned mpz_get_?i routines.
3438
3439 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
3440
3441         * trans.c (trans_code): Set backend locus early.
3442         * trans-decl.c (gfc_get_fake_result_decl): Use source location
3443         of the function instead of current input_location.
3444
3445 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
3446
3447         PR fortran/35779
3448         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
3449         Updated all usages.
3450         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
3451         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
3452         iterators.
3453
3454 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
3455
3456         PR fortran/44036
3457         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
3458         variable lists.
3459         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
3460         by reference dummy procedures or non-dummy procedure pointers.
3461         (gfc_omp_predetermined_sharing): Return
3462         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
3463
3464 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
3465
3466         PR fortran/43711
3467         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
3468         after OMP statement.
3469         (gfc_match_omp_critical): Likewise.
3470         (gfc_match_omp_flush): Likewise.
3471         (gfc_match_omp_workshare): Likewise.
3472         (gfc_match_omp_master): Likewise.
3473         (gfc_match_omp_ordered): Likewise.
3474         (gfc_match_omp_atomic): Likewise.
3475         (gfc_match_omp_barrier): Likewise.
3476         (gfc_match_omp_end_nowait): Likewise.
3477
3478 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
3479
3480         PR fortran/31820
3481         * resolve.c (validate_case_label_expr): Removed FIXME.
3482         (resolve_select): Raise default warning on case labels out of range
3483         of the case expression.
3484
3485 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
3486
3487         PR fortran/27866
3488         PR fortran/35003
3489         PR fortran/42809
3490         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
3491         about conversion warnings.
3492
3493 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
3494
3495         PR fortran/44044
3496         * match.c (gfc_match_select_type): Move error message to
3497         resolve_select_type.
3498         * resolve.c (resolve_select_type): Error message moved here from
3499         gfc_match_select_type. Correctly set type of temporary.
3500
3501 2010-05-10  Richard Guenther  <rguenther@suse.de>
3502
3503         * trans-decl.c (gfc_build_library_function_decl): Split out
3504         worker to ...
3505         (build_library_function_decl_1): ... this new function.
3506         Set a fnspec attribute if a specification was provided.
3507         (gfc_build_library_function_decl_with_spec): New function.
3508         (gfc_build_intrinsic_function_decls): Annotate internal_pack
3509         and internal_unpack.
3510
3511 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
3512
3513         PR fortran/40728
3514         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
3515         as external.
3516
3517 2010-05-07  Jason Merrill  <jason@redhat.com>
3518
3519         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
3520         to avoid -Wc++-compat warning.
3521
3522 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3523
3524         PR 40989
3525         * options.c (gfc_handle_option): Add argument kind.
3526         * gfortran.h (gfc_handle_option): Update declaration.
3527
3528 2010-05-06  Tobias Burnus  <burnus@net-b.de>
3529
3530         PR fortran/43985
3531         * trans-types.c (gfc_sym_type): Mark Cray pointees as
3532         GFC_POINTER_TYPE_P.
3533
3534 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
3535
3536         PR fortran/32331
3537         * resolve.c (traverse_data_list): Rephrase error message for
3538         non-constant bounds in data-implied-do.
3539
3540 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
3541
3542         PR fortran/24978
3543         * gfortran.h: Removed repeat count from constructor, removed
3544         all usages.
3545         * data.h (gfc_assign_data_value_range): Changed return value from
3546         void to gfc_try.
3547         * data.c (gfc_assign_data_value): Add location to constructor element.
3548         (gfc_assign_data_value_range): Call gfc_assign_data_value()
3549         for each element in range. Return early if an error was generated.
3550         * resolve.c (check_data_variable): Stop early if range assignment
3551         generated an error.
3552
3553 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
3554
3555         PR fortran/43696
3556         * resolve.c (resolve_fl_derived): Some fixes for class variables.
3557         * symbol.c (gfc_build_class_symbol): Add separate class container for
3558         class pointers.
3559
3560 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
3561
3562         PR fortran/43592
3563         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
3564
3565 2010-05-02  Tobias Burnus  <burnus@net-b.de>
3566
3567         PR fortran/18918
3568         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
3569         for lcobound, ucobound, image_index and this_image.
3570         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
3571         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
3572         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
3573         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
3574         functions.
3575         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
3576
3577 2010-04-30  Tobias Burnus  <burnus@net-b.de>
3578
3579         PR fortran/18918
3580         PR fortran/43931
3581         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
3582         calculation for array descriptor types.
3583
3584 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3585
3586         PR fortran/43896
3587         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
3588         initializers for PPC members of the vtabs.
3589
3590 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3591
3592         PR fortran/42274
3593         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
3594         attribute for all PPC members of the vtypes.
3595         (copy_vtab_proc_comps): Copy the correct interface.
3596         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
3597         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
3598         a dummy argument and make sure all PPC members of the vtab are
3599         initialized correctly.
3600         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
3601         in call to gfc_trans_assign_vtab_procs.
3602         * trans-stmt.c (gfc_trans_allocate): Ditto.
3603
3604 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3605
3606         PR fortran/43326
3607         * resolve.c (resolve_typebound_function): Renamed
3608         resolve_class_compcall.Do all the detection of class references
3609         here.
3610         (resolve_typebound_subroutine): resolve_class_typebound_call
3611         renamed. Otherwise same as resolve_typebound_function.
3612         (gfc_resolve_expr): Call resolve_typebound_function.
3613         (resolve_code): Call resolve_typebound_subroutine.
3614
3615 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3616
3617         PR fortran/43492
3618         * resolve.c (resolve_typebound_generic_call): For CLASS methods
3619         pass back the specific symtree name, rather than the target
3620         name.
3621
3622 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3623
3624         PR fortran/42353
3625         * resolve.c (resolve_structure_cons): Make the initializer of
3626         the vtab component 'extends' the same type as the component.
3627
3628 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3629
3630         PR fortran/42680
3631         * interface.c (check_interface1): Pass symbol name rather than NULL to
3632         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
3633         trap MULL. (gfc_compare_derived_types): Revert previous change
3634         incorporated incorrectly during merge from trunk, r155778.
3635         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3636         than NULL to gfc_compare_interfaces.
3637         * symbol.c (add_generic_specifics): Likewise.
3638
3639 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
3640
3641         PR fortran/42353
3642         * interface.c (gfc_compare_derived_types): Add condition for vtype.
3643         * symbol.c (gfc_find_derived_vtab): Sey access to private.
3644         (gfc_find_derived_vtab): Likewise.
3645         * module.c (ab_attribute): Add enumerator AB_VTAB.
3646         (mio_symbol_attribute): Use new attribute, AB_VTAB.
3647         (check_for_ambiguous): Likewise.
3648
3649 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3650             Janus Weil  <janus@gcc.gnu.org>
3651
3652         PR fortran/41829
3653         * trans-expr.c (select_class_proc): Remove function.
3654         (conv_function_val): Delete reference to previous.
3655         (gfc_conv_derived_to_class): Add second argument to the call to
3656         gfc_find_derived_vtab.
3657         (gfc_conv_structure): Exclude proc_pointer components when
3658         accessing $data field of class objects.
3659         (gfc_trans_assign_vtab_procs): New function.
3660         (gfc_trans_class_assign): Add second argument to the call to
3661         gfc_find_derived_vtab.
3662         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
3663         implement holding off searching for the vptr derived type.
3664         (add_proc_component): New function.
3665         (add_proc_comps): New function.
3666         (add_procs_to_declared_vtab1): New function.
3667         (copy_vtab_proc_comps): New function.
3668         (add_procs_to_declared_vtab): New function.
3669         (void add_generic_specifics): New function.
3670         (add_generics_to_declared_vtab): New function.
3671         (gfc_find_derived_vtab): Add second argument to the call to
3672         gfc_find_derived_vtab. Add the calls to
3673         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
3674         * decl.c (build_sym, build_struct): Use new arg in calls to
3675         gfc_build_class_symbol.
3676         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
3677         definition of struct gfc_class_esym_list. Modify prototypes
3678         of gfc_build_class_symbol and gfc_find_derived_vtab.
3679         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
3680         call to gfc_find_derived_vtab.
3681         * module.c : Add the vtype attribute.
3682         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
3683         * resolve.c (resolve_typebound_generic_call): Add second arg
3684         to pass along the generic name for class methods.
3685         (resolve_typebound_call): The same.
3686         (resolve_compcall): Use the second arg to carry the generic
3687         name from the above. Remove the reference to class_esym.
3688         (check_members, check_class_members, resolve_class_esym,
3689         hash_value_expr): Remove functions.
3690         (resolve_class_compcall, resolve_class_typebound_call): Modify
3691         to use vtable rather than member by member calls.
3692         (gfc_resolve_expr): Modify second arg in call to
3693         resolve_compcall.
3694         (resolve_select_type): Add second arg in call to
3695         gfc_find_derived_vtab.
3696         (resolve_code): Add second arg in call resolve_typebound_call.
3697         (resolve_fl_derived): Exclude vtypes from check for late
3698         procedure definitions. Likewise for checking of explicit
3699         interface and checking of pass arg.
3700         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
3701         calls to gfc_find_derived_vtab.
3702         * match.c (select_type_set_tmp): Use new arg in call to
3703         gfc_build_class_symbol.
3704         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
3705         necessary.
3706         * parse.c (endType): Finish incomplete classes.
3707
3708 2010-04-28  Tobias Burnus  <burnus@net-b.de>
3709
3710         PR fortran/18918
3711         PR fortran/43919
3712         * simplify.c (simplify_cobound): Handle scalar coarrays.
3713
3714 2010-04-27  Tobias Burnus  <burnus@net-b.de>
3715
3716         * gfc-internals.texi: Update copyright year.
3717         * gfortran.texi: Ditto.
3718         * invoke.texi: Ditto.
3719
3720 2010-04-27  Tobias Burnus  <burnus@net-b.de>
3721
3722         PR fortran/18918
3723         * resolve.c (resolve_allocate_expr): Allow array coarrays.
3724         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
3725         * trans-types.c (gfc_get_array_type_bounds,
3726         gfc_get_array_descriptor_base): Add corank argument.
3727         * trans-array.c (gfc_array_init_size): Handle corank.
3728         (gfc_trans_create_temp_array, gfc_array_allocate,
3729         gfc_conv_expr_descriptor): Add corank argument to call.
3730         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
3731
3732 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
3733
3734         PR fortran/30073
3735         PR fortran/43793
3736         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
3737         of mucking with a tree directly.
3738
3739 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3740
3741         PR fortran/43832
3742         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
3743         gfc_error with new error message.
3744
3745 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
3746
3747         PR fortran/43841
3748         PR fortran/43843
3749         * trans-expr.c (gfc_conv_expr): Supply an address expression for
3750         GFC_SS_REFERENCE.
3751         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
3752         GFC_SS_REFERENCE.
3753         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
3754         than the address of a GFC_SS_REFERENCE.
3755         * trans.h : Change comment on GFC_SS_REFERENCE. 
3756
3757 2010-04-22  Richard Guenther  <rguenther@suse.de>
3758
3759         PR fortran/43829
3760         * resolve.c (gfc_resolve_index): Wrap around ...
3761         (gfc_resolve_index_1): ... this.  Add parameter to allow
3762         any integer kind index type.
3763         (resolve_array_ref): Allow any integer kind for the start
3764         index of an array ref.
3765
3766 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3767
3768         PR fortran/43836
3769         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
3770         the decl.
3771
3772 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
3773
3774         * intrinsic.c (sort_actual): Remove 'is' in error message.
3775
3776 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
3777
3778         PR fortran/43227
3779         * resolve.c (resolve_fl_derived): If a component character
3780         length has not been resolved, do so now.
3781         (resolve_symbol): The same as above for a symbol character
3782         length.
3783         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
3784         not needed for a character valued, procedure pointer.
3785
3786         PR fortran/43266
3787         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
3788         not found, return FAILURE rather than ICEing.
3789
3790 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3791
3792         PR fortran/43339
3793         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
3794         sequential loops private in the innermost containing task region.
3795
3796 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3797
3798         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
3799         to build_common_tree_nodes.
3800
3801 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
3802
3803         PR fortran/31538
3804         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
3805         gfc_msg_bounds by using 'Array bound mismatch' directly.
3806         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
3807         error message to include the mismatch in the extent of array bound.
3808         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
3809         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
3810
3811 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3812
3813         * gfortran.texi: Update information on temporary file locations.
3814
3815 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3816
3817         * trans-decl.c (gfc_build_qualified_array): Ensure
3818         ubound.N and lbound.N artificial variable names don't appear
3819         in debug info.
3820
3821 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
3822
3823         PR fortran/30073
3824         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
3825         block of code.  Set name to the variable associated with the descriptor.
3826
3827 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
3828
3829         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
3830         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
3831
3832 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3833
3834         * intrinsic.texi: Add the missing specific name of intrinsic
3835         procedure where the specific name is identical to the generic name.
3836         Fix inconsistent or mismatch in the argument names in intrinsic
3837         procedure descriptions.  Add the SCALAR allocatable description to
3838         ALLOCATED.
3839
3840 2010-04-14  Tobias Burnus  <burnus@net-b.de>
3841
3842         PR fortran/18918
3843         * array.c (gfc_find_array_ref): Handle codimensions.
3844         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
3845         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
3846         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
3847         New functions.
3848         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
3849         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
3850         GFC_ISYM_UCOBOUND.
3851         * intrinsic.h (add_functions): Add this_image, image_index,
3852         lcobound and ucobound intrinsics.
3853         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
3854         gfc_check_image_index, gfc_check_this_image,
3855         gfc_simplify_image_index, gfc_simplify_lcobound,
3856         gfc_simplify_this_image, gfc_simplify_ucobound):
3857         New function prototypes.
3858         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
3859         IMAGE_INDEX): Document new intrinsic functions.
3860         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
3861         error fatal.
3862         * simplify.c (simplify_bound_dim): Handle coarrays.
3863         (simplify_bound): Update simplify_bound_dim call.
3864         (gfc_simplify_num_images): Add -fcoarray=none check.
3865         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
3866         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
3867
3868 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3869
3870         PR fortran/43747
3871         * constructor.c: Fix typo in comment.
3872         * expr.c (find_array_section): Add check for max array limit.
3873
3874 2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>
3875
3876         PR bootstrap/31400
3877         * gfortranspec.c (lookup_option): Check for -static and return
3878         OPTION_static.
3879         (lang_specific_driver): Break when OPTION_static is discovered.
3880
3881 2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3882
3883         * array.c (extract_element): Restore function from trunk.
3884         (gfc_get_array_element): Restore function from trunk.
3885         (gfc_expand_constructor): Restore check against
3886         flag_max_array_constructor.
3887         * constructor.c (node_copy_and_append): Delete unused.
3888         * gfortran.h: Delete comment and extra include.
3889         * constructor.h: Bump copyright and clean up TODO comments.
3890         * resolve.c: Whitespace.
3891
3892 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3893
3894         * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
3895         with direct access access to elements. Adjusted prototype, fixed all
3896         callers.
3897         (gfc_simplify_dot_product): Removed duplicate check for zero-sized
3898         array.
3899         (gfc_simplify_matmul): Removed usage of ADVANCE macro.
3900         (gfc_simplify_spread): Removed workaround, directly insert elements
3901         at a given array position.
3902         (gfc_simplify_transpose): Likewise.
3903         (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
3904         function calls.
3905         (gfc_simplify_unpack): Likewise.
3906
3907 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3908
3909         * simplify.c (only_convert_cmplx_boz): Renamed to ...
3910         (convert_boz): ... this and moved to start of file.
3911         (gfc_simplify_abs): Whitespace fix.
3912         (gfc_simplify_acos): Whitespace fix.
3913         (gfc_simplify_acosh): Whitespace fix.
3914         (gfc_simplify_aint): Whitespace fix.
3915         (gfc_simplify_dint): Whitespace fix.
3916         (gfc_simplify_anint): Whitespace fix.
3917         (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
3918         (gfc_simplify_dnint): Whitespace fix.
3919         (gfc_simplify_asin): Whitespace fix.
3920         (gfc_simplify_asinh): Moved creation of result-expr out of switch.
3921         (gfc_simplify_atan): Likewise.
3922         (gfc_simplify_atanh): Whitespace fix.