OSDN Git Service

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