OSDN Git Service

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