OSDN Git Service

e0ec2507052cfa6898a4d3cc86120651d6dedd6a
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2009-03-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2
3         PR fortran/33595
4         * intrinsics/c99_functions.c (round): Use floor instead of ceil.
5         Revise checks to round up.
6         (roundf): Likewise.
7
8 2009-03-28  Daniel Kraft  <d@domob.eu>
9
10         * intrinsics/string_intrinsics.c: #include <assert.h>
11         * intrinsics/string_intrinsics_inc.c (string_trim): Use string_len_trim
12         instead of calculating the length directly.
13         (string_len_trim): For KIND=1, speed search up.
14
15 2009-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
16
17         PR libfortran/39528
18         * io/list_read.c (list_formatted_read_scalar): Move check for read
19         completion to just after the check for a repeated value.
20
21 2009-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
22
23         PR libfortran/39402
24         * io/write_float.def (output_float): Handle F0.d formatting correctly
25         for any d when value is 0.0.
26
27 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28
29         * configure: Regenerate.
30
31 2009-01-21  Daniel Kraft  <d@domob.eu>
32
33         PR fortran/38887
34         * runtime/in_unpack_generic.c (internal_unpack):  Return instead of
35         abort when called with empty array.
36         * m4/in_unpack.m4:  Ditto.
37         * generated/in_unpack_i1.c:  Regenerated.
38         * generated/in_unpack_i2.c:  Regenerated.
39         * generated/in_unpack_i4.c:  Regenerated.
40         * generated/in_unpack_i8.c:  Regenerated.
41         * generated/in_unpack_i16.c: Regenerated.
42         * generated/in_unpack_r4.c:  Regenerated.
43         * generated/in_unpack_r8.c:  Regenerated.
44         * generated/in_unpack_r10.c: Regenerated.
45         * generated/in_unpack_r16.c: Regenerated.
46         * generated/in_unpack_c4.c:  Regenerated.
47         * generated/in_unpack_c8.c:  Regenerated.
48         * generated/in_unpack_c10.c: Regenerated.
49         * generated/in_unpack_c16.c: Regenerated.
50
51 2009-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
52
53         PR libfortran/38772
54         * io/read.c (read_f): Clean up loop conditions for BZ/BN,
55         allowing proper digit testing. White space fix.
56
57 2009-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
58
59         PR libfortran/38735
60         * io/unit.c (get_internal_unit): Set default BLANK= status to NULL for
61         internal units.
62
63 2008-12-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
64
65         PR fortran/31832
66         * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): New autoconf check for
67         broken powf.
68         * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Use it.
69         * intrinsics/c99_functions.c: Use internal powf implementation if
70         HAVE_BROKEN_POWF is defined.
71         * configure: Rebuilt.
72         * config.h.in: Rebuilt.
73
74 2008-12-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
75
76         PR libfortran/37472
77         * io/write_float.def (output_float_FMT_G_): Modify calculation of temp
78         to avoid sensitivity to round-off.
79
80 2008-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
81
82         PR libfortran/38398
83         * io/io.h (st_parameter_dt): Add new bit to keep track of when to
84         suppress blanks for g0 formatting.
85         * io/transfer.c (formatted_transfer_scalar): Always call write_real_g0
86         for g0 formatting.
87         * io.c (write.c): Do not use ES formatting and use new bit to suppress
88         blanks.
89         * io/write_float.def (output_float): Adjust the location of setting the
90         width so that it can be adjusted when suppressing blanks.  Set number of
91         blanks to zero when dtp->u.p.g0_no_blanks is set. Do some minor code
92         clean-up and add some white space for readability.
93         
94 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
95
96         * configure: Regenerate.
97
98 2008-12-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
99
100         PR libfortran/38504
101         io/write.c (write_decimal): Skip extra sign '-' at beginning of string
102         returned by gfc_itoa.
103
104 2008-12-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
105
106         PR libfortran/38430
107         * io/transfer.c (data_transfer_init): Move constraint check for REC=
108         and STREAM access into condition for other REC= constraints to simplify.
109         Comment out this constraint to avoid breaking compatibility with 4.3
110         until later.  Added a TODO for above comment and this one.
111         Fix test for max pos.
112
113 2008-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
114
115         PR libfortran/38291
116         * io/transfer.c (data_transfer_init): Add fbuf_flush inadvertently
117         ommitted.  Add check for invalid use of REC= with ACCESS="stream".  Fix
118         comment.
119
120 2008-12-06  Adam Nemet  <anemet@caviumnetworks.com>
121
122         * runtime/main.c (store_exe_path): Don't crash if argv0 is NULL.
123
124 2008-12-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
125
126         PR libfortran/38291
127         * io/transfer.c (data_transfer_init): Add checks for POS= valid range.
128         Add check for unit opened with ACCESS="stream". Flush and seek if
129         current stream position does not match. Check ENDFILE on read.
130
131 2008-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
132
133         PR fortran/38285
134         * write_float.def (WRITE_FLOAT): Zero the float value for special case
135         only if scale_factor = 0.
136         
137 2008-11-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
138
139         PR libfortran/38234
140         * intrinsics/reshape_generic.c (reshape_internal):
141         Source can be larger than shape.
142         * m4/reshape.m4:  Likewise.
143         * generated/reshape_c10.c Regenerated.
144         * generated/reshape_c16.c Regenerated.
145         * generated/reshape_c4.c Regenerated.
146         * generated/reshape_c8.c Regenerated.
147         * generated/reshape_i16.c Regenerated.
148         * generated/reshape_i4.c Regenerated.
149         * generated/reshape_i8.c Regenerated.
150         * generated/reshape_r10.c Regenerated.
151         * generated/reshape_r16.c Regenerated.
152         * generated/reshape_r4.c Regenerated.
153         * generated/reshape_r8.c Regenerated.
154
155 2008-11-22  Danny Smith  <dannysmith@users.sourceforge.net>
156
157         * libgfortran.h (__mingw_snprintf): Declare with gnu_printf
158         format attribute.
159
160
161 2008-11-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
162
163         PR libfortran/38225
164         * intrinsics/reshape_generic.c (reshape_internal):
165         Use all dimensions of source for bounds checking.
166         * m4/reshape.m4:  Likewise.
167         * generated/reshape_c10.c Regenerated.
168         * generated/reshape_c16.c Regenerated.
169         * generated/reshape_c4.c Regenerated.
170         * generated/reshape_c8.c Regenerated.
171         * generated/reshape_i16.c Regenerated.
172         * generated/reshape_i4.c Regenerated.
173         * generated/reshape_i8.c Regenerated.
174         * generated/reshape_r10.c Regenerated.
175         * generated/reshape_r16.c Regenerated.
176         * generated/reshape_r4.c Regenerated.
177         * generated/reshape_r8.c Regenerated.
178
179 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
180
181         PR libfortran/37839
182         * io/io.h (IOPARM_INQUIRE_HAS_ROUND, IOPARM_INQUIRE_HAS_SIGN,
183         IOPARM_INQUIRE_HAS_PENDING): Adjust values.
184         (st_parameter_inquire): Reorder and fix types of round, sign and
185         pending fields.
186         (st_parameter_43, st_parameter_44): Removed.
187         (st_parameter_dt): Put back struct definition directly to u.p
188         declaration.  Change type of u.p.size_used from gfc_offset to
189         GFC_IO_INT.  Decrease back size of u.pad to 16 pointers and
190         32 ints.  Put id, pos, asynchronous, blank, decimal, delim,
191         pad, round and sign fields after the union.
192         * io/inquire.c (inquire_via_unit, inquire_via_filename): Only read
193         flags2 if it is defined.
194         * io/transfer.c (read_sf, read_block_form, write_block): Cast
195         additions to size_used to GFC_IO_INT instead of gfc_offset.
196         (data_transfer_init): Clear whole u.p struct.  Adjust
197         for moving id, pos, asynchronous, blank, decimal, delim, pad,
198         round and sign fields from u.p directly into st_parameter_dt.
199         (finalize_transfer): Don't cast size_used to GFC_IO_INT.
200         * io/file_pos.c (st_endfile): Clear whole u.p struct.
201
202 2008-11-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
203
204         PR libfortran/37472
205         * io/write_float.def (output_float_FMT_G_): Adjust conversion of
206         G format specification to F format.
207
208 2008-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
209
210         PR libfortran/38135
211         * m4/reshape.m4:  Correct bounds checking when PAD is present.
212         Treat PAD as if it were SOURCE when SOURCE is empty.
213         * intrinsics/reshape_generic.c:  Likewise.
214         * generated/reshape_c10.c Regenerated.
215         * generated/reshape_c16.c Regenerated.
216         * generated/reshape_c4.c Regenerated.
217         * generated/reshape_c8.c Regenerated.
218         * generated/reshape_i16.c Regenerated.
219         * generated/reshape_i4.c Regenerated.
220         * generated/reshape_i8.c Regenerated.
221         * generated/reshape_r10.c Regenerated.
222         * generated/reshape_r16.c Regenerated.
223         * generated/reshape_r4.c Regenerated.
224         * generated/reshape_r8.c Regenerated.
225
226 2008-11-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
227
228         PR libfortran/38097
229         * io/read.c (read_f): Initialize exponent. Fix comment. Set loop
230         conditions for BZ/BN.
231         * io/unit.c (get_internal_unit): Initialize flags.blank.
232         * io/transfer.c (data_transfer_init): Fix whitespace.
233
234 2008-11-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
235
236         PR libfortran/37294
237         * io/write.c (namelist_write_newline): Use array loop specification to
238         advance to next internal array unit record. (namelist_write): Adjust to
239         accomodate the internal array unit behavior.
240
241 2008-11-01  Dennis Wassel  <dennis.wassel@gmail.com>
242
243         PR fortran/37159
244         * intrinsics/random.c: Added comment to adapt check.c, should
245         kiss_size change.
246         Few cosmetic changes to existing comments.
247
248 2008-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
249
250         PR libfortran/37707
251         * io/list_read.c (read_character): Remove code to look ahead in namelist
252         reads to descriminate non-delimited strings from namelist objects.
253         * io/write.c (namelist_write): Delimit character strings with quote or
254         apostrophe, defaulting to quote.
255
256 2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
257
258         PR libfortran/34670
259         * intrinsics/transpose_generic.c:  Implement bounds checking.
260         * m4/transpose.m4:  Likewise.
261         * generated/transpose_c8.c: Regenerated.
262         * generated/transpose_c16.c: Regenerated.
263         * generated/transpose_r10.c: Regenerated.
264         * generated/transpose_i8.c: Regenerated.
265         * generated/transpose_c10.c: Regenerated.
266         * generated/transpose_r4.c: Regenerated.
267         * generated/transpose_c4.c: Regenerated.
268         * generated/transpose_i16.c: Regenerated.
269         * generated/transpose_i4.c: Regenerated.
270         * generated/transpose_r8.c: Regenerated.
271         * generated/transpose_r16.c: Regenerated.
272
273 2008-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org
274
275         PR libfortran/37834
276         * io/write_float.def (output_float): Emit '0.' for special case of
277         format specifier 'f0.0' and value of zero. Likewise emit '0' for 'f1.0'.
278
279 2008-10-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org
280
281         PR libfortran/37863
282         * io/write_float.def (WRITE_FLOAT): Round to 1.0 correctly.
283         * io/io.h (st_parameter_44): Fix id type declaration.
284
285 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
286
287         * io/file_pos.c (unformatted_backspace): Normal case is
288         GFC_CONVERT_NATIVE.
289         * io/transfer.c (read_sf):  Mark paths leading to generate_error()
290         as unlikely.
291         (readl_block_form):  Likewise.
292         (read_block_direct):  Likewise.
293         (write_block):  Likewise.
294         (write_buf):  Likewise.
295         (us_read):  Likewise.  Normal case is GFC_CONVERT_NATIVE.
296         (next_record_w_unf):  Mark paths leading to generate_error()
297         as unlikely.
298
299 2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
300
301         PR libfortran/34670
302         * generated/spread_r4.c: Regenerated.
303
304 2008-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
305
306         PR libfortran/34670
307         * intrinsics/reshape_generic.c:  Add bounds checking.
308         * m4/reshape.m4:  Likewise.
309         * generated/reshape_c10.c: Regenerated.
310         * generated/reshape_c16.c: Regenerated.
311         * generated/reshape_c4.c: Regenerated.
312         * generated/reshape_c8.c: Regenerated.
313         * generated/reshape_i16.c: Regenerated.
314         * generated/reshape_i4.c: Regenerated.
315         * generated/reshape_i8.c: Regenerated.
316         * generated/reshape_r10.c: Regenerated.
317         * generated/reshape_r16.c: Regenerated.
318         * generated/reshape_r4.c: Regenerated.
319         * generated/reshape_r8.c: Regenerated.
320         * generated/spread_r4.c: Regenerated.
321
322 2008-10-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org
323
324         PR libfortran/37083
325         * io/list_read.c (next_char): Simplify EOF tests and set endfile flag.
326         (finish_list_read): Add EOF check.
327
328 2008-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
329
330         PR libfortran/37753
331         * io/transfer.c (unformatted_read):  CONVERT_NATIVE
332         is the usual case.  Check for kind==1 for non-byte-reversing
333         operation.
334         (unformatted_write):  Likewise.
335
336 2008-10-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org
337
338         PR libfortran/37707
339         * io/list_read.c (nml_get_obj_data): If the first namelist object rank
340         is greater than zero, call nml_object_read with the first object rather
341         than the sub-object.
342
343 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
344             Steve Ellcey  <sje@cup.hp.com>
345
346         * configure: Regenerate for new libtool.
347         * Makefile.in: Ditto.
348
349 2008-09-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org
350
351         PR libfortran/37498
352         * list_read.c (eat_separator): Revert previous patch and move
353         delim_status, decimal_status, and pad_status to gfc_unit.
354         (parse_real): Ditto. (read_real): Ditto.
355         * read.c (read_a): Likewise. (read_a_char4): Likewise.
356         (read_f): Likewise.
357         * inquire.c (inquire_via_unit): Add missing check for
358         IOPARM_INQUIRE_HAS_FLAGS2. (inquire_via_filename): Likewise.
359         * io.h (unit_sign_s): Move delim_status, decimal_status, and pad_status
360         to gfc_unit.
361         * transfer.c (read_sf): Ditto. (read_block_form): Ditto.
362         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto.
363         * write.c (write_default_char4): Ditto. (write_utf8_char4): Ditto.
364         (write_character): Ditto. (write_real_g0): Ditto.
365         (list_formatted_write_scalar): Ditto. (nml_write_obj): Ditto.
366         (namelist_write): Ditto.
367         * write_float.def (calculate_sign): Ditto. (output_float): Ditto.
368
369 2008-09-24  Tobias Burnus  <burnus@net-b.de>
370
371         * runtime/compile_options.c (init_compile_options):
372         Sync flags with front end.
373
374 2008-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org
375
376         PR libfortran/37498
377         * file_pos (st_endfile): Clear memory only for libfortran 4.3 private
378         area.
379         * list_read.c (eat_separator): Only access F2003 I/O parameters if
380         IOPARM_DT_HAS_F2003 bit is set. (parse_real): Ditto.
381         (read_real): Ditto.
382         * read.c (read_a): Likewise. (read_a_char4): Likewise though not
383         strictly necessary. (read_f): Likewise.
384         * io.h (unit_sign_s): New enumerator to allow duplication of
385         st_parameter structures. (IOPARM_DT_HAS_F2003): New mask bit.
386         (st_parameter_43): New structure copied from 4.3 version of 
387         st_paramater_dt private section. (st_parameter_44): New structure with
388         F2003 items added. (st_parameter_dt): Modified to create union of new
389         and old structures to allow correct memory setting for 4.3 ABI
390         compatibility. Bumped the pad size.
391         * transfer.c (read_sf): Do not use F2003 I/O memory areas unless
392         IOPARM_DT_HAS_F2003 bit has been set. (read_block_form): Ditto.
393         (formatted_transfer_scalar): Ditto. (data_transfer_init): Ditto and
394         add comment, fix formatting.
395         * write.c (write_default_char4): Likewise though not strictly necessary.
396         (write_utf8_char4): Ditto. (write_character): Ditto.
397         (write_real_g0): Ditto. (list_formatted_write_scalar): Ditto.
398         (nml_write_obj): Ditto. (namelist_write): Ditto.
399         * write_float.def (calculate_sign): Eliminate warning by including all
400         cases in switch. (output_float): Output only decimal point of F2003 flag
401         is not set.
402
403 2008-09-10  Tobias Burnus  <burnus@net-b.de>
404             H. J. Lu  <hongjiu.lu@intel.com>
405
406         * mk-sik-inc.sh: Make -Wunused-variable proof.
407         * mk-srk-inc.sh: Make -Wunused-variable proof.
408
409 2008-09-10  Tobias Burnus  <burnus@net-b.de>
410
411         * mk-kinds-h.sh: Make -Wunused-variable proof.
412
413 2008-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
414
415         PR fortran/37203
416         * intrinsics/reshape_generic.c:  Add checking on
417         out-of-bounds and duplicate values of order argument.
418         * m4/reshape.m4:  Likewise.
419         * generated/reshape_c10.c: Regenerated.
420         * generated/reshape_c16.c: Regenerated.
421         * generated/reshape_c4.c: Regenerated.
422         * generated/reshape_c8.c: Regenerated.
423         * generated/reshape_i16.c: Regenerated.
424         * generated/reshape_i4.c: Regenerated.
425         * generated/reshape_i8.c: Regenerated.
426         * generated/reshape_r10.c: Regenerated.
427         * generated/reshape_r16.c: Regenerated.
428         * generated/reshape_r4.c: Regenerated.
429         * generated/reshape_r8.c: Regenerated.
430
431 2008-09-06  Tobias Burnus  <burnus@net-b.de>
432
433         * libgfortran.h (likely,unlikely): New makros.
434         (runtime_warning_at,__mingw_snprintf): Add __attribute__(format()).
435         * m4/spread.m4 (spread_'rtype_code`): Use unlikely for bounds_check.
436         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Ditto.
437         * m4/matmull.m4 (matmul_'rtype_code`): Ditto.
438         * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Ditto.
439         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Ditto.
440         * m4/matmul.m4 (matmul_'rtype_code`): Ditto.
441
442         * generated/minval_r8.c: Regenerated.
443         * generated/spread_r10.c: Regenerated.
444         * generated/minloc1_16_r16.c: Regenerated.
445         * generated/maxloc1_4_r8.c: Regenerated.
446         * generated/sum_i8.c: Regenerated.
447         * generated/any_l16.c: Regenerated.
448         * generated/spread_i8.c: Regenerated.
449         * generated/maxval_i2.c: Regenerated.
450         * generated/any_l2.c: Regenerated.
451         * generated/product_r4.c: Regenerated.
452         * generated/maxloc1_8_i4.c: Regenerated.
453         * generated/maxloc0_4_r4.c: Regenerated.
454         * generated/all_l1.c: Regenerated.
455         * generated/matmul_r8.c: Regenerated.
456         * generated/product_i2.c: Regenerated.
457         * generated/minloc0_4_r16.c: Regenerated.
458         * generated/minloc0_4_i1.c: Regenerated.
459         * generated/maxloc0_4_r16.c: Regenerated.
460         * generated/maxloc0_4_i2.c: Regenerated.
461         * generated/minloc1_8_r16.c: Regenerated.
462         * generated/maxloc1_8_r16.c: Regenerated.
463         * generated/maxloc0_8_i8.c: Regenerated.
464         * generated/sum_r16.c: Regenerated.
465         * generated/sum_i1.c: Regenerated.
466         * generated/minloc1_4_r8.c: Regenerated.
467         * generated/maxloc1_16_r16.c: Regenerated.
468         * generated/minloc1_16_i4.c: Regenerated.
469         * generated/maxloc1_16_i4.c: Regenerated.
470         * generated/minloc0_16_i8.c: Regenerated.
471         * generated/spread_i1.c: Regenerated.
472         * generated/maxloc0_16_i8.c: Regenerated.
473         * generated/maxval_r16.c: Regenerated.
474         * generated/product_c10.c: Regenerated.
475         * generated/minloc1_8_i4.c: Regenerated.
476         * generated/minloc0_16_i16.c: Regenerated.
477         * generated/matmul_r16.c: Regenerated.
478         * generated/minloc0_4_r4.c: Regenerated.
479         * generated/all_l2.c: Regenerated.
480         * generated/product_c4.c: Regenerated.
481         * generated/sum_r4.c: Regenerated.
482         * generated/minloc0_4_i2.c: Regenerated.
483         * generated/spread_c10.c: Regenerated.
484         * generated/maxloc0_8_i1.c: Regenerated.
485         * generated/spread_r4.c: Regenerated.
486         * generated/minloc0_8_i8.c: Regenerated.
487         * generated/matmul_c8.c: Regenerated.
488         * generated/all_l16.c: Regenerated.
489         * generated/minloc1_16_r10.c: Regenerated.
490         * generated/sum_i2.c: Regenerated.
491         * generated/minloc0_16_i1.c: Regenerated.
492         * generated/maxloc0_16_i1.c: Regenerated.
493         * generated/maxloc1_8_r8.c: Regenerated.
494         * generated/minval_i16.c: Regenerated.
495         * generated/spread_i2.c: Regenerated.
496         * generated/maxval_i4.c: Regenerated.
497         * generated/minval_i8.c: Regenerated.
498         * generated/any_l4.c: Regenerated.
499         * generated/maxloc1_4_i8.c: Regenerated.
500         * generated/maxloc0_16_i16.c: Regenerated.
501         * generated/maxloc0_8_r4.c: Regenerated.
502         * generated/minloc1_4_i16.c: Regenerated.
503         * generated/maxloc1_4_i16.c: Regenerated.
504         * generated/minloc0_4_r10.c: Regenerated.
505         * generated/minloc0_8_i16.c: Regenerated.
506         * generated/maxloc0_4_r10.c: Regenerated.
507         * generated/maxloc0_8_i16.c: Regenerated.
508         * generated/minloc1_8_r10.c: Regenerated.
509         * generated/product_i4.c: Regenerated.
510         * generated/minloc0_16_r4.c: Regenerated.
511         * generated/sum_c16.c: Regenerated.
512         * generated/maxloc1_8_r10.c: Regenerated.
513         * generated/maxloc0_16_r4.c: Regenerated.
514         * generated/minloc1_16_r8.c: Regenerated.
515         * generated/minloc0_8_i1.c: Regenerated.
516         * generated/maxloc0_4_i4.c: Regenerated.
517         * generated/maxloc1_16_r8.c: Regenerated.
518         * generated/maxloc0_8_i2.c: Regenerated.
519         * generated/sum_r10.c: Regenerated.
520         * generated/count_4_l.c: Regenerated.
521         * generated/sum_c4.c: Regenerated.
522         * generated/count_8_l.c: Regenerated.
523         * generated/maxloc1_16_r10.c: Regenerated.
524         * generated/matmul_i8.c: Regenerated.
525         * generated/minloc0_16_i2.c: Regenerated.
526         * generated/minloc1_8_r8.c: Regenerated.
527         * generated/maxloc0_16_i2.c: Regenerated.
528         * generated/spread_c4.c: Regenerated.
529         * generated/matmul_c16.c: Regenerated.
530         * generated/maxval_r10.c: Regenerated.
531         * generated/minval_i1.c: Regenerated.
532         * generated/maxloc1_4_i1.c: Regenerated.
533         * generated/matmul_r10.c: Regenerated.
534         * generated/minloc1_4_i8.c: Regenerated.
535         * generated/minloc0_8_r4.c: Regenerated.
536         * generated/matmul_l4.c: Regenerated.
537         * generated/product_i16.c: Regenerated.
538         * generated/minloc0_16_r16.c: Regenerated.
539         * generated/all_l4.c: Regenerated.
540         * generated/minloc0_4_i4.c: Regenerated.
541         * generated/minloc0_8_i2.c: Regenerated.
542         * generated/matmul_i1.c: Regenerated.
543         * generated/minval_r4.c: Regenerated.
544         * generated/maxloc1_4_r4.c: Regenerated.
545         * generated/spread_i16.c: Regenerated.
546         * generated/sum_i4.c: Regenerated.
547         * generated/maxval_r8.c: Regenerated.
548         * generated/spread_i4.c: Regenerated.
549         * generated/minloc1_4_i1.c: Regenerated.
550         * generated/minval_r16.c: Regenerated.
551         * generated/minval_i2.c: Regenerated.
552         * generated/maxloc1_4_i2.c: Regenerated.
553         * generated/product_r8.c: Regenerated.
554         * generated/maxloc1_8_i8.c: Regenerated.
555         * generated/maxloc0_4_r8.c: Regenerated.
556         * generated/maxloc0_16_r16.c: Regenerated.
557         * generated/matmul_r4.c: Regenerated.
558         * generated/sum_c10.c: Regenerated.
559         * generated/minloc1_4_r16.c: Regenerated.
560         * generated/maxloc1_4_r16.c: Regenerated.
561         * generated/minloc0_8_r16.c: Regenerated.
562         * generated/maxloc0_8_r16.c: Regenerated.
563         * generated/count_1_l.c: Regenerated.
564         * generated/maxloc0_8_i4.c: Regenerated.
565         * generated/matmul_i2.c: Regenerated.
566         * generated/minloc1_4_r4.c: Regenerated.
567         * generated/matmul_c10.c: Regenerated.
568         * generated/minloc0_16_i4.c: Regenerated.
569         * generated/maxloc0_16_i4.c: Regenerated.
570         * generated/minloc1_16_i8.c: Regenerated.
571         * generated/maxloc1_16_i8.c: Regenerated.
572         * generated/minloc1_4_i2.c: Regenerated.
573         * generated/matmul_l16.c: Regenerated.
574         * generated/maxloc1_8_i1.c: Regenerated.
575         * generated/minloc0_16_r10.c: Regenerated.
576         * generated/minloc1_8_i8.c: Regenerated.
577         * generated/minloc0_4_r8.c: Regenerated.
578         * generated/product_r16.c: Regenerated.
579         * generated/product_c8.c: Regenerated.
580         * generated/sum_r8.c: Regenerated.
581         * generated/minloc0_8_i4.c: Regenerated.
582         * generated/matmul_c4.c: Regenerated.
583         * generated/minloc1_16_i16.c: Regenerated.
584         * generated/spread_r8.c: Regenerated.
585         * generated/maxloc1_8_r4.c: Regenerated.
586         * generated/minloc1_16_i1.c: Regenerated.
587         * generated/maxloc1_16_i1.c: Regenerated.
588         * generated/spread_r16.c: Regenerated.
589         * generated/minval_r10.c: Regenerated.
590         * generated/count_16_l.c: Regenerated.
591         * generated/minval_i4.c: Regenerated.
592         * generated/minloc1_8_i1.c: Regenerated.
593         * generated/maxloc1_4_i4.c: Regenerated.
594         * generated/maxloc1_8_i2.c: Regenerated.
595         * generated/maxval_i8.c: Regenerated.
596         * generated/any_l8.c: Regenerated.
597         * generated/maxloc0_16_r10.c: Regenerated.
598         * generated/minloc0_4_i16.c: Regenerated.
599         * generated/maxloc0_8_r8.c: Regenerated.
600         * generated/maxloc0_4_i16.c: Regenerated.
601         * generated/minloc1_4_r10.c: Regenerated.
602         * generated/minloc1_8_i16.c: Regenerated.
603         * generated/maxloc1_4_r10.c: Regenerated.
604         * generated/maxloc1_8_i16.c: Regenerated.
605         * generated/minloc0_8_r10.c: Regenerated.
606         * generated/maxloc0_8_r10.c: Regenerated.
607         * generated/minloc1_16_r4.c: Regenerated.
608         * generated/maxloc1_16_r4.c: Regenerated.
609         * generated/minloc0_16_r8.c: Regenerated.
610         * generated/product_i8.c: Regenerated.
611         * generated/maxloc0_16_r8.c: Regenerated.
612         * generated/sum_i16.c: Regenerated.
613         * generated/count_2_l.c: Regenerated.
614         * generated/maxloc0_4_i8.c: Regenerated.
615         * generated/maxloc1_16_i16.c: Regenerated.
616         * generated/matmul_i4.c: Regenerated.
617         * generated/minloc1_8_r4.c: Regenerated.
618         * generated/sum_c8.c: Regenerated.
619         * generated/minloc1_16_i2.c: Regenerated.
620         * generated/maxloc1_16_i2.c: Regenerated.
621         * generated/maxval_i16.c: Regenerated.
622         * generated/spread_c8.c: Regenerated.
623         * generated/matmul_i16.c: Regenerated.
624         * generated/minloc1_4_i4.c: Regenerated.
625         * generated/maxval_i1.c: Regenerated.
626         * generated/minloc1_8_i2.c: Regenerated.
627         * generated/any_l1.c: Regenerated.
628         * generated/product_c16.c: Regenerated.
629         * generated/minloc0_8_r8.c: Regenerated.
630         * generated/matmul_l8.c: Regenerated.
631         * generated/product_r10.c: Regenerated.
632         * generated/product_i1.c: Regenerated.
633         * generated/all_l8.c: Regenerated.
634         * generated/maxloc0_4_i1.c: Regenerated.
635         * generated/minloc0_4_i8.c: Regenerated.
636         * generated/spread_c16.c: Regenerated.
637         * generated/maxval_r4.c: Regenerated.
638
639 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
640
641         PR libfortran/37301
642         PR libfortran/37228
643         * io/io.h (write_real_g0): Declare new function to handle g0.d format.
644         * io/transfer.c (formatted_transfer_scalar): Use new function.
645         * io/format.c (parse_format_list): Enable g0.d.
646         * io/write.c (write_a_char4): Delete unused var.
647         (set_fnode_default): New function to set the default fnode w, d, and e
648         factored from write_real. (write_real): Use new factored function.
649         (write_real_g0): New function that sets d to that passed by g0.d format
650         specifier and set format to ES.  Default values for w and e are used
651         from the new function, set_fnode_default.
652
653 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
654
655         * runtime/error.c: Fix cast for printf.
656
657 2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
658
659         PR libfortran/36895
660         * io/write.c (namelist_write_newline): New function to correctly mark
661         next records in both external and internal units.
662         (nml_write_obj): Use new function.
663         (namelist_write: Use new function.
664
665 2008-08-19  Tobias Burnus  <burnus@net-b.de>
666
667         PR libfortran/35863
668         * io/write.c (write_a_char4): Add missing variable declaration
669         in HAVE_CRLF block.
670
671 2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
672
673         PR libfortran/35863
674         * intrinsics/selected_char_kind.c: Enable iso_10646.
675         * io/read.c (typedef uchar): New type.
676         (read_utf8): New function to read a single UTF-8 encoded character.
677         (read_utf8_char1): New function to read UTF-8 into a KIND=1 string.
678         (read_default_char1): New functio to read default into KIND=1 string.
679         (read_utf8_char4): New function to read UTF-8 into a KIND=4 string.
680         (read_default_char4): New function to read UTF-8 into a KIND=4 string.
681         (read_a): Modify to use the new functions.
682         (read_a_char4): Modify to use the new functions.
683         * io/write.c (error.h): Add include. (typedef uchar): New type.
684         (write_default_char4): New function to default write KIND=4 string.
685         (write_utf8_char4): New function to UTF-8 write KIND=4 string.
686         (write_a_char4): Modify to use new functions.
687         (write_character): Modify to use new functions.
688
689 2008-08-14  H.J. Lu  <hongjiu.lu@intel.com>
690
691         PR libfortran/37123
692         * intrinsics/cshift0.c (cshift0): Fix 2 typos.
693
694 2008-08-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
695
696         PR libfortran/36886
697         * Makefile.am:  Added $(i_cshift0_c).
698         Added $(i_cshift0_c) to gfor_built_specific_src.
699         Add rule to build from cshift0.m4.
700         * Makefile.in:  Regenerated.
701         * libgfortran.h:  Addedd prototypes for cshift0_i1,
702         cshift0_i2, cshift0_i4, cshift0_i8, cshift0_i16,
703         cshift0_r4, cshift0_r8, cshift0_r10, cshift0_r16,
704         cshift0_c4, cshift0_c8, cshift0_c10, cshift0_c16.
705         Define Macros GFC_UNALIGNED_C4 and GFC_UNALIGNED_C8.
706         * intrinsics/cshift0.c:  Remove helper functions for
707         the innter shift loop.
708         (cshift0):  Call specific functions depending on type
709         of array argument.  Only call specific functions for
710         correct alignment for other types.
711         * m4/cshift0.m4:  New file.
712         * generated/cshift0_i1.c:  New file.
713         * generated/cshift0_i2.c:  New file.
714         * generated/cshift0_i4.c:  New file.
715         * generated/cshift0_i8:.c  New file.
716         * generated/cshift0_i16.c:  New file.
717         * generated/cshift0_r4.c:  New file.
718         * generated/cshift0_r8.c:  New file.
719         * generated/cshift0_r10.c:  New file.
720         * generated/cshift0_r16.c:  New file.
721         * generated/cshift0_c4.c:  New file.
722         * generated/cshift0_c8.c:  New file.
723         * generated/cshift0_c10.c:  New file.
724         * generated/cshift0_c16.c:  New file.
725
726 2008-07-27  Tobias Burnus  <burnus@net-b.de>
727
728         PR fortran/36132
729         PR fortran/29952
730         PR fortran/36909
731         * runtime/error.c: New function runtime_error_at.
732         * gfortran.map: Ditto.
733         * libgfortran.h: Ditto.
734
735 2008-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
736
737         PR fortran/36582
738         * io/list_read.c: If variable rank is zero, do not adjust the found
739         namelist object pointer.
740
741 2008-07-22  Daniel Kraft  <d@domob.eu>
742
743         PR fortran/29835
744         * io/format.c (struct format_data):  New member error_element.
745         (unexpected_element):  Added '%c' to message.
746         (next_char):  Keep track of last parsed character in fmt->error_element.
747         (format_error):  If the message is unexpected_element, output the
748         offending character, too.
749
750 2008-07-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
751
752         PR libfortran/36890
753         * io/file_pos.c:  Declare READ_CHUNK as signed to avoid
754         signed/unsigned comparison warning in formatted_backspace.
755
756 2008-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
757
758         PR libfortran/36773
759         * intrinsics/cshift0.c (cshift0):  Return early if size of array
760         is zero.
761         * intrinsics/eoshift0.c (eoshift0):  Return early if size of
762         return array is zero.
763         * intrinsics/eoshift2.c (eoshift2):  Likewise.
764         * m4/eoshift1.m4 (eoshift1):  Return early if size of array
765         is zero.
766         * m4/eoshift3.m4 (eoshift3):  Likewise.
767         * m4/eoshift2.m4 (eoshift2):  Return early if size of return
768         array is zero.
769         * m4/eoshift4.m4 (eoshift2):  Return early if size of return
770         array is zero.
771         * generated/cshift1_16.c: Regenerated.
772         * generated/cshift1_4.c: Regenerated.
773         * generated/cshift1_8.c: Regenerated.
774         * generated/eoshift1_16.c: Regenerated.
775         * generated/eoshift1_4.c: Regenerated.
776         * generated/eoshift1_8.c: Regenerated.
777         * generated/eoshift3_16.c: Regenerated.
778         * generated/eoshift3_4.c: Regenerated.
779         * generated/eoshift3_8.c: Regenerated.
780
781 2008-07-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
782
783         PR fortran/36857
784         * io/write_float.def: Comment out locale dependent code and fix general
785         comments.
786         
787 2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
788
789         PR fortran/36341
790         PR fortran/34670
791         * m4/matmul.m4:  Add bounds checking.
792         * m4/matmull.m4:  Likewise.
793         * generated/matmul_c10.c: Regenerated.
794         * generated/matmul_c16.c: Regenerated.
795         * generated/matmul_c4.c: Regenerated.
796         * generated/matmul_c8.c: Regenerated.
797         * generated/matmul_i1.c: Regenerated.
798         * generated/matmul_i16.c: Regenerated.
799         * generated/matmul_i2.c: Regenerated.
800         * generated/matmul_i4.c: Regenerated.
801         * generated/matmul_i8.c: Regenerated.
802         * generated/matmul_l16.c: Regenerated.
803         * generated/matmul_l4.c: Regenerated.
804         * generated/matmul_l8.c: Regenerated.
805         * generated/matmul_r10.c: Regenerated.
806         * generated/matmul_r16.c: Regenerated.
807         * generated/matmul_r4.c: Regenerated.
808         * generated/matmul_r8.c: Regenerated.
809
810 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
811
812         * acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Fix configure cache
813         variable name.
814         * configure: Regenerate.
815
816 2008-07-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
817
818         PR fortran/36676
819         * io/list_read.c (find_nml_name): Use eat_separator instead of eat_line.
820         
821 2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
822
823         PR fortran/36657
824         * io/list_read.c (read_character): Check for '!' along with separators.
825         (find_nml_name): Likewise and eat the comment if found.
826
827 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
828
829         * configure: Regenerate.
830
831 2008-06-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
832
833         PR fortran/36546
834         * io/list_read.c (eat_separator): Add tab character to condition
835         for looping past whitespace.
836
837 2008-06-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
838
839         PR fortran/36515
840         * libgfortran.h (compile_options_t): Add int range_check to structure.
841         * runtime/compile_options.c (set_options): Add range_check option.
842         (init_compile_options): Likewise.
843         *io/read.c (read_decimal): Change overflow checks to include
844         range_check.
845         
846 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
847
848         PR fortran/36538
849         * io/list_read.c (namelist_read): Add eat_separator to eliminate leading
850         tabs.
851
852 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
853
854         PR fortran/35863
855         * libgfortran.h: Change l8_to_l4_offset to big_endian and add endian_off.
856         * runtime/main.c: Fix error in comment. Change l8_to_l4_offset to
857         big_endian. (determine_endianness): Add endian_off and set its value
858         according to big_endian.
859         * gfortran.map: Add symbol for new _gfortran_transfer_character_wide.
860         * io/io.h: Add prototype declarations for new functions.
861         * io/list_read.c (list_formatted_read_scalar): Modify to handle kind=4.
862         (list_formatted_read): Calculate stride based on kind for character type
863         and use it when calling list_formatted_read_scalar.
864         * io/inquire.c (inquire_via_unit): Change l8_to_l4_offset to big_endian.
865         * io/open.c (st_open): Change l8_to_l4_offset to big_endian.
866         * io/read.c (read_a_char4): New function to handle formatted read.
867         * io/write.c: Define GFC_CHAR4(x) to improve readability of code.
868         (write_a_char4): New function to handle formatted write.
869         (write_character): Modify to accept the kind parameter and adjust for
870         endianess of the machine. (list_formatted_write): Calculate the stride
871         resulting from the kind and adjust the list_formatted_write_scalar call
872         accordingly. (nml_write_obj): Adjust calls to write_character.
873         (namelist_write): Likewise.
874         * io/transfer.c (formatted_transfer_scaler): Rename 'len' argument to
875         'kind' argument to better describe what it is. Add calls to new
876         functions for kind == 4. (formatted_transfer): Modify to handle the case
877         of type character and kind equals 4 to pass in the kind to the transfer
878         routines. (transfer_character_wide): Add this new function.
879         (transfer_array): Don't set kind to the character string length. Adjust
880         strides bases on character kind.
881         (unformatted_read): Adjust size based on kind for character types.
882         (unformatted_write): Likewise. (data_transfer_init): Change
883         l8_to_l4_offset to big_endian.
884         io/fbuf.c (fbuf_seek): Add cast to eliminate warning.
885
886 2008-06-13  Tobias Burnus  <burnus@net-b.de>
887
888         * configure.ac (AM_CFLAGS): Remove -Werror again.
889         * configure: Regenerate.
890
891 2008-06-13  Tobias Burnus  <burnus@net-b.de>
892
893         PR libgfortran/36518
894         * configure.ac (AM_CFLAGS): Add -Werror.
895         * configure: Regenerate.
896         * m4/ifunction_logical.m4: Cast "n" to "(int)".
897         * generated/any_l16.c: Regenerate.
898         * generated/any_l2.c: Regenerate.
899         * generated/all_l1.c: Regenerate.
900         * generated/all_l2.c: Regenerate.
901         * generated/all_l16.c: Regenerate.
902         * generated/any_l4.c: Regenerate.
903         * generated/count_4_l.c: Regenerate.
904         * generated/count_8_l.c: Regenerate.
905         * generated/all_l4.c: Regenerate.
906         * generated/count_1_l.c: Regenerate.
907         * generated/count_16_l.c: Regenerate.
908         * generated/any_l8.c: Regenerate.
909         * generated/count_2_l.c: Regenerate.
910         * generated/any_l1.c: Regenerate.
911         * generated/all_l8.c: Regenerate.
912
913 2008-06-13  Tobias Burnus  <burnus@net-b.de>
914
915         PR fortran/36495
916         * configure.ac (AM_FCFLAGS): Add "-Werror -fimplicit-none".
917         * configure: (generated) ditto.
918         * intrinsics/dprod_r8.f90: Add "implicit none".
919
920 2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
921
922         PR libfortran/36420
923         PR libfortran/36421
924         PR libfortran/36422
925         * io/io.h: Add prototype for write_real.
926         * io/transfer.c (formatted_transfer_scalar): For FMT_G and width zero,
927         use write_real.
928         * io/format.c: Add zero width error message. (parse_format_list): Use
929         error message for FMT_A if followed by FMT_ZERO. Use zero width error
930         message for FMT_G if mode is READ or if -std=f95 or f2003. (fmormat0):
931         Fix typo in comment.
932         * io/write.c(write_a): Set wlen to len if FMT_G and length is zero.
933         (write_l): Add wlen variable and use it if FMT_G and width is zero.
934         (write_decimal): If FMT_G, set m to -1 to flag processor dependent
935         formatting. (write_real): Remove static declaration.
936
937 2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
938
939         PR fortran/36319
940         * intrinsics/string_intrinsics_inc.c (string_index): Return
941         correct value for zero-length substring.
942         * intrinsics/cshift0.c: Add _char4 variant.
943         * intrinsics/eoshift0.c (eoshift0): Allow filler to be a pattern
944         wider than a single byte. Add _char4 variant and use above
945         functionality.
946         * intrinsics/eoshift2.c (eoshift2): Likewise.
947         * m4/eoshift1.m4: Likewise.
948         * m4/eoshift3.m4: Likewise.
949         * m4/cshift1.m4: Add _char4 variants.
950         * gfortran.map (GFORTRAN_1.1): Add _gfortran_cshift0_1_char4,
951         _gfortran_cshift0_2_char4, _gfortran_cshift0_4_char4,
952         _gfortran_cshift0_8_char4, _gfortran_cshift1_16_char4,
953         _gfortran_cshift1_4_char4, _gfortran_cshift1_8_char4,
954         _gfortran_eoshift0_1_char4, _gfortran_eoshift0_2_char4,
955         _gfortran_eoshift0_4_char4, _gfortran_eoshift0_8_char4,
956         _gfortran_eoshift1_16_char4, _gfortran_eoshift1_4_char4,
957         _gfortran_eoshift1_8_char4, _gfortran_eoshift2_1_char4,
958         _gfortran_eoshift2_2_char4, _gfortran_eoshift2_4_char4,
959         _gfortran_eoshift2_8_char4, _gfortran_eoshift3_16_char4,
960         _gfortran_eoshift3_4_char4 and _gfortran_eoshift3_8_char4.
961         * generated/eoshift3_4.c: Regenerate.
962         * generated/eoshift1_8.c: Regenerate.
963         * generated/eoshift1_16.c: Regenerate.
964         * generated/cshift1_4.c: Regenerate.
965         * generated/eoshift1_4.c: Regenerate.
966         * generated/eoshift3_8.c: Regenerate.
967         * generated/eoshift3_16.c: Regenerate.
968         * generated/cshift1_8.c: Regenerate.
969         * generated/cshift1_16.c: Regenerate.
970
971 2008-05-25  Tobias Burnus  <burnus@net-b.de>
972
973         PR fortran/32600
974         * intrinsics/iso_c_binding.c (c_f_procpointer): Remove.
975         * intrinsics/iso_c_binding.h (c_f_procpointer): Remove.
976         * gfortran.map (c_f_procpointer): Remove.
977
978 2008-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
979
980         PR libgfortran/36302
981         * gfortran.map (GFORTRAN_1.1): Add _gfortran_eoshift0_16,
982         _gfortran_eoshift0_16_char, _gfortran_eoshift2_16,
983         _gfortran_eoshift2_16_char,_gfortran_cshift0_16,
984         _gfortran_cshift0_16_char.  Sort alphabetically.
985         * intrinsics/eoshift0.c:  Add function for kind=16 integer.
986         * intrinsics/eoshift2.c:  Likewise.
987         * intrinsics/cshift0.c:  Likewise.
988
989 2008-05-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
990
991         * m4/in_pack.m4 (internal_pack_'rtype_code`):  Destination
992         pointer is restrict.
993         * m4/transpose.m4 (transpose_'rtype_code`):  Likewise.
994         * m4/pack.m4 (pack_'rtype_code`):  Likewise.
995         * m4/spread.m4 (spread_'rtype_code`):  Likewise.
996         (spread_scalar_'rtype_code`): Likewise.
997         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Likewise.
998         * m4/eoshift1.m4 (eoshift1):  Likewise.
999         * m4/eoshift3.m4 (eoshift3):  Likewise.
1000         * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`):  Likewise.
1001         * m4/unpack.m4 (unpack0_'rtype_code`):  Likewise.
1002         (unpack1_'rtype_code`):  Likewise.
1003         * intrinsics/pack_generic.c (pack_generic.c):  Likewise.
1004         * intrinsics/unpack_generic.c (unpack_internal):  Likewise.
1005         * intrinsics/eoshift0.c (eoshift0):  Likewise.
1006         * intrinsics/eoshift2.c (eoshift2):  Likewise.
1007         * intrinsics/reshape_generic.c (reshape_internal):  Likewise.
1008         * intrinsics/reshape_packed.c (reshape_packed):  Likewise.
1009         * generated/eoshift1_16.c: Regenerated.
1010         * generated/eoshift1_4.c: Regenerated.
1011         * generated/eoshift1_8.c: Regenerated.
1012         * generated/eoshift3_16.c: Regenerated.
1013         * generated/eoshift3_4.c: Regenerated.
1014         * generated/eoshift3_8.c: Regenerated.
1015         * generated/in_pack_c10.c: Regenerated.
1016         * generated/in_pack_c16.c: Regenerated.
1017         * generated/in_pack_c4.c: Regenerated.
1018         * generated/in_pack_c8.c: Regenerated.
1019         * generated/in_pack_i1.c: Regenerated.
1020         * generated/in_pack_i16.c: Regenerated.
1021         * generated/in_pack_i2.c: Regenerated.
1022         * generated/in_pack_i4.c: Regenerated.
1023         * generated/in_pack_i8.c: Regenerated.
1024         * generated/in_pack_r10.c: Regenerated.
1025         * generated/in_pack_r16.c: Regenerated.
1026         * generated/in_pack_r4.c: Regenerated.
1027         * generated/in_pack_r8.c: Regenerated.
1028         * generated/in_unpack_c10.c: Regenerated.
1029         * generated/in_unpack_c16.c: Regenerated.
1030         * generated/in_unpack_c4.c: Regenerated.
1031         * generated/in_unpack_c8.c: Regenerated.
1032         * generated/in_unpack_i1.c: Regenerated.
1033         * generated/in_unpack_i16.c: Regenerated.
1034         * generated/in_unpack_i2.c: Regenerated.
1035         * generated/in_unpack_i4.c: Regenerated.
1036         * generated/in_unpack_i8.c: Regenerated.
1037         * generated/in_unpack_r10.c: Regenerated.
1038         * generated/in_unpack_r16.c: Regenerated.
1039         * generated/in_unpack_r4.c: Regenerated.
1040         * generated/in_unpack_r8.c: Regenerated.
1041         * generated/maxloc0_16_i1.c: Regenerated.
1042         * generated/maxloc0_16_i16.c: Regenerated.
1043         * generated/maxloc0_16_i2.c: Regenerated.
1044         * generated/maxloc0_16_i4.c: Regenerated.
1045         * generated/maxloc0_16_i8.c: Regenerated.
1046         * generated/maxloc0_16_r10.c: Regenerated.
1047         * generated/maxloc0_16_r16.c: Regenerated.
1048         * generated/maxloc0_16_r4.c: Regenerated.
1049         * generated/maxloc0_16_r8.c: Regenerated.
1050         * generated/maxloc0_4_i1.c: Regenerated.
1051         * generated/maxloc0_4_i16.c: Regenerated.
1052         * generated/maxloc0_4_i2.c: Regenerated.
1053         * generated/maxloc0_4_i4.c: Regenerated.
1054         * generated/maxloc0_4_i8.c: Regenerated.
1055         * generated/maxloc0_4_r10.c: Regenerated.
1056         * generated/maxloc0_4_r16.c: Regenerated.
1057         * generated/maxloc0_4_r4.c: Regenerated.
1058         * generated/maxloc0_4_r8.c: Regenerated.
1059         * generated/maxloc0_8_i1.c: Regenerated.
1060         * generated/maxloc0_8_i16.c: Regenerated.
1061         * generated/maxloc0_8_i2.c: Regenerated.
1062         * generated/maxloc0_8_i4.c: Regenerated.
1063         * generated/maxloc0_8_i8.c: Regenerated.
1064         * generated/maxloc0_8_r10.c: Regenerated.
1065         * generated/maxloc0_8_r16.c: Regenerated.
1066         * generated/maxloc0_8_r4.c: Regenerated.
1067         * generated/maxloc0_8_r8.c: Regenerated.
1068         * generated/minloc0_16_i1.c: Regenerated.
1069         * generated/minloc0_16_i16.c: Regenerated.
1070         * generated/minloc0_16_i2.c: Regenerated.
1071         * generated/minloc0_16_i4.c: Regenerated.
1072         * generated/minloc0_16_i8.c: Regenerated.
1073         * generated/minloc0_16_r10.c: Regenerated.
1074         * generated/minloc0_16_r16.c: Regenerated.
1075         * generated/minloc0_16_r4.c: Regenerated.
1076         * generated/minloc0_16_r8.c: Regenerated.
1077         * generated/minloc0_4_i1.c: Regenerated.
1078         * generated/minloc0_4_i16.c: Regenerated.
1079         * generated/minloc0_4_i2.c: Regenerated.
1080         * generated/minloc0_4_i4.c: Regenerated.
1081         * generated/minloc0_4_i8.c: Regenerated.
1082         * generated/minloc0_4_r10.c: Regenerated.
1083         * generated/minloc0_4_r16.c: Regenerated.
1084         * generated/minloc0_4_r4.c: Regenerated.
1085         * generated/minloc0_4_r8.c: Regenerated.
1086         * generated/minloc0_8_i1.c: Regenerated.
1087         * generated/minloc0_8_i16.c: Regenerated.
1088         * generated/minloc0_8_i2.c: Regenerated.
1089         * generated/minloc0_8_i4.c: Regenerated.
1090         * generated/minloc0_8_i8.c: Regenerated.
1091         * generated/minloc0_8_r10.c: Regenerated.
1092         * generated/minloc0_8_r16.c: Regenerated.
1093         * generated/minloc0_8_r4.c: Regenerated.
1094         * generated/minloc0_8_r8.c: Regenerated.
1095         * generated/pack_c10.c: Regenerated.
1096         * generated/pack_c16.c: Regenerated.
1097         * generated/pack_c4.c: Regenerated.
1098         * generated/pack_c8.c: Regenerated.
1099         * generated/pack_i1.c: Regenerated.
1100         * generated/pack_i16.c: Regenerated.
1101         * generated/pack_i2.c: Regenerated.
1102         * generated/pack_i4.c: Regenerated.
1103         * generated/pack_i8.c: Regenerated.
1104         * generated/pack_r10.c: Regenerated.
1105         * generated/pack_r16.c: Regenerated.
1106         * generated/pack_r4.c: Regenerated.
1107         * generated/pack_r8.c: Regenerated.
1108         * generated/spread_c10.c: Regenerated.
1109         * generated/spread_c16.c: Regenerated.
1110         * generated/spread_c4.c: Regenerated.
1111         * generated/spread_c8.c: Regenerated.
1112         * generated/spread_i1.c: Regenerated.
1113         * generated/spread_i16.c: Regenerated.
1114         * generated/spread_i2.c: Regenerated.
1115         * generated/spread_i4.c: Regenerated.
1116         * generated/spread_i8.c: Regenerated.
1117         * generated/spread_r10.c: Regenerated.
1118         * generated/spread_r16.c: Regenerated.
1119         * generated/spread_r4.c: Regenerated.
1120         * generated/spread_r8.c: Regenerated.
1121         * generated/transpose_c10.c: Regenerated.
1122         * generated/transpose_c16.c: Regenerated.
1123         * generated/transpose_c4.c: Regenerated.
1124         * generated/transpose_c8.c: Regenerated.
1125         * generated/transpose_i16.c: Regenerated.
1126         * generated/transpose_i4.c: Regenerated.
1127         * generated/transpose_i8.c: Regenerated.
1128         * generated/transpose_r10.c: Regenerated.
1129         * generated/transpose_r16.c: Regenerated.
1130         * generated/transpose_r4.c: Regenerated.
1131         * generated/transpose_r8.c: Regenerated.
1132         * generated/unpack_c10.c: Regenerated.
1133         * generated/unpack_c16.c: Regenerated.
1134         * generated/unpack_c4.c: Regenerated.
1135         * generated/unpack_c8.c: Regenerated.
1136         * generated/unpack_i1.c: Regenerated.
1137         * generated/unpack_i16.c: Regenerated.
1138         * generated/unpack_i2.c: Regenerated.
1139         * generated/unpack_i4.c: Regenerated.
1140         * generated/unpack_i8.c: Regenerated.
1141         * generated/unpack_r10.c: Regenerated.
1142         * generated/unpack_r16.c: Regenerated.
1143         * generated/unpack_r4.c: Regenerated.
1144         * generated/unpack_r8.c: Regenerated.
1145
1146 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1147
1148         * runtime/select.c: Moved content to select_inc.c. Include it. 
1149         Add macros for different character types.
1150         * runtime/select_inc.c: New file.
1151         * runtime/convert_char.c: New file.
1152         * intrinsics/pack_generic.c (pack_char4, pack_s_char4): New
1153         functions.
1154         * intrinsics/transpose_generic.c (transpose_char4): New function.
1155         * intrinsics/spread_generic.c (spread_char4, spread_char4_scalar):
1156         New functions.
1157         * intrinsics/unpack_generic.c (unpack1_char4, unpack0_char4): 
1158         New functions.
1159         * intrinsics/reshape_generic.c (reshape_char): Use
1160         gfc_charlen_type as type for length variables.
1161         (reshape_char4): New function.
1162         * gfortran.map (GFORTRAN_1.1): Add _gfortran_select_string_char4,
1163         _gfortran_convert_char1_to_char4, _gfortran_convert_char4_to_char1,
1164         _gfortran_transpose_char4, _gfortran_spread_char4,
1165         _gfortran_spread_char4_scalar, _gfortran_reshape_char4,
1166         _gfortran_pack_char4, _gfortran_pack_s_char4,
1167         _gfortran_unpack0_char4 and _gfortran_unpack1_char4.
1168         * Makefile.am: Add runtime/convert_char.c.
1169         * Makefile.in: Regenerate.
1170
1171 2008-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
1172
1173         * io/list_read.c (list_formatted_read_scalar):  Declare
1174         type as volatile to shut up compiler warning.
1175
1176 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
1177
1178         PR libfortran/25561
1179         * io/io.h (struct fbuf): Change pointer to position offset.
1180         * io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
1181         changes.
1182         (fbuf_reset): ptr=>pos changes.
1183         (fbuf_alloc): If the request doesn't fit, don't waste memory by
1184         keeping flushed bytes. ptr=>pos changes.
1185         (fbuf_flush): ptr=>pos changes.
1186         (fbuf_seek): Don't seek past the left tab limit, don't update active
1187         byte count.
1188         * io/open.c (new_unit): If RECL has been specified, used that as
1189         initial buffer size.
1190
1191 2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
1192
1193         PR libfortran/35632
1194         * io/open.c (new_unit): Set stream position to correct value.
1195
1196 2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
1197
1198         PR libfortran/25561
1199         * Makefile.am: Add fbuf.c to gfor_io_src.
1200         * Makefile.in: Regenerate.
1201         * io/io.h (read_block): Remove.
1202         (struct stream): Remove alloc_r_at function pointer.
1203         (salloc_r): Remove.
1204         (salloc_r_at): Remove.
1205         (salloc_w_at): Remove.
1206         (salloc_w): Remove offset argument.
1207         (struct fbuf): New struct for format buffer.
1208         (struct gfc_unit): Add fbuf.
1209         (read_block_form): New prototype.
1210         (fbuf_init): Likewise.
1211         (fbuf_destroy): Likewise.
1212         (fbuf_reset): Likewise.
1213         (fbuf_alloc): Likewise.
1214         (fbuf_flush): Likewise.
1215         (fbuf_seek): Likewise.
1216         * io/file_pos.c (formatted_backspace): Change to use sread.
1217         (unformatted_backspace): Likewise.
1218         (st_backspace): Flush format buffer.
1219         (st_rewind): Likewise.
1220         * io/list_read.c (next_char): Likewise.
1221         (nml_query): Tidying, flush format buffer.
1222         * io/open.c (new_unit): Init format buffer.
1223         * io/read.c (read_l): Change to use read_block_form.
1224         (read_a): Likewise.
1225         (read_decimal): Likewise.
1226         (read_radix): Likewise.
1227         (read_f): Likewise.
1228         (read_x): Empty reads also for stream I/O.
1229         * io/transfer.c (read_sf): Change to use sread.
1230         (read_block): Rename to read_block_form, change prototype, use sread.
1231         (read_block_direct): Don't seek stream files.
1232         (write_block): Change to use fbuf if external file, don't seek stream
1233         files.
1234         (write_buf): Don't seek stream files.
1235         (formatted_transfer_scalar): Use fbuf for external files.
1236         (us_read): Change to use sread.
1237         (pre_position): Do nothing for stream I/O.
1238         (data_transfer_init): Flush fbuf when switching from write to read, if
1239         POS is specified, seek stream file to correct offset.
1240         (skip_record): Change to use sread.
1241         (min_off): New function.
1242         (next_record_r): Change to use sread.
1243         (next_record_w): Change to use sset/sseek, flush fbuf.
1244         (finalize_transfer): Flush fbuf.
1245         * io/unit.c (init_units): Init fbuf for stdout, stderr.
1246         (close_unit_1): Destroy fbuf.
1247         (finish_last_advance_record): Flush fbuf, no need to seek.
1248         * io/unix.c (fd_alloc_r_at): Remove unused where argument.
1249         (fd_alloc_w_at): Likewise.
1250         (fd_read): Remove third argument to fd_alloc_r_at.
1251         (fd_write): Remove third argument to fd_alloc_w_at.
1252         (fd_sset): Likewise.
1253         (fd_open): Don't set alloc_r_at.
1254         (mem_alloc_r_at): Remove unused where argument.
1255         (mem_alloc_w_at): Likewise.
1256         (mem_read): Don't incorrectly return previous errno, remove unused
1257         third argument to alloc function.
1258         (mem_write): Likewise.
1259         (mem_set): Likewise.
1260         (open_internal): Don't set alloc_r_at pointer.
1261         * io/fbuf.c: New file.
1262
1263 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1264
1265         * libgfortran.h (gfc_char4_t): New type.
1266         (GFC_SIZE_OF_CHAR_KIND): New macro.
1267         (compare_string): Adjust prototype.
1268         (compare_string_char4): New prototype.
1269         * gfortran.map (GFORTRAN_1.1): Add _gfortran_adjustl_char4,
1270         _gfortran_adjustr_char4, _gfortran_compare_string_char4,
1271         _gfortran_concat_string_char4, _gfortran_string_index_char4,
1272         _gfortran_string_len_trim_char4, _gfortran_string_minmax_char4,
1273         _gfortran_string_scan_char4, _gfortran_string_trim_char4 and
1274         _gfortran_string_verify_char4.
1275         * intrinsics/string_intrinsics_inc.c: New file from content of
1276         string_intrinsics.c with types replaced by macros.
1277         * intrinsics/string_intrinsics.c: Move content to
1278         string_intrinsics_inc.c.
1279
1280 2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1281
1282         PR libfortran/36202
1283         * io/list_read (eat_separator): Handle the CR-LF case correctly.
1284
1285 2008-05-09  Julian Brown  <julian@codesourcery.com>
1286
1287         * Makefile.am (LTLDFLAGS): New.
1288         (libgfortran_la_LDFLAGS): Use above.
1289         * Makefile.in: Regenerate.
1290
1291 2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1292
1293         PR libfortran/36131
1294         * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
1295         (next_record_w): Likewise.
1296
1297 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1298
1299         PR libfortran/35995
1300         * m4/ifunction_logical.m4:  If the extent of "array"
1301         is less than zero, set it to zero.  Use an explicit
1302         flag for breaking out of the main loop to avoid, because
1303         the data pointer for "array" may be NULL for an empty
1304         array.
1305         * m4/ifunction.m4:  Likewise.
1306         * generated/all_l1.c: Regenerated.
1307         * generated/all_l16.c: Regenerated.
1308         * generated/all_l2.c: Regenerated.
1309         * generated/all_l4.c: Regenerated.
1310         * generated/all_l8.c: Regenerated.
1311         * generated/any_l1.c: Regenerated.
1312         * generated/any_l16.c: Regenerated.
1313         * generated/any_l2.c: Regenerated.
1314         * generated/any_l4.c: Regenerated.
1315         * generated/any_l8.c: Regenerated.
1316         * generated/count_16_l.c: Regenerated.
1317         * generated/count_1_l.c: Regenerated.
1318         * generated/count_2_l.c: Regenerated.
1319         * generated/count_4_l.c: Regenerated.
1320         * generated/count_8_l.c: Regenerated.
1321         * generated/maxloc1_16_i1.c: Regenerated.
1322         * generated/maxloc1_16_i16.c: Regenerated.
1323         * generated/maxloc1_16_i2.c: Regenerated.
1324         * generated/maxloc1_16_i4.c: Regenerated.
1325         * generated/maxloc1_16_i8.c: Regenerated.
1326         * generated/maxloc1_16_r10.c: Regenerated.
1327         * generated/maxloc1_16_r16.c: Regenerated.
1328         * generated/maxloc1_16_r4.c: Regenerated.
1329         * generated/maxloc1_16_r8.c: Regenerated.
1330         * generated/maxloc1_4_i1.c: Regenerated.
1331         * generated/maxloc1_4_i16.c: Regenerated.
1332         * generated/maxloc1_4_i2.c: Regenerated.
1333         * generated/maxloc1_4_i4.c: Regenerated.
1334         * generated/maxloc1_4_i8.c: Regenerated.
1335         * generated/maxloc1_4_r10.c: Regenerated.
1336         * generated/maxloc1_4_r16.c: Regenerated.
1337         * generated/maxloc1_4_r4.c: Regenerated.
1338         * generated/maxloc1_4_r8.c: Regenerated.
1339         * generated/maxloc1_8_i1.c: Regenerated.
1340         * generated/maxloc1_8_i16.c: Regenerated.
1341         * generated/maxloc1_8_i2.c: Regenerated.
1342         * generated/maxloc1_8_i4.c: Regenerated.
1343         * generated/maxloc1_8_i8.c: Regenerated.
1344         * generated/maxloc1_8_r10.c: Regenerated.
1345         * generated/maxloc1_8_r16.c: Regenerated.
1346         * generated/maxloc1_8_r4.c: Regenerated.
1347         * generated/maxloc1_8_r8.c: Regenerated.
1348         * generated/maxval_i1.c: Regenerated.
1349         * generated/maxval_i16.c: Regenerated.
1350         * generated/maxval_i2.c: Regenerated.
1351         * generated/maxval_i4.c: Regenerated.
1352         * generated/maxval_i8.c: Regenerated.
1353         * generated/maxval_r10.c: Regenerated.
1354         * generated/maxval_r16.c: Regenerated.
1355         * generated/maxval_r4.c: Regenerated.
1356         * generated/maxval_r8.c: Regenerated.
1357         * generated/minloc1_16_i1.c: Regenerated.
1358         * generated/minloc1_16_i16.c: Regenerated.
1359         * generated/minloc1_16_i2.c: Regenerated.
1360         * generated/minloc1_16_i4.c: Regenerated.
1361         * generated/minloc1_16_i8.c: Regenerated.
1362         * generated/minloc1_16_r10.c: Regenerated.
1363         * generated/minloc1_16_r16.c: Regenerated.
1364         * generated/minloc1_16_r4.c: Regenerated.
1365         * generated/minloc1_16_r8.c: Regenerated.
1366         * generated/minloc1_4_i1.c: Regenerated.
1367         * generated/minloc1_4_i16.c: Regenerated.
1368         * generated/minloc1_4_i2.c: Regenerated.
1369         * generated/minloc1_4_i4.c: Regenerated.
1370         * generated/minloc1_4_i8.c: Regenerated.
1371         * generated/minloc1_4_r10.c: Regenerated.
1372         * generated/minloc1_4_r16.c: Regenerated.
1373         * generated/minloc1_4_r4.c: Regenerated.
1374         * generated/minloc1_4_r8.c: Regenerated.
1375         * generated/minloc1_8_i1.c: Regenerated.
1376         * generated/minloc1_8_i16.c: Regenerated.
1377         * generated/minloc1_8_i2.c: Regenerated.
1378         * generated/minloc1_8_i4.c: Regenerated.
1379         * generated/minloc1_8_i8.c: Regenerated.
1380         * generated/minloc1_8_r10.c: Regenerated.
1381         * generated/minloc1_8_r16.c: Regenerated.
1382         * generated/minloc1_8_r4.c: Regenerated.
1383         * generated/minloc1_8_r8.c: Regenerated.
1384         * generated/minval_i1.c: Regenerated.
1385         * generated/minval_i16.c: Regenerated.
1386         * generated/minval_i2.c: Regenerated.
1387         * generated/minval_i4.c: Regenerated.
1388         * generated/minval_i8.c: Regenerated.
1389         * generated/minval_r10.c: Regenerated.
1390         * generated/minval_r16.c: Regenerated.
1391         * generated/minval_r4.c: Regenerated.
1392         * generated/minval_r8.c: Regenerated.
1393         * generated/product_c10.c: Regenerated.
1394         * generated/product_c16.c: Regenerated.
1395         * generated/product_c4.c: Regenerated.
1396         * generated/product_c8.c: Regenerated.
1397         * generated/product_i1.c: Regenerated.
1398         * generated/product_i16.c: Regenerated.
1399         * generated/product_i2.c: Regenerated.
1400         * generated/product_i4.c: Regenerated.
1401         * generated/product_i8.c: Regenerated.
1402         * generated/product_r10.c: Regenerated.
1403         * generated/product_r16.c: Regenerated.
1404         * generated/product_r4.c: Regenerated.
1405         * generated/product_r8.c: Regenerated.
1406         * generated/sum_c10.c: Regenerated.
1407         * generated/sum_c16.c: Regenerated.
1408         * generated/sum_c4.c: Regenerated.
1409         * generated/sum_c8.c: Regenerated.
1410         * generated/sum_i1.c: Regenerated.
1411         * generated/sum_i16.c: Regenerated.
1412         * generated/sum_i2.c: Regenerated.
1413         * generated/sum_i4.c: Regenerated.
1414         * generated/sum_i8.c: Regenerated.
1415         * generated/sum_r10.c: Regenerated.
1416         * generated/sum_r16.c: Regenerated.
1417         * generated/sum_r4.c: Regenerated.
1418         * generated/sum_r8.c: Regenerated.
1419
1420 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1421
1422         PR libfortran/35990
1423         * intrinsics/pack_generic.c:  Really commit.
1424
1425 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1426
1427         PR libfortran/35990
1428         * intrinsics/pack_generic.c:  If an extent of the source
1429         array is less then zero, set it to zero.  Set the source
1430         pointer to NULL if the source size is zero.  Set the total
1431         number of elements to zero if the vector has an extent
1432         less or equal to zero.
1433         * m4/pack.m4:  Set the source pointer to NULL if the
1434         source array is zero-sized.  Set the total number of
1435         elemements to zero if the vector has an extent less or
1436         equal to zero.
1437         * generated/pack_i1.c:  Regenerated.
1438         * generated/pack_i2.c:  Regenerated.
1439         * generated/pack_i4.c:  Regenerated.
1440         * generated/pack_i8.c:  Regenerated.
1441         * generated/pack_i16.c:  Regenerated.
1442         * generated/pack_r4.c:  Regenerated.
1443         * generated/pack_r8.c:  Regenerated.
1444         * generated/pack_r10.c:  Regenerated.
1445         * generated/pack_r16.c:  Regenerated.
1446         * generated/pack_c4.c:  Regenerated.
1447         * generated/pack_c8.c:  Regenerated.
1448         * generated/pack_c10.c:  Regenerated.
1449         * generated/pack_c16.c:  Regenerated.
1450
1451 2008-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1452
1453         PR libfortran/36094
1454         * runtime/error.c (show_locus): Provide modified error message when
1455         filename has not yet been associated with a unit number.
1456         * io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
1457
1458 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1459
1460         * intrinsics/selected_char_kind.c: New file.
1461         * gfortran.map (GFORTRAN_1.1): Add _gfortran_selected_char_kind.
1462         * Makefile.am: Add intrinsics/selected_char_kind.c.
1463         * Makefile.in: Regenerate.
1464
1465 2008-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1466
1467         PR libfortran/35993
1468         * ifunction.m4 (SCALAR_ARRAY_FUNCTION):  Use correct
1469         implementation for multi-dimensional return arrays when
1470         the mask is .false.
1471         * generated/maxloc1_16_i1.c: Regenerated.
1472         * generated/maxloc1_16_i16.c: Regenerated.
1473         * generated/maxloc1_16_i2.c: Regenerated.
1474         * generated/maxloc1_16_i4.c: Regenerated.
1475         * generated/maxloc1_16_i8.c: Regenerated.
1476         * generated/maxloc1_16_r10.c: Regenerated.
1477         * generated/maxloc1_16_r16.c: Regenerated.
1478         * generated/maxloc1_16_r4.c: Regenerated.
1479         * generated/maxloc1_16_r8.c: Regenerated.
1480         * generated/maxloc1_4_i1.c: Regenerated.
1481         * generated/maxloc1_4_i16.c: Regenerated.
1482         * generated/maxloc1_4_i2.c: Regenerated.
1483         * generated/maxloc1_4_i4.c: Regenerated.
1484         * generated/maxloc1_4_i8.c: Regenerated.
1485         * generated/maxloc1_4_r10.c: Regenerated.
1486         * generated/maxloc1_4_r16.c: Regenerated.
1487         * generated/maxloc1_4_r4.c: Regenerated.
1488         * generated/maxloc1_4_r8.c: Regenerated.
1489         * generated/maxloc1_8_i1.c: Regenerated.
1490         * generated/maxloc1_8_i16.c: Regenerated.
1491         * generated/maxloc1_8_i2.c: Regenerated.
1492         * generated/maxloc1_8_i4.c: Regenerated.
1493         * generated/maxloc1_8_i8.c: Regenerated.
1494         * generated/maxloc1_8_r10.c: Regenerated.
1495         * generated/maxloc1_8_r16.c: Regenerated.
1496         * generated/maxloc1_8_r4.c: Regenerated.
1497         * generated/maxloc1_8_r8.c: Regenerated.
1498         * generated/maxval_i1.c: Regenerated.
1499         * generated/maxval_i16.c: Regenerated.
1500         * generated/maxval_i2.c: Regenerated.
1501         * generated/maxval_i4.c: Regenerated.
1502         * generated/maxval_i8.c: Regenerated.
1503         * generated/maxval_r10.c: Regenerated.
1504         * generated/maxval_r16.c: Regenerated.
1505         * generated/maxval_r4.c: Regenerated.
1506         * generated/maxval_r8.c: Regenerated.
1507         * generated/minloc1_16_i1.c: Regenerated.
1508         * generated/minloc1_16_i16.c: Regenerated.
1509         * generated/minloc1_16_i2.c: Regenerated.
1510         * generated/minloc1_16_i4.c: Regenerated.
1511         * generated/minloc1_16_i8.c: Regenerated.
1512         * generated/minloc1_16_r10.c: Regenerated.
1513         * generated/minloc1_16_r16.c: Regenerated.
1514         * generated/minloc1_16_r4.c: Regenerated.
1515         * generated/minloc1_16_r8.c: Regenerated.
1516         * generated/minloc1_4_i1.c: Regenerated.
1517         * generated/minloc1_4_i16.c: Regenerated.
1518         * generated/minloc1_4_i2.c: Regenerated.
1519         * generated/minloc1_4_i4.c: Regenerated.
1520         * generated/minloc1_4_i8.c: Regenerated.
1521         * generated/minloc1_4_r10.c: Regenerated.
1522         * generated/minloc1_4_r16.c: Regenerated.
1523         * generated/minloc1_4_r4.c: Regenerated.
1524         * generated/minloc1_4_r8.c: Regenerated.
1525         * generated/minloc1_8_i1.c: Regenerated.
1526         * generated/minloc1_8_i16.c: Regenerated.
1527         * generated/minloc1_8_i2.c: Regenerated.
1528         * generated/minloc1_8_i4.c: Regenerated.
1529         * generated/minloc1_8_i8.c: Regenerated.
1530         * generated/minloc1_8_r10.c: Regenerated.
1531         * generated/minloc1_8_r16.c: Regenerated.
1532         * generated/minloc1_8_r4.c: Regenerated.
1533         * generated/minloc1_8_r8.c: Regenerated.
1534         * generated/minval_i1.c: Regenerated.
1535         * generated/minval_i16.c: Regenerated.
1536         * generated/minval_i2.c: Regenerated.
1537         * generated/minval_i4.c: Regenerated.
1538         * generated/minval_i8.c: Regenerated.
1539         * generated/minval_r10.c: Regenerated.
1540         * generated/minval_r16.c: Regenerated.
1541         * generated/minval_r4.c: Regenerated.
1542         * generated/minval_r8.c: Regenerated.
1543         * generated/product_c10.c: Regenerated.
1544         * generated/product_c16.c: Regenerated.
1545         * generated/product_c4.c: Regenerated.
1546         * generated/product_c8.c: Regenerated.
1547         * generated/product_i1.c: Regenerated.
1548         * generated/product_i16.c: Regenerated.
1549         * generated/product_i2.c: Regenerated.
1550         * generated/product_i4.c: Regenerated.
1551         * generated/product_i8.c: Regenerated.
1552         * generated/product_r10.c: Regenerated.
1553         * generated/product_r16.c: Regenerated.
1554         * generated/product_r4.c: Regenerated.
1555         * generated/product_r8.c: Regenerated.
1556         * generated/sum_c10.c: Regenerated.
1557         * generated/sum_c16.c: Regenerated.
1558         * generated/sum_c4.c: Regenerated.
1559         * generated/sum_c8.c: Regenerated.
1560         * generated/sum_i1.c: Regenerated.
1561         * generated/sum_i16.c: Regenerated.
1562         * generated/sum_i2.c: Regenerated.
1563         * generated/sum_i4.c: Regenerated.
1564         * generated/sum_i8.c: Regenerated.
1565         * generated/sum_r10.c: Regenerated.
1566         * generated/sum_r16.c: Regenerated.
1567         * generated/sum_r4.c: Regenerated.
1568         * generated/sum_r8.c: Regenerated.
1569
1570 2008-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1571
1572         PR libfortran/35960
1573         * m4/reshape.m4:  Fix typo in last commit.
1574         * generated/reshape_i4.c:  Regererated.
1575         * generated/reshape_i8.c:  Regenerated.
1576         * generated/reshape_i16.c:  Regenerated.
1577         * generated/reshape_r4.c:  Regenerated.
1578         * generated/reshape_r8.c:  Regenerated.
1579         * generated/reshape_r10.c:  Regenerated.
1580         * generated/reshape_r16.c:  Regenerated.
1581         * generated/reshape_c4.c:  Regenerated.
1582         * generated/reshape_c8.c:  Regenerated.
1583         * generated/reshape_c10.c:  Regenerated.
1584         * generated/reshape_c16.c:  Regenerated.
1585
1586 2008-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1587
1588         * intrinsics/time_1.h (__time_1): Remove unused variable.
1589
1590 2008-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
1591
1592         PR libfortran/35988
1593         * m4/matmul.m4:  Only issue a runtime error if extents are
1594         non-zero.
1595         * generated/matmul_i1.c:  Regenerated.
1596         * generated/matmul_i2.c:  Regenerated.
1597         * generated/matmul_i4.c:  Regenerated.
1598         * generated/matmul_i8.c:  Regenerated.
1599         * generated/matmul_i16.c:  Regenerated.
1600         * generated/matmul_r4.c:  Regenerated.
1601         * generated/matmul_r8.c:  Regenerated.
1602         * generated/matmul_r10.c:  Regenerated.
1603         * generated/matmul_r16.c:  Regenerated.
1604         * generated/matmul_c4.c:  Regenerated.
1605         * generated/matmul_c8.c:  Regenerated.
1606         * generated/matmul_c10.c:  Regenerated.
1607         * generated/matmul_c16.c:  Regenerated.
1608
1609 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1610
1611         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY)
1612         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT)
1613         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS, LIBGFOR_CHECK_SYNC_FETCH_AND_ADD)
1614         (LIBGFOR_GTHREAD_WEAK, LIBGFOR_CHECK_UNLINK_OPEN_FILE)
1615         (LIBGFOR_CHECK_CRLF, LIBGFOR_CHECK_FOR_BROKEN_ISFINITE)
1616         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN)
1617         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY, LIBGFOR_CHECK_WORKING_STAT)
1618         (LIBGFOR_CHECK_FPSETMASK, LIBGFOR_CHECK_MINGW_SNPRINTF):
1619         Fix cache variable names.
1620         * configure, Makefile.in: Regenerate.
1621
1622 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1623
1624         PR fortran/35991
1625         * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
1626
1627 2008-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
1628
1629         PR libfortran/35960
1630         * intrinsics/reshape_generic.c (reshape_internal): If the size
1631         of the resized array is zero, as determined by the SHAPE
1632         argument, return early.
1633         * m4/reshape.m4:  Likewise.
1634         * generated/reshape_i4.c:  Regererated.
1635         * generated/reshape_i8.c:  Regenerated.
1636         * generated/reshape_i16.c:  Regenerated.
1637         * generated/reshape_r4.c:  Regenerated.
1638         * generated/reshape_r8.c:  Regenerated.
1639         * generated/reshape_r10.c:  Regenerated.
1640         * generated/reshape_r16.c:  Regenerated.
1641         * generated/reshape_c4.c:  Regenerated.
1642         * generated/reshape_c8.c:  Regenerated.
1643         * generated/reshape_c10.c:  Regenerated.
1644         * generated/reshape_c16.c:  Regenerated.
1645
1646 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1647
1648         PR bootstrap/35457
1649         * aclocal.m4: Regenerate.
1650         * configure: Regenerate.
1651
1652 2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1653
1654         PR libfortran/32972
1655         * intrinsics/spread_generic.c (spread):  Use spread_i2()
1656         for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
1657
1658 2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1659         Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1660
1661         PR libfortran/32972
1662         PR libfortran/32512
1663         configure.ac:  Add test for uintptr_t.
1664         configure:  Regenerated.
1665         config.h.in:  Regenerated.
1666         * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
1667         GFC_DTYPE_DERIVED_2:  New macro.
1668         GFC_DTYPE_DERIVED_4:  New macro.
1669         GFC_DTYPE_DERIVED_8:  New macro.
1670         GFC_DTYPE_DERIVED_16:  New macro.
1671         GFC_UNALIGNED_2:  New macro.
1672         GFC_UNALIGNED_4:  New macro.
1673         GFC_UNALIGNED_8:  New macro.
1674         GFC_UNALIGNED_16:  New macro.
1675         intptr_t:  Define if we don't have it.
1676         uintptr_t:  Likewise.
1677         * runtime/backtrace.c (show_backtrace):  Use intptr_t.
1678         * intrinsics/signal.c (signal_sub):  Likewise.
1679         (signal_sub_int):  Likewise.
1680         (alarm_sub_int_i4):  Likewise.
1681         * intrinsics/spread_generic.c (spread):  Use the integer
1682         routines for handling derived types of sizes 1, 2, 4, 8 and 16
1683         if the alignment of all pointers is correct.
1684         (spread_scalar):  Likewise.
1685         * intrinsics/pack_generic.c (pack):  Likewise.
1686         Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
1687         * intrinsics/unpack_generic.c (unpack1):  Likewise.
1688         (unpack0):  Likewise.
1689         * runtime/in_pack_generic.c (internal_pack):  Likewise.
1690         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
1691
1692 2008-04-09  Jakub Jelinek  <jakub@redhat.com>
1693
1694         * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
1695         (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
1696         recursive call.  Use snprintf instead of sprintf when %s nl->var_name
1697         is used.
1698         (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
1699         nml_read_obj call.  Use snprintf instead of sprintf when %s
1700         nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
1701         of parse_err_msg array.  Append " for namelist variable " and
1702         nl->var_name to it.
1703         (namelist_read): Increase size of nml_err_msg array to 200.  Pass
1704         sizeof nml_err_msg as extra argument to nml_get_obj_data.
1705
1706 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1707
1708         PR fortran/25829 28655
1709         * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
1710         and flags.status. (st_open): Initialize flags.async.
1711         * io/list_read.c (read_charactor): Use delim_status instead of
1712         flags.delim.
1713         * io/read.c (read_x): Use pad_status instead of flags.pad.
1714         * io/inquire.c (inquire_via_unit): Add new checks.
1715         (inquire_via_filename): Likewise.
1716         * io/io.h (st_parameter_inquire): Add new flags.
1717         (st_parameter_dt): Likewise.
1718         * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
1719         flags.async.
1720         * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
1721         pad_status instead of flags.pad. (read_block): Likewise.
1722         (data_transfer_init): Set flags.async and add checks.
1723         * io/write.c (write_character): Use delim_status.
1724         (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
1725         (namelist_write): Likewise.
1726
1727 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1728
1729         PR fortran/25829 28655
1730         * gfortran.map: Add new symbol, _gfortran_st_wait.
1731         * libgfortran.h (st_paramter_common): Add new I/O parameters.
1732         * open.c (st_option decimal_opt[], st_option encoding_opt[],
1733         st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
1734         parameter option arrays. (edit_modes): Add checks for new parameters.
1735         (new_unit): Likewise. (st_open): Likewise.
1736         * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
1737         (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
1738         (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
1739         * read.c (read_a): Use decimal status flag to allow comma in place of a
1740         decimal point. (read_f): Allow comma as acceptable character in float.
1741         According to decimal flag, substitute a period for a comma.
1742         (read_x): If decimal status flag is comma, disable the read_comma flag,
1743         not allowing comma as a delimiter, an extension otherwise.
1744         * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
1745         unit_async): New enumerators. Add all new I/O parameters.
1746         * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
1747         (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
1748         (fd_sfree): Use new enumerator. (fd_read): Likewise.
1749         (fd_write): Likewise. (fd_close): Fix whitespace.
1750         (fd_open): Use new enumertors. (tempfile, regular_file,
1751         open_external): Fix whitespace. (output_stream, error_stream): Set
1752         method. (stream_offset): Fix whitespace.
1753         * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
1754         option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
1755         based on new decimal_status flag. (data_transfer_init): Initialize new
1756         parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
1757         * format.c: (format_lex): Add format specifiers DP, DC, and D.
1758         (parse_format_list): Parse the new specifiers.
1759         * write.c (write_decimal): Use new sign enumerators to set the sign.
1760         (write_complex): Handle decimal comma and semi-colon separator.
1761         (nml_write_obj): Likewise.
1762         * write_float.def: Revise sign enumerators. (calculate_sign): Use new
1763         sign enumerators. (output_float): Likewise. Use new decimal_status flag
1764         to set the decimal character to a point or a comma.
1765         
1766 2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1767
1768         PR libfortran/32972
1769         PR libfortran/32512
1770         * Makefile.am:  Add new variable, i_spread_c, containing
1771         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
1772         spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
1773         spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
1774         * Makefile.in:  Regenerated.
1775         * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
1776         spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
1777         spread_c4, spread_c8, spread_c10, spread_c16,
1778         spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
1779         spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
1780         spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
1781         spread_scalar_c10 and spread_scalar_c16.
1782         Add macros to isolate both type and size information
1783         from array descriptors with a single mask operation.
1784         * intrinsics/spread_generic.c:  Add calls to specific
1785         spread functions.
1786         * m4/spread.m4:  New file.
1787         * generated/spread_i1.c:  New file.
1788         * generated/spread_i2.c:  New file.
1789         * generated/spread_i4.c:  New file.
1790         * generated/spread_i8.c:  New file.
1791         * generated/spread_i16.c:  New file.
1792         * generated/spread_r4.c:  New file.
1793         * generated/spread_r8.c:  New file.
1794         * generated/spread_r10.c:  New file.
1795         * generated/spread_r16.c:  New file.
1796         * generated/spread_c4.c:  New file.
1797         * generated/spread_c8.c:  New file.
1798         * generated/spread_c10.c:  New file.
1799         * generated/spread_c16.c:  New file.
1800
1801 2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1802
1803         PR libfortran/35699
1804         * io/transfer.c (write_buf):  Don't pad the record, just return if the
1805         data is NULL.  (next_record_w): If there are bytes left in the record
1806         for unformatted direct I/O, pad out the record with zero bytes.
1807
1808 2008-03-28  Tobias Burnus  <burnus@net-b.de>
1809
1810         PR fortran/35721
1811         * intrinsics/associated.c (associated): Ignore different
1812         stride of pointer vs. target if only one element is referred.
1813
1814 2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1815
1816         * io/unix.c (fd_close):  Do not close STDIN.
1817
1818 2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
1819
1820         PR libfortran/32972
1821         * Makefile.am:  Add new variable, i_unpack_c, containing
1822         unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
1823         unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
1824         unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
1825         and unpack_c16.c
1826         Add i_unpack_c to gfor_built_src.
1827         Add rule to generate i_unpack_c from m4/unpack.m4.
1828         * Makefile.in:  Regenerated.
1829         * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
1830         unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
1831         unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
1832         unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
1833         unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
1834         unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
1835         * intrinsics/pack_generic.c (unpack1):  Add calls to specific
1836         unpack1 functions.
1837         (unpack0):  Add calls to specific unpack0 functions.
1838         * m4/unpack.m4:  New file.
1839         * generated/unpack_i1.c:  New file.
1840         * generated/unpack_i2.c:  New file.
1841         * generated/unpack_i4.c:  New file.
1842         * generated/unpack_i8.c:  New file.
1843         * generated/unpack_i16.c:  New file.
1844         * generated/unpack_r4.c:  New file.
1845         * generated/unpack_r8.c:  New file.
1846         * generated/unpack_r10.c:  New file.
1847         * generated/unpack_r16.c:  New file.
1848         * generated/unpack_c4.c:  New file.
1849         * generated/unpack_c8.c:  New file.
1850         * generated/unpack_c10.c:  New file.
1851         * generated/unpack_c16.c:  New file.
1852
1853 2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1854
1855         PR libfortran/35632
1856         * io/transfer.c (data_transfer_init):  Fix whitespace.
1857         (next_record_w): Truncate the file only if the stream
1858         position is short of the file end.
1859
1860 2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1861
1862         * intrinsics/pack_generic.c:  Fix typo.
1863
1864 2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
1865
1866         * gfortran.map: Move erfc_scaled symbols to new symbol node
1867         GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
1868
1869 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1870
1871         PR libfortran/32972
1872         * runtime/in_pack_generic.c (internal_pack):  Call correct
1873         function, pack_i16, for GFC_INTEGER_16.
1874
1875 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1876
1877         PR libfortran/32972
1878         * Makefile.am:  Add new variable, i_pack_c, containing
1879         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
1880         pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
1881         pack_c8.c, pack_c10.c, pack_c16.c.
1882         Add m4/pack.m4 to m4_files.
1883         Add i_pack_c to gfor_built_src.
1884         Add rule to generate i_pack_c from m4/pack.m4.
1885         * Makefile.in:  Regenerated.
1886         * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
1887         pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
1888         pack_c10, pack_c16.
1889         * intrinsics/pack_generic.c:  Add calls to specific
1890         pack functions.
1891         * m4/pack.m4:  New file.
1892         * generated/pack_i1.c:  New file.
1893         * generated/pack_i2.c:  New file.
1894         * generated/pack_i4.c:  New file.
1895         * generated/pack_i8.c:  New file.
1896         * generated/pack_i16.c:  New file.
1897         * generated/pack_r4.c:  New file.
1898         * generated/pack_r8.c:  New file.
1899         * generated/pack_r10.c:  New file.
1900         * generated/pack_r16.c:  New file.
1901         * generated/pack_c4.c:  New file.
1902         * generated/pack_c8.c:  New file.
1903         * generated/pack_c10.c:  New file.
1904         * generated/pack_c16.c:  New file.
1905
1906 2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1907
1908         PR libfortran/35627
1909         * io/list_read.c (free_line): Clear the line buffer enable flag and
1910         reset the index into line_buffer, aka item_count.
1911         (next_char): Cleanup whitespace.
1912         (read_logical): Use unget_char to assure that the first character of the
1913         bad logical is saved in case it is part of an object name. Remove the
1914         clearing of index and flag that is now in free_line.
1915         (read_real): Likewise.
1916
1917 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1918
1919         PR libfortran/32972
1920         * runtime/in_pack_generic.c (internal_pack):  Fix typo in
1921         last commit.
1922
1923 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1924
1925         PR libfortran/32972
1926         * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
1927         in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
1928         (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
1929         in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
1930         in_unpack_r16.c.
1931         * Makefile.in: Regenerate.
1932         * libgfortran.h:  Add prototypes for internal_pack_1,
1933         internal_pack_2, internal_pack_16, internal_pack_r4,
1934         internal_pack_r8, internal_pack_r10, internal_pack_r16,
1935         internal_pack_c10 and internal_pack_c16.  Add prototypes for
1936         internal_unpack_1, internal_unpack_2, internal_unpack_16,
1937         internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
1938         internal_unpack_r16, internal_unpack_c10 and
1939         internal_unpack_c16.
1940         * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
1941         of hardwired sizes.
1942         Add calls to internal_pack_1, internal_pack_2,
1943         internal_pack_16, internal_pack_r4, internal_pack_r8,
1944         internal_pack_r10, internal_pack_r16, internal_pack_c10 and
1945         internal_pack_c16.
1946         * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
1947         instead of hardwired sizes.
1948         Add calls to internal_unpack_1, internal_unpack_2,
1949         internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
1950         internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
1951         and internal_unpack_c16.
1952         * generated/in_pack_r4.c:  New file.
1953         * generated/in_pack_i2.c:  New file.
1954         * generated/in_unpack_i1.c:  New file.
1955         * generated/in_pack_r10.c:  New file.
1956         * generated/in_unpack_r4.c:  New file.
1957         * generated/in_unpack_i2.c:  New file.
1958         * generated/in_unpack_r16.c:  New file.
1959         * generated/in_pack_r8.c:  New file.
1960         * generated/in_unpack_r10.c:  New file.
1961         * generated/in_unpack_r8.c:  New file.
1962         * generated/in_pack_r16.c:  New file.
1963         * generated/in_pack_i1.c:  New file.
1964
1965 2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1966
1967         PR libfortran/35617
1968         * io/list_read.c (eat_separator): If next character after eatline is '!'
1969         then eatline again. 
1970
1971 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1972
1973         * aclocal.m4: Regenerate.
1974         * configure: Likewise.
1975         * Makefile.in: Likewise.
1976
1977 2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1978
1979         PR libfortran/35524
1980         * intrinsics/erfc_scaled_inc.c: Only define the long double
1981         variant of erfc_scaled if expl is available.
1982
1983 2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1984
1985         PR libfortran/32812
1986         * intrinsics/random.c (scramble_seed, unscramble_seed): New
1987         functions.
1988         (random_seed_i4): Scramble the seed the user gives us before
1989         storing it, and unscramble it when we return it back later.
1990
1991 2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
1992
1993         PR libfortran/35293
1994         * io/unix.c (fd_truncate): Fold s->special_file case into
1995         success case of ftruncate/chsize call instead of the failure case.
1996         Make failure case actually return failure.  Properly update stream
1997         pointers on failure.  Call runtime_error for targets without
1998         neither ftruncate nor chsize where such a call would be needed.
1999
2000 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2001
2002         PR fortran/33197
2003         * intrinsics/erfc_scaled_inc.c: New file.
2004         * intrinsics/erfc_scaled.c: New file.
2005         * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
2006         * Makefile.am: Add intrinsics/erfc_scaled.c.
2007         * config.h.in: Regenerate.
2008         * configure: Regenerate.
2009         * Makefile.in: Regenerate.
2010
2011 2008-03-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2012
2013         PR libfortran/35355
2014         * intrinsics/time_1.h (__time_1): Fix calculation of user_usec
2015         for mingw.
2016
2017 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
2018
2019         PR libfortran/35063
2020         * io/unit.c (destroy_unit_mutex): Call __gthread_mutex_destroy
2021         instead of macro kludge.
2022         
2023 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
2024
2025         PR fortran/29549
2026         * Makefile.am: Add -fcx-fortran-rules to AM_CFLAGS for all of
2027         libgfortran.
2028         * Makefile.in: Regenerated.
2029
2030 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2031
2032         * m4/ifunction_logical.m4: Add casts to get rid of warnings.
2033         * generated/all_l1.c: Regenerate.
2034         * generated/all_l2.c: Regenerate.
2035         * generated/all_l4.c: Regenerate.
2036         * generated/all_l8.c: Regenerate.
2037         * generated/all_l16.c: Regenerate.
2038         * generated/any_l1.c: Regenerate.
2039         * generated/any_l2.c: Regenerate.
2040         * generated/any_l4.c: Regenerate.
2041         * generated/any_l8.c: Regenerate.
2042         * generated/any_l16.c: Regenerate.
2043         * generated/count_1_l.c: Regenerate.
2044         * generated/count_2_l.c: Regenerate.
2045         * generated/count_4_l.c: Regenerate.
2046         * generated/count_8_l.c: Regenerate.
2047         * generated/count_16_l.c: Regenerate.
2048
2049 2008-02-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2050
2051         PR libfortran/32841
2052         * acinclude.m4: Don't use HAVE_MATH_H.
2053         * configure: Regenerate.
2054
2055 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2056
2057         PR libfortran/35132
2058         * io/transfer.c (next_record_w): Truncate after the last record for
2059         STREAM I/O.
2060
2061         PR libfortran/34954
2062         * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
2063
2064         PR libfortran/34974
2065         * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
2066         is less than zero. (next_record_w): Use sseek to position the file to
2067         the max position reached.
2068
2069 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2070
2071         PR libfortran/35036
2072         * write_float.def (output_float):  Add error checks for zero digits
2073         after decimal point in E and D format specifiers.
2074         
2075 2008-02-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2076
2077         PR libfortran/35063
2078         * io/unit.c (destroy_unit_mutex): New function that uses
2079         __gthread_mutex_destroy_function or pthread_mutex_destroy after
2080         unlocking and before free_mem for final closure of I/O unit.
2081         (delete_root): Use new function.
2082         (free_internal_unit): Likewise.
2083         (close_unit_1): Likewise.
2084
2085 2008-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2086
2087         PR libfortran/35001
2088         * m4/shape.m4:  Return 0 for extents <= 0.
2089         * generated/shape_i4.c:  Regenerated.
2090         * generated/shape_i8.c:  Regenerated.
2091         * generated/shape_i16.c:  Regenerated.
2092
2093 2008-01-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2094
2095         PR libfortran/34980
2096         * m4/shape.m4:  If return array is empty, return early.
2097         * generated/shape_i4.c:  Regenerated.
2098         * generated/shape_i8.c:  Regenerated.
2099         * generated/shape_i16.c:  Regenerated.
2100
2101 2008-01-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
2102
2103         PR libfofortran/34887
2104         * io/transfer.c (next_record_w): Always move to the farthest
2105         position when completing the record (also when we are
2106         processing a slash edit descriptor).
2107
2108 2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2109
2110         PR libfortran/34876
2111         * io/transfer.c (write_buf): Handle case of zero sized array.
2112         (transfer_array): Set data pointer to NULL and size to zero.  Then
2113         make a data transfer and return.
2114         
2115 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2116
2117         * configure: Regenerate.
2118
2119 2008-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2120
2121         PR libfortran/34795
2122         * io/inquire.c (inquire_via_unit): If a unit is opened, return values
2123         according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
2124         (inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
2125         FORAMATTED, and UNFORMATTED inquiries.
2126         * io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
2127         for files that are not opened. (inquire_direct): Same.
2128         (inquire_formatted): Same.
2129         
2130 2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2131
2132         PR libfortran/34782
2133         * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
2134         of the current max_pos or the newly calculated position.
2135
2136 2008-01-18  Tobias Burnus  <burnus@net-b.de>
2137
2138         * io/write.c (write_real): Increase default precision
2139         for REAL(16) by one.
2140
2141 2008-01-16  Steven Bosscher  <steven@gcc.gnu.org>
2142
2143         PR libfortran/34669
2144         * mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
2145         to avoid piping the -fdump-parse-tree output to the assembler
2146         when configuring with -pipe.
2147         * mk-sik-inc.sh: Likewise.
2148         * mk-srk-inc.sh: Likewise.
2149
2150 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
2151
2152         PR libfortran/34671
2153         * gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
2154         _gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
2155         _gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
2156         _gfortran_count_8_l Removed _gfortran_count_16_l16,
2157         _gfortran_count_16_l4, _gfortran_count_16_l8,
2158         _gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
2159         _gfortran_count_8_l16, _gfortran_count_8_l4 and
2160         _gfortran_count_8_l8.
2161         * Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
2162         i_any_c.  Added generated/all_l1. and generated/all_l2.c to
2163         i_all_c.  Removed generated/count_4_l4.c, generated/count_8_l4.c,
2164         generated/count_16_l4.c, generated/count_4_l8.c,
2165         generated/count_8_l8.c, generated/count_16_l8.c,
2166         generated/count_4_l16.c, generated/count_8_l16.c, and
2167         generated/count_16_l16.c from i_count_c.  Added count_1_l.c,
2168         count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
2169         i_count_c.  I_M4_DEPS2 depends on ifunction_logical.m4, for
2170         any of the files generated from all.m4, any.m4 and count.m4.
2171         * Makefile.in:  Regenerated.
2172         * m4/ifunction_logical.m4:  New file.  Use
2173         GFC_LOGICAL_1 pointer for access to source arrays.
2174         * m4/any.m4:  Include ifunction_logical.m4 instead of
2175         ifunction.m4.  Don't check atype_name.
2176         * m4/all.m4:  Likewise.
2177         * m4/count.m4:  Likewise.
2178         * generated/any_l1.c:  New file.
2179         * generated/any_l2.c:  New file.
2180         * generated/all_l1.c:  New file.
2181         * generated/count_1_l.c:  New file.
2182         * generated/count_2_l.c:  New file.
2183         * generated/count_4_l.c:  New file.
2184         * generated/count_8_l.c:  New file.
2185         * generated/count_16_l.c:  New file.
2186         * generated/any_l4.c:  Regenerated.
2187         * generated/any_l8.c:  Regenerated.
2188         * generated/any_l16.c:  Regenerated.
2189         * generated/all_l4.c: Regenerated.
2190         * generated/all_l8.c: Regenerated.
2191         * generated/all_l16.c: Regenerated.
2192         * generated/count_4_l4.c:  Removed.
2193         * generated/count_4_l8.c:  Removed.
2194         * generated/count_4_l16.c:  Removed.
2195         * generated/count_8_l4.c:  Removed.
2196         * generated/count_8_l8.c:  Removed.
2197         * generated/count_8_l16.c:  Removed.
2198         * generated/count_16_l4.c:  Removed.
2199         * generated/count_16_l8.c:  Removed.
2200         * generated/count_16_l16.c:  Removed.
2201
2202 2008-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2203
2204         PR libfortran/34746
2205         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Use %ld
2206         in printf format for all bounds checking; cast all
2207         integer-like arguments to runtime_error() to long int.
2208         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2209         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2210         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
2211         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2212         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2213         * generated/all_l16.c: Regenerated.
2214         * generated/all_l4.c: Regenerated.
2215         * generated/all_l8.c: Regenerated.
2216         * generated/any_l16.c: Regenerated.
2217         * generated/any_l4.c: Regenerated.
2218         * generated/any_l8.c: Regenerated.
2219         * generated/count_16_l16.c: Regenerated.
2220         * generated/count_16_l4.c: Regenerated.
2221         * generated/count_16_l8.c: Regenerated.
2222         * generated/count_4_l16.c: Regenerated.
2223         * generated/count_4_l4.c: Regenerated.
2224         * generated/count_4_l8.c: Regenerated.
2225         * generated/count_8_l16.c: Regenerated.
2226         * generated/count_8_l4.c: Regenerated.
2227         * generated/count_8_l8.c: Regenerated.
2228         * generated/maxloc0_16_i1.c: Regenerated.
2229         * generated/maxloc0_16_i16.c: Regenerated.
2230         * generated/maxloc0_16_i2.c: Regenerated.
2231         * generated/maxloc0_16_i4.c: Regenerated.
2232         * generated/maxloc0_16_i8.c: Regenerated.
2233         * generated/maxloc0_16_r10.c: Regenerated.
2234         * generated/maxloc0_16_r16.c: Regenerated.
2235         * generated/maxloc0_16_r4.c: Regenerated.
2236         * generated/maxloc0_16_r8.c: Regenerated.
2237         * generated/maxloc0_4_i1.c: Regenerated.
2238         * generated/maxloc0_4_i16.c: Regenerated.
2239         * generated/maxloc0_4_i2.c: Regenerated.
2240         * generated/maxloc0_4_i4.c: Regenerated.
2241         * generated/maxloc0_4_i8.c: Regenerated.
2242         * generated/maxloc0_4_r10.c: Regenerated.
2243         * generated/maxloc0_4_r16.c: Regenerated.
2244         * generated/maxloc0_4_r4.c: Regenerated.
2245         * generated/maxloc0_4_r8.c: Regenerated.
2246         * generated/maxloc0_8_i1.c: Regenerated.
2247         * generated/maxloc0_8_i16.c: Regenerated.
2248         * generated/maxloc0_8_i2.c: Regenerated.
2249         * generated/maxloc0_8_i4.c: Regenerated.
2250         * generated/maxloc0_8_i8.c: Regenerated.
2251         * generated/maxloc0_8_r10.c: Regenerated.
2252         * generated/maxloc0_8_r16.c: Regenerated.
2253         * generated/maxloc0_8_r4.c: Regenerated.
2254         * generated/maxloc0_8_r8.c: Regenerated.
2255         * generated/maxloc1_16_i1.c: Regenerated.
2256         * generated/maxloc1_16_i16.c: Regenerated.
2257         * generated/maxloc1_16_i2.c: Regenerated.
2258         * generated/maxloc1_16_i4.c: Regenerated.
2259         * generated/maxloc1_16_i8.c: Regenerated.
2260         * generated/maxloc1_16_r10.c: Regenerated.
2261         * generated/maxloc1_16_r16.c: Regenerated.
2262         * generated/maxloc1_16_r4.c: Regenerated.
2263         * generated/maxloc1_16_r8.c: Regenerated.
2264         * generated/maxloc1_4_i1.c: Regenerated.
2265         * generated/maxloc1_4_i16.c: Regenerated.
2266         * generated/maxloc1_4_i2.c: Regenerated.
2267         * generated/maxloc1_4_i4.c: Regenerated.
2268         * generated/maxloc1_4_i8.c: Regenerated.
2269         * generated/maxloc1_4_r10.c: Regenerated.
2270         * generated/maxloc1_4_r16.c: Regenerated.
2271         * generated/maxloc1_4_r4.c: Regenerated.
2272         * generated/maxloc1_4_r8.c: Regenerated.
2273         * generated/maxloc1_8_i1.c: Regenerated.
2274         * generated/maxloc1_8_i16.c: Regenerated.
2275         * generated/maxloc1_8_i2.c: Regenerated.
2276         * generated/maxloc1_8_i4.c: Regenerated.
2277         * generated/maxloc1_8_i8.c: Regenerated.
2278         * generated/maxloc1_8_r10.c: Regenerated.
2279         * generated/maxloc1_8_r16.c: Regenerated.
2280         * generated/maxloc1_8_r4.c: Regenerated.
2281         * generated/maxloc1_8_r8.c: Regenerated.
2282         * generated/maxval_i1.c: Regenerated.
2283         * generated/maxval_i16.c: Regenerated.
2284         * generated/maxval_i2.c: Regenerated.
2285         * generated/maxval_i4.c: Regenerated.
2286         * generated/maxval_i8.c: Regenerated.
2287         * generated/maxval_r10.c: Regenerated.
2288         * generated/maxval_r16.c: Regenerated.
2289         * generated/maxval_r4.c: Regenerated.
2290         * generated/maxval_r8.c: Regenerated.
2291         * generated/minloc0_16_i1.c: Regenerated.
2292         * generated/minloc0_16_i16.c: Regenerated.
2293         * generated/minloc0_16_i2.c: Regenerated.
2294         * generated/minloc0_16_i4.c: Regenerated.
2295         * generated/minloc0_16_i8.c: Regenerated.
2296         * generated/minloc0_16_r10.c: Regenerated.
2297         * generated/minloc0_16_r16.c: Regenerated.
2298         * generated/minloc0_16_r4.c: Regenerated.
2299         * generated/minloc0_16_r8.c: Regenerated.
2300         * generated/minloc0_4_i1.c: Regenerated.
2301         * generated/minloc0_4_i16.c: Regenerated.
2302         * generated/minloc0_4_i2.c: Regenerated.
2303         * generated/minloc0_4_i4.c: Regenerated.
2304         * generated/minloc0_4_i8.c: Regenerated.
2305         * generated/minloc0_4_r10.c: Regenerated.
2306         * generated/minloc0_4_r16.c: Regenerated.
2307         * generated/minloc0_4_r4.c: Regenerated.
2308         * generated/minloc0_4_r8.c: Regenerated.
2309         * generated/minloc0_8_i1.c: Regenerated.
2310         * generated/minloc0_8_i16.c: Regenerated.
2311         * generated/minloc0_8_i2.c: Regenerated.
2312         * generated/minloc0_8_i4.c: Regenerated.
2313         * generated/minloc0_8_i8.c: Regenerated.
2314         * generated/minloc0_8_r10.c: Regenerated.
2315         * generated/minloc0_8_r16.c: Regenerated.
2316         * generated/minloc0_8_r4.c: Regenerated.
2317         * generated/minloc0_8_r8.c: Regenerated.
2318         * generated/minloc1_16_i1.c: Regenerated.
2319         * generated/minloc1_16_i16.c: Regenerated.
2320         * generated/minloc1_16_i2.c: Regenerated.
2321         * generated/minloc1_16_i4.c: Regenerated.
2322         * generated/minloc1_16_i8.c: Regenerated.
2323         * generated/minloc1_16_r10.c: Regenerated.
2324         * generated/minloc1_16_r16.c: Regenerated.
2325         * generated/minloc1_16_r4.c: Regenerated.
2326         * generated/minloc1_16_r8.c: Regenerated.
2327         * generated/minloc1_4_i1.c: Regenerated.
2328         * generated/minloc1_4_i16.c: Regenerated.
2329         * generated/minloc1_4_i2.c: Regenerated.
2330         * generated/minloc1_4_i4.c: Regenerated.
2331         * generated/minloc1_4_i8.c: Regenerated.
2332         * generated/minloc1_4_r10.c: Regenerated.
2333         * generated/minloc1_4_r16.c: Regenerated.
2334         * generated/minloc1_4_r4.c: Regenerated.
2335         * generated/minloc1_4_r8.c: Regenerated.
2336         * generated/minloc1_8_i1.c: Regenerated.
2337         * generated/minloc1_8_i16.c: Regenerated.
2338         * generated/minloc1_8_i2.c: Regenerated.
2339         * generated/minloc1_8_i4.c: Regenerated.
2340         * generated/minloc1_8_i8.c: Regenerated.
2341         * generated/minloc1_8_r10.c: Regenerated.
2342         * generated/minloc1_8_r16.c: Regenerated.
2343         * generated/minloc1_8_r4.c: Regenerated.
2344         * generated/minloc1_8_r8.c: Regenerated.
2345         * generated/minval_i1.c: Regenerated.
2346         * generated/minval_i16.c: Regenerated.
2347         * generated/minval_i2.c: Regenerated.
2348         * generated/minval_i4.c: Regenerated.
2349         * generated/minval_i8.c: Regenerated.
2350         * generated/minval_r10.c: Regenerated.
2351         * generated/minval_r16.c: Regenerated.
2352         * generated/minval_r4.c: Regenerated.
2353         * generated/minval_r8.c: Regenerated.
2354         * generated/product_c10.c: Regenerated.
2355         * generated/product_c16.c: Regenerated.
2356         * generated/product_c4.c: Regenerated.
2357         * generated/product_c8.c: Regenerated.
2358         * generated/product_i1.c: Regenerated.
2359         * generated/product_i16.c: Regenerated.
2360         * generated/product_i2.c: Regenerated.
2361         * generated/product_i4.c: Regenerated.
2362         * generated/product_i8.c: Regenerated.
2363         * generated/product_r10.c: Regenerated.
2364         * generated/product_r16.c: Regenerated.
2365         * generated/product_r4.c: Regenerated.
2366         * generated/product_r8.c: Regenerated.
2367         * generated/sum_c10.c: Regenerated.
2368         * generated/sum_c16.c: Regenerated.
2369         * generated/sum_c4.c: Regenerated.
2370         * generated/sum_c8.c: Regenerated.
2371         * generated/sum_i1.c: Regenerated.
2372         * generated/sum_i16.c: Regenerated.
2373         * generated/sum_i2.c: Regenerated.
2374         * generated/sum_i4.c: Regenerated.
2375         * generated/sum_i8.c: Regenerated.
2376         * generated/sum_r10.c: Regenerated.
2377         * generated/sum_r16.c: Regenerated.
2378         * generated/sum_r4.c: Regenerated.
2379         * generated/sum_r8.c: Regenerated.
2380
2381 2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
2382
2383         PR libfortran/34670
2384         * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
2385         (u_name):  New macro for the upper case name of the intrinsic.
2386         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
2387         bounds checking and rank check, depending on
2388         compile_options.bounds_check.
2389         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2390         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2391         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
2392         bounds checking and rank check, depending on
2393         compile_options.bounds_check.
2394         (`m'name`'rtype_qual`_'atype_code):  Likewise.
2395         (`s'name`'rtype_qual`_'atype_code):  Likewise.
2396         * generated/all_l16.c: Regenerated.
2397         * generated/all_l4.c: Regenerated.
2398         * generated/all_l8.c: Regenerated.
2399         * generated/any_l16.c: Regenerated.
2400         * generated/any_l4.c: Regenerated.
2401         * generated/any_l8.c: Regenerated.
2402         * generated/count_16_l16.c: Regenerated.
2403         * generated/count_16_l4.c: Regenerated.
2404         * generated/count_16_l8.c: Regenerated.
2405         * generated/count_4_l16.c: Regenerated.
2406         * generated/count_4_l4.c: Regenerated.
2407         * generated/count_4_l8.c: Regenerated.
2408         * generated/count_8_l16.c: Regenerated.
2409         * generated/count_8_l4.c: Regenerated.
2410         * generated/count_8_l8.c: Regenerated.
2411         * generated/maxloc0_16_i1.c: Regenerated.
2412         * generated/maxloc0_16_i16.c: Regenerated.
2413         * generated/maxloc0_16_i2.c: Regenerated.
2414         * generated/maxloc0_16_i4.c: Regenerated.
2415         * generated/maxloc0_16_i8.c: Regenerated.
2416         * generated/maxloc0_16_r10.c: Regenerated.
2417         * generated/maxloc0_16_r16.c: Regenerated.
2418         * generated/maxloc0_16_r4.c: Regenerated.
2419         * generated/maxloc0_16_r8.c: Regenerated.
2420         * generated/maxloc0_4_i1.c: Regenerated.
2421         * generated/maxloc0_4_i16.c: Regenerated.
2422         * generated/maxloc0_4_i2.c: Regenerated.
2423         * generated/maxloc0_4_i4.c: Regenerated.
2424         * generated/maxloc0_4_i8.c: Regenerated.
2425         * generated/maxloc0_4_r10.c: Regenerated.
2426         * generated/maxloc0_4_r16.c: Regenerated.
2427         * generated/maxloc0_4_r4.c: Regenerated.
2428         * generated/maxloc0_4_r8.c: Regenerated.
2429         * generated/maxloc0_8_i1.c: Regenerated.
2430         * generated/maxloc0_8_i16.c: Regenerated.
2431         * generated/maxloc0_8_i2.c: Regenerated.
2432         * generated/maxloc0_8_i4.c: Regenerated.
2433         * generated/maxloc0_8_i8.c: Regenerated.
2434         * generated/maxloc0_8_r10.c: Regenerated.
2435         * generated/maxloc0_8_r16.c: Regenerated.
2436         * generated/maxloc0_8_r4.c: Regenerated.
2437         * generated/maxloc0_8_r8.c: Regenerated.
2438         * generated/maxloc1_16_i1.c: Regenerated.
2439         * generated/maxloc1_16_i16.c: Regenerated.
2440         * generated/maxloc1_16_i2.c: Regenerated.
2441         * generated/maxloc1_16_i4.c: Regenerated.
2442         * generated/maxloc1_16_i8.c: Regenerated.
2443         * generated/maxloc1_16_r10.c: Regenerated.
2444         * generated/maxloc1_16_r16.c: Regenerated.
2445         * generated/maxloc1_16_r4.c: Regenerated.
2446         * generated/maxloc1_16_r8.c: Regenerated.
2447         * generated/maxloc1_4_i1.c: Regenerated.
2448         * generated/maxloc1_4_i16.c: Regenerated.
2449         * generated/maxloc1_4_i2.c: Regenerated.
2450         * generated/maxloc1_4_i4.c: Regenerated.
2451         * generated/maxloc1_4_i8.c: Regenerated.
2452         * generated/maxloc1_4_r10.c: Regenerated.
2453         * generated/maxloc1_4_r16.c: Regenerated.
2454         * generated/maxloc1_4_r4.c: Regenerated.
2455         * generated/maxloc1_4_r8.c: Regenerated.
2456         * generated/maxloc1_8_i1.c: Regenerated.
2457         * generated/maxloc1_8_i16.c: Regenerated.
2458         * generated/maxloc1_8_i2.c: Regenerated.
2459         * generated/maxloc1_8_i4.c: Regenerated.
2460         * generated/maxloc1_8_i8.c: Regenerated.
2461         * generated/maxloc1_8_r10.c: Regenerated.
2462         * generated/maxloc1_8_r16.c: Regenerated.
2463         * generated/maxloc1_8_r4.c: Regenerated.
2464         * generated/maxloc1_8_r8.c: Regenerated.
2465         * generated/maxval_i1.c: Regenerated.
2466         * generated/maxval_i16.c: Regenerated.
2467         * generated/maxval_i2.c: Regenerated.
2468         * generated/maxval_i4.c: Regenerated.
2469         * generated/maxval_i8.c: Regenerated.
2470         * generated/maxval_r10.c: Regenerated.
2471         * generated/maxval_r16.c: Regenerated.
2472         * generated/maxval_r4.c: Regenerated.
2473         * generated/maxval_r8.c: Regenerated.
2474         * generated/minloc0_16_i1.c: Regenerated.
2475         * generated/minloc0_16_i16.c: Regenerated.
2476         * generated/minloc0_16_i2.c: Regenerated.
2477         * generated/minloc0_16_i4.c: Regenerated.
2478         * generated/minloc0_16_i8.c: Regenerated.
2479         * generated/minloc0_16_r10.c: Regenerated.
2480         * generated/minloc0_16_r16.c: Regenerated.
2481         * generated/minloc0_16_r4.c: Regenerated.
2482         * generated/minloc0_16_r8.c: Regenerated.
2483         * generated/minloc0_4_i1.c: Regenerated.
2484         * generated/minloc0_4_i16.c: Regenerated.
2485         * generated/minloc0_4_i2.c: Regenerated.
2486         * generated/minloc0_4_i4.c: Regenerated.
2487         * generated/minloc0_4_i8.c: Regenerated.
2488         * generated/minloc0_4_r10.c: Regenerated.
2489         * generated/minloc0_4_r16.c: Regenerated.
2490         * generated/minloc0_4_r4.c: Regenerated.
2491         * generated/minloc0_4_r8.c: Regenerated.
2492         * generated/minloc0_8_i1.c: Regenerated.
2493         * generated/minloc0_8_i16.c: Regenerated.
2494         * generated/minloc0_8_i2.c: Regenerated.
2495         * generated/minloc0_8_i4.c: Regenerated.
2496         * generated/minloc0_8_i8.c: Regenerated.
2497         * generated/minloc0_8_r10.c: Regenerated.
2498         * generated/minloc0_8_r16.c: Regenerated.
2499         * generated/minloc0_8_r4.c: Regenerated.
2500         * generated/minloc0_8_r8.c: Regenerated.
2501         * generated/minloc1_16_i1.c: Regenerated.
2502         * generated/minloc1_16_i16.c: Regenerated.
2503         * generated/minloc1_16_i2.c: Regenerated.
2504         * generated/minloc1_16_i4.c: Regenerated.
2505         * generated/minloc1_16_i8.c: Regenerated.
2506         * generated/minloc1_16_r10.c: Regenerated.
2507         * generated/minloc1_16_r16.c: Regenerated.
2508         * generated/minloc1_16_r4.c: Regenerated.
2509         * generated/minloc1_16_r8.c: Regenerated.
2510         * generated/minloc1_4_i1.c: Regenerated.
2511         * generated/minloc1_4_i16.c: Regenerated.
2512         * generated/minloc1_4_i2.c: Regenerated.
2513         * generated/minloc1_4_i4.c: Regenerated.
2514         * generated/minloc1_4_i8.c: Regenerated.
2515         * generated/minloc1_4_r10.c: Regenerated.
2516         * generated/minloc1_4_r16.c: Regenerated.
2517         * generated/minloc1_4_r4.c: Regenerated.
2518         * generated/minloc1_4_r8.c: Regenerated.
2519         * generated/minloc1_8_i1.c: Regenerated.
2520         * generated/minloc1_8_i16.c: Regenerated.
2521         * generated/minloc1_8_i2.c: Regenerated.
2522         * generated/minloc1_8_i4.c: Regenerated.
2523         * generated/minloc1_8_i8.c: Regenerated.
2524         * generated/minloc1_8_r10.c: Regenerated.
2525         * generated/minloc1_8_r16.c: Regenerated.
2526         * generated/minloc1_8_r4.c: Regenerated.
2527         * generated/minloc1_8_r8.c: Regenerated.
2528         * generated/minval_i1.c: Regenerated.
2529         * generated/minval_i16.c: Regenerated.
2530         * generated/minval_i2.c: Regenerated.
2531         * generated/minval_i4.c: Regenerated.
2532         * generated/minval_i8.c: Regenerated.
2533         * generated/minval_r10.c: Regenerated.
2534         * generated/minval_r16.c: Regenerated.
2535         * generated/minval_r4.c: Regenerated.
2536         * generated/minval_r8.c: Regenerated.
2537         * generated/product_c10.c: Regenerated.
2538         * generated/product_c16.c: Regenerated.
2539         * generated/product_c4.c: Regenerated.
2540         * generated/product_c8.c: Regenerated.
2541         * generated/product_i1.c: Regenerated.
2542         * generated/product_i16.c: Regenerated.
2543         * generated/product_i2.c: Regenerated.
2544         * generated/product_i4.c: Regenerated.
2545         * generated/product_i8.c: Regenerated.
2546         * generated/product_r10.c: Regenerated.
2547         * generated/product_r16.c: Regenerated.
2548         * generated/product_r4.c: Regenerated.
2549         * generated/product_r8.c: Regenerated.
2550         * generated/sum_c10.c: Regenerated.
2551         * generated/sum_c16.c: Regenerated.
2552         * generated/sum_c4.c: Regenerated.
2553         * generated/sum_c8.c: Regenerated.
2554         * generated/sum_i1.c: Regenerated.
2555         * generated/sum_i16.c: Regenerated.
2556         * generated/sum_i2.c: Regenerated.
2557         * generated/sum_i4.c: Regenerated.
2558         * generated/sum_i8.c: Regenerated.
2559         * generated/sum_r10.c: Regenerated.
2560         * generated/sum_r16.c: Regenerated.
2561         * generated/sum_r4.c: Regenerated.
2562         * generated/sum_r8.c: Regenerated.
2563
2564 2008-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2565
2566         PR libfortran/34676
2567         * io/list_read.c (next_char): Only save the EOF condition for later if
2568         advance="no".
2569
2570 2008-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
2571
2572         PR libfortran/34565
2573         * io/io.h:  Adjust protoypes for open_internal(),
2574         next_array_record() and init_loop_spec().
2575         * io/list_read.c (next_char):  Use argument "finished"
2576         of next_array_record to check for end on internal file.
2577         * io/unit.c:  Calculate the offset for an array
2578         internal file and supply this informatin to open_internal().
2579         * io/unix.c (open_internal):  Set the offset for the internal
2580         file on open.
2581         * io/transfer.c (init_loop_spec):  Calculate the starting
2582         record in case of negative strides.  Return size of 0 for
2583         an empty array.
2584         (next_array_record):  Use an extra flag to signal that the
2585         array is finished.
2586         (next_record_r):  Use the new flag to next_array_record().
2587         (next_record_w):  Likewise.