OSDN Git Service

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