OSDN Git Service

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