OSDN Git Service

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