OSDN Git Service

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