OSDN Git Service

2008-05-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
1 2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2
3         PR libfortran/36202
4         * io/list_read (eat_separator): Handle the CR-LF case correctly.
5
6 2008-05-09  Julian Brown  <julian@codesourcery.com>
7
8         * Makefile.am (LTLDFLAGS): New.
9         (libgfortran_la_LDFLAGS): Use above.
10         * Makefile.in: Regenerate.
11
12 2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
13
14         PR libfortran/36131
15         * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
16         (next_record_w): Likewise.
17
18 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
19
20         PR libfortran/35995
21         * m4/ifunction_logical.m4:  If the extent of "array"
22         is less than zero, set it to zero.  Use an explicit
23         flag for breaking out of the main loop to avoid, because
24         the data pointer for "array" may be NULL for an empty
25         array.
26         * m4/ifunction.m4:  Likewise.
27         * generated/all_l1.c: Regenerated.
28         * generated/all_l16.c: Regenerated.
29         * generated/all_l2.c: Regenerated.
30         * generated/all_l4.c: Regenerated.
31         * generated/all_l8.c: Regenerated.
32         * generated/any_l1.c: Regenerated.
33         * generated/any_l16.c: Regenerated.
34         * generated/any_l2.c: Regenerated.
35         * generated/any_l4.c: Regenerated.
36         * generated/any_l8.c: Regenerated.
37         * generated/count_16_l.c: Regenerated.
38         * generated/count_1_l.c: Regenerated.
39         * generated/count_2_l.c: Regenerated.
40         * generated/count_4_l.c: Regenerated.
41         * generated/count_8_l.c: Regenerated.
42         * generated/maxloc1_16_i1.c: Regenerated.
43         * generated/maxloc1_16_i16.c: Regenerated.
44         * generated/maxloc1_16_i2.c: Regenerated.
45         * generated/maxloc1_16_i4.c: Regenerated.
46         * generated/maxloc1_16_i8.c: Regenerated.
47         * generated/maxloc1_16_r10.c: Regenerated.
48         * generated/maxloc1_16_r16.c: Regenerated.
49         * generated/maxloc1_16_r4.c: Regenerated.
50         * generated/maxloc1_16_r8.c: Regenerated.
51         * generated/maxloc1_4_i1.c: Regenerated.
52         * generated/maxloc1_4_i16.c: Regenerated.
53         * generated/maxloc1_4_i2.c: Regenerated.
54         * generated/maxloc1_4_i4.c: Regenerated.
55         * generated/maxloc1_4_i8.c: Regenerated.
56         * generated/maxloc1_4_r10.c: Regenerated.
57         * generated/maxloc1_4_r16.c: Regenerated.
58         * generated/maxloc1_4_r4.c: Regenerated.
59         * generated/maxloc1_4_r8.c: Regenerated.
60         * generated/maxloc1_8_i1.c: Regenerated.
61         * generated/maxloc1_8_i16.c: Regenerated.
62         * generated/maxloc1_8_i2.c: Regenerated.
63         * generated/maxloc1_8_i4.c: Regenerated.
64         * generated/maxloc1_8_i8.c: Regenerated.
65         * generated/maxloc1_8_r10.c: Regenerated.
66         * generated/maxloc1_8_r16.c: Regenerated.
67         * generated/maxloc1_8_r4.c: Regenerated.
68         * generated/maxloc1_8_r8.c: Regenerated.
69         * generated/maxval_i1.c: Regenerated.
70         * generated/maxval_i16.c: Regenerated.
71         * generated/maxval_i2.c: Regenerated.
72         * generated/maxval_i4.c: Regenerated.
73         * generated/maxval_i8.c: Regenerated.
74         * generated/maxval_r10.c: Regenerated.
75         * generated/maxval_r16.c: Regenerated.
76         * generated/maxval_r4.c: Regenerated.
77         * generated/maxval_r8.c: Regenerated.
78         * generated/minloc1_16_i1.c: Regenerated.
79         * generated/minloc1_16_i16.c: Regenerated.
80         * generated/minloc1_16_i2.c: Regenerated.
81         * generated/minloc1_16_i4.c: Regenerated.
82         * generated/minloc1_16_i8.c: Regenerated.
83         * generated/minloc1_16_r10.c: Regenerated.
84         * generated/minloc1_16_r16.c: Regenerated.
85         * generated/minloc1_16_r4.c: Regenerated.
86         * generated/minloc1_16_r8.c: Regenerated.
87         * generated/minloc1_4_i1.c: Regenerated.
88         * generated/minloc1_4_i16.c: Regenerated.
89         * generated/minloc1_4_i2.c: Regenerated.
90         * generated/minloc1_4_i4.c: Regenerated.
91         * generated/minloc1_4_i8.c: Regenerated.
92         * generated/minloc1_4_r10.c: Regenerated.
93         * generated/minloc1_4_r16.c: Regenerated.
94         * generated/minloc1_4_r4.c: Regenerated.
95         * generated/minloc1_4_r8.c: Regenerated.
96         * generated/minloc1_8_i1.c: Regenerated.
97         * generated/minloc1_8_i16.c: Regenerated.
98         * generated/minloc1_8_i2.c: Regenerated.
99         * generated/minloc1_8_i4.c: Regenerated.
100         * generated/minloc1_8_i8.c: Regenerated.
101         * generated/minloc1_8_r10.c: Regenerated.
102         * generated/minloc1_8_r16.c: Regenerated.
103         * generated/minloc1_8_r4.c: Regenerated.
104         * generated/minloc1_8_r8.c: Regenerated.
105         * generated/minval_i1.c: Regenerated.
106         * generated/minval_i16.c: Regenerated.
107         * generated/minval_i2.c: Regenerated.
108         * generated/minval_i4.c: Regenerated.
109         * generated/minval_i8.c: Regenerated.
110         * generated/minval_r10.c: Regenerated.
111         * generated/minval_r16.c: Regenerated.
112         * generated/minval_r4.c: Regenerated.
113         * generated/minval_r8.c: Regenerated.
114         * generated/product_c10.c: Regenerated.
115         * generated/product_c16.c: Regenerated.
116         * generated/product_c4.c: Regenerated.
117         * generated/product_c8.c: Regenerated.
118         * generated/product_i1.c: Regenerated.
119         * generated/product_i16.c: Regenerated.
120         * generated/product_i2.c: Regenerated.
121         * generated/product_i4.c: Regenerated.
122         * generated/product_i8.c: Regenerated.
123         * generated/product_r10.c: Regenerated.
124         * generated/product_r16.c: Regenerated.
125         * generated/product_r4.c: Regenerated.
126         * generated/product_r8.c: Regenerated.
127         * generated/sum_c10.c: Regenerated.
128         * generated/sum_c16.c: Regenerated.
129         * generated/sum_c4.c: Regenerated.
130         * generated/sum_c8.c: Regenerated.
131         * generated/sum_i1.c: Regenerated.
132         * generated/sum_i16.c: Regenerated.
133         * generated/sum_i2.c: Regenerated.
134         * generated/sum_i4.c: Regenerated.
135         * generated/sum_i8.c: Regenerated.
136         * generated/sum_r10.c: Regenerated.
137         * generated/sum_r16.c: Regenerated.
138         * generated/sum_r4.c: Regenerated.
139         * generated/sum_r8.c: Regenerated.
140
141 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
142
143         PR libfortran/35990
144         * intrinsics/pack_generic.c:  Really commit.
145
146 2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
147
148         PR libfortran/35990
149         * intrinsics/pack_generic.c:  If an extent of the source
150         array is less then zero, set it to zero.  Set the source
151         pointer to NULL if the source size is zero.  Set the total
152         number of elements to zero if the vector has an extent
153         less or equal to zero.
154         * m4/pack.m4:  Set the source pointer to NULL if the
155         source array is zero-sized.  Set the total number of
156         elemements to zero if the vector has an extent less or
157         equal to zero.
158         * generated/pack_i1.c:  Regenerated.
159         * generated/pack_i2.c:  Regenerated.
160         * generated/pack_i4.c:  Regenerated.
161         * generated/pack_i8.c:  Regenerated.
162         * generated/pack_i16.c:  Regenerated.
163         * generated/pack_r4.c:  Regenerated.
164         * generated/pack_r8.c:  Regenerated.
165         * generated/pack_r10.c:  Regenerated.
166         * generated/pack_r16.c:  Regenerated.
167         * generated/pack_c4.c:  Regenerated.
168         * generated/pack_c8.c:  Regenerated.
169         * generated/pack_c10.c:  Regenerated.
170         * generated/pack_c16.c:  Regenerated.
171
172 2008-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
173
174         PR libfortran/36094
175         * runtime/error.c (show_locus): Provide modified error message when
176         filename has not yet been associated with a unit number.
177         * io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
178
179 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
180
181         * intrinsics/selected_char_kind.c: New file.
182         * gfortran.map (GFORTRAN_1.1): Add _gfortran_selected_char_kind.
183         * Makefile.am: Add intrinsics/selected_char_kind.c.
184         * Makefile.in: Regenerate.
185
186 2008-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
187
188         PR libfortran/35993
189         * ifunction.m4 (SCALAR_ARRAY_FUNCTION):  Use correct
190         implementation for multi-dimensional return arrays when
191         the mask is .false.
192         * generated/maxloc1_16_i1.c: Regenerated.
193         * generated/maxloc1_16_i16.c: Regenerated.
194         * generated/maxloc1_16_i2.c: Regenerated.
195         * generated/maxloc1_16_i4.c: Regenerated.
196         * generated/maxloc1_16_i8.c: Regenerated.
197         * generated/maxloc1_16_r10.c: Regenerated.
198         * generated/maxloc1_16_r16.c: Regenerated.
199         * generated/maxloc1_16_r4.c: Regenerated.
200         * generated/maxloc1_16_r8.c: Regenerated.
201         * generated/maxloc1_4_i1.c: Regenerated.
202         * generated/maxloc1_4_i16.c: Regenerated.
203         * generated/maxloc1_4_i2.c: Regenerated.
204         * generated/maxloc1_4_i4.c: Regenerated.
205         * generated/maxloc1_4_i8.c: Regenerated.
206         * generated/maxloc1_4_r10.c: Regenerated.
207         * generated/maxloc1_4_r16.c: Regenerated.
208         * generated/maxloc1_4_r4.c: Regenerated.
209         * generated/maxloc1_4_r8.c: Regenerated.
210         * generated/maxloc1_8_i1.c: Regenerated.
211         * generated/maxloc1_8_i16.c: Regenerated.
212         * generated/maxloc1_8_i2.c: Regenerated.
213         * generated/maxloc1_8_i4.c: Regenerated.
214         * generated/maxloc1_8_i8.c: Regenerated.
215         * generated/maxloc1_8_r10.c: Regenerated.
216         * generated/maxloc1_8_r16.c: Regenerated.
217         * generated/maxloc1_8_r4.c: Regenerated.
218         * generated/maxloc1_8_r8.c: Regenerated.
219         * generated/maxval_i1.c: Regenerated.
220         * generated/maxval_i16.c: Regenerated.
221         * generated/maxval_i2.c: Regenerated.
222         * generated/maxval_i4.c: Regenerated.
223         * generated/maxval_i8.c: Regenerated.
224         * generated/maxval_r10.c: Regenerated.
225         * generated/maxval_r16.c: Regenerated.
226         * generated/maxval_r4.c: Regenerated.
227         * generated/maxval_r8.c: Regenerated.
228         * generated/minloc1_16_i1.c: Regenerated.
229         * generated/minloc1_16_i16.c: Regenerated.
230         * generated/minloc1_16_i2.c: Regenerated.
231         * generated/minloc1_16_i4.c: Regenerated.
232         * generated/minloc1_16_i8.c: Regenerated.
233         * generated/minloc1_16_r10.c: Regenerated.
234         * generated/minloc1_16_r16.c: Regenerated.
235         * generated/minloc1_16_r4.c: Regenerated.
236         * generated/minloc1_16_r8.c: Regenerated.
237         * generated/minloc1_4_i1.c: Regenerated.
238         * generated/minloc1_4_i16.c: Regenerated.
239         * generated/minloc1_4_i2.c: Regenerated.
240         * generated/minloc1_4_i4.c: Regenerated.
241         * generated/minloc1_4_i8.c: Regenerated.
242         * generated/minloc1_4_r10.c: Regenerated.
243         * generated/minloc1_4_r16.c: Regenerated.
244         * generated/minloc1_4_r4.c: Regenerated.
245         * generated/minloc1_4_r8.c: Regenerated.
246         * generated/minloc1_8_i1.c: Regenerated.
247         * generated/minloc1_8_i16.c: Regenerated.
248         * generated/minloc1_8_i2.c: Regenerated.
249         * generated/minloc1_8_i4.c: Regenerated.
250         * generated/minloc1_8_i8.c: Regenerated.
251         * generated/minloc1_8_r10.c: Regenerated.
252         * generated/minloc1_8_r16.c: Regenerated.
253         * generated/minloc1_8_r4.c: Regenerated.
254         * generated/minloc1_8_r8.c: Regenerated.
255         * generated/minval_i1.c: Regenerated.
256         * generated/minval_i16.c: Regenerated.
257         * generated/minval_i2.c: Regenerated.
258         * generated/minval_i4.c: Regenerated.
259         * generated/minval_i8.c: Regenerated.
260         * generated/minval_r10.c: Regenerated.
261         * generated/minval_r16.c: Regenerated.
262         * generated/minval_r4.c: Regenerated.
263         * generated/minval_r8.c: Regenerated.
264         * generated/product_c10.c: Regenerated.
265         * generated/product_c16.c: Regenerated.
266         * generated/product_c4.c: Regenerated.
267         * generated/product_c8.c: Regenerated.
268         * generated/product_i1.c: Regenerated.
269         * generated/product_i16.c: Regenerated.
270         * generated/product_i2.c: Regenerated.
271         * generated/product_i4.c: Regenerated.
272         * generated/product_i8.c: Regenerated.
273         * generated/product_r10.c: Regenerated.
274         * generated/product_r16.c: Regenerated.
275         * generated/product_r4.c: Regenerated.
276         * generated/product_r8.c: Regenerated.
277         * generated/sum_c10.c: Regenerated.
278         * generated/sum_c16.c: Regenerated.
279         * generated/sum_c4.c: Regenerated.
280         * generated/sum_c8.c: Regenerated.
281         * generated/sum_i1.c: Regenerated.
282         * generated/sum_i16.c: Regenerated.
283         * generated/sum_i2.c: Regenerated.
284         * generated/sum_i4.c: Regenerated.
285         * generated/sum_i8.c: Regenerated.
286         * generated/sum_r10.c: Regenerated.
287         * generated/sum_r16.c: Regenerated.
288         * generated/sum_r4.c: Regenerated.
289         * generated/sum_r8.c: Regenerated.
290
291 2008-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
292
293         PR libfortran/35960
294         * m4/reshape.m4:  Fix typo in last commit.
295         * generated/reshape_i4.c:  Regererated.
296         * generated/reshape_i8.c:  Regenerated.
297         * generated/reshape_i16.c:  Regenerated.
298         * generated/reshape_r4.c:  Regenerated.
299         * generated/reshape_r8.c:  Regenerated.
300         * generated/reshape_r10.c:  Regenerated.
301         * generated/reshape_r16.c:  Regenerated.
302         * generated/reshape_c4.c:  Regenerated.
303         * generated/reshape_c8.c:  Regenerated.
304         * generated/reshape_c10.c:  Regenerated.
305         * generated/reshape_c16.c:  Regenerated.
306
307 2008-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
308
309         * intrinsics/time_1.h (__time_1): Remove unused variable.
310
311 2008-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
312
313         PR libfortran/35988
314         * m4/matmul.m4:  Only issue a runtime error if extents are
315         non-zero.
316         * generated/matmul_i1.c:  Regenerated.
317         * generated/matmul_i2.c:  Regenerated.
318         * generated/matmul_i4.c:  Regenerated.
319         * generated/matmul_i8.c:  Regenerated.
320         * generated/matmul_i16.c:  Regenerated.
321         * generated/matmul_r4.c:  Regenerated.
322         * generated/matmul_r8.c:  Regenerated.
323         * generated/matmul_r10.c:  Regenerated.
324         * generated/matmul_r16.c:  Regenerated.
325         * generated/matmul_c4.c:  Regenerated.
326         * generated/matmul_c8.c:  Regenerated.
327         * generated/matmul_c10.c:  Regenerated.
328         * generated/matmul_c16.c:  Regenerated.
329
330 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
331
332         * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY)
333         (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT)
334         (LIBGFOR_CHECK_ATTRIBUTE_ALIAS, LIBGFOR_CHECK_SYNC_FETCH_AND_ADD)
335         (LIBGFOR_GTHREAD_WEAK, LIBGFOR_CHECK_UNLINK_OPEN_FILE)
336         (LIBGFOR_CHECK_CRLF, LIBGFOR_CHECK_FOR_BROKEN_ISFINITE)
337         (LIBGFOR_CHECK_FOR_BROKEN_ISNAN)
338         (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY, LIBGFOR_CHECK_WORKING_STAT)
339         (LIBGFOR_CHECK_FPSETMASK, LIBGFOR_CHECK_MINGW_SNPRINTF):
340         Fix cache variable names.
341         * configure, Makefile.in: Regenerate.
342
343 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
344
345         PR fortran/35991
346         * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
347
348 2008-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
349
350         PR libfortran/35960
351         * intrinsics/reshape_generic.c (reshape_internal): If the size
352         of the resized array is zero, as determined by the SHAPE
353         argument, return early.
354         * m4/reshape.m4:  Likewise.
355         * generated/reshape_i4.c:  Regererated.
356         * generated/reshape_i8.c:  Regenerated.
357         * generated/reshape_i16.c:  Regenerated.
358         * generated/reshape_r4.c:  Regenerated.
359         * generated/reshape_r8.c:  Regenerated.
360         * generated/reshape_r10.c:  Regenerated.
361         * generated/reshape_r16.c:  Regenerated.
362         * generated/reshape_c4.c:  Regenerated.
363         * generated/reshape_c8.c:  Regenerated.
364         * generated/reshape_c10.c:  Regenerated.
365         * generated/reshape_c16.c:  Regenerated.
366
367 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
368
369         PR bootstrap/35457
370         * aclocal.m4: Regenerate.
371         * configure: Regenerate.
372
373 2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
374
375         PR libfortran/32972
376         * intrinsics/spread_generic.c (spread):  Use spread_i2()
377         for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
378
379 2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
380         Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
381
382         PR libfortran/32972
383         PR libfortran/32512
384         configure.ac:  Add test for uintptr_t.
385         configure:  Regenerated.
386         config.h.in:  Regenerated.
387         * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
388         GFC_DTYPE_DERIVED_2:  New macro.
389         GFC_DTYPE_DERIVED_4:  New macro.
390         GFC_DTYPE_DERIVED_8:  New macro.
391         GFC_DTYPE_DERIVED_16:  New macro.
392         GFC_UNALIGNED_2:  New macro.
393         GFC_UNALIGNED_4:  New macro.
394         GFC_UNALIGNED_8:  New macro.
395         GFC_UNALIGNED_16:  New macro.
396         intptr_t:  Define if we don't have it.
397         uintptr_t:  Likewise.
398         * runtime/backtrace.c (show_backtrace):  Use intptr_t.
399         * intrinsics/signal.c (signal_sub):  Likewise.
400         (signal_sub_int):  Likewise.
401         (alarm_sub_int_i4):  Likewise.
402         * intrinsics/spread_generic.c (spread):  Use the integer
403         routines for handling derived types of sizes 1, 2, 4, 8 and 16
404         if the alignment of all pointers is correct.
405         (spread_scalar):  Likewise.
406         * intrinsics/pack_generic.c (pack):  Likewise.
407         Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
408         * intrinsics/unpack_generic.c (unpack1):  Likewise.
409         (unpack0):  Likewise.
410         * runtime/in_pack_generic.c (internal_pack):  Likewise.
411         * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
412
413 2008-04-09  Jakub Jelinek  <jakub@redhat.com>
414
415         * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
416         (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
417         recursive call.  Use snprintf instead of sprintf when %s nl->var_name
418         is used.
419         (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
420         nml_read_obj call.  Use snprintf instead of sprintf when %s
421         nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
422         of parse_err_msg array.  Append " for namelist variable " and
423         nl->var_name to it.
424         (namelist_read): Increase size of nml_err_msg array to 200.  Pass
425         sizeof nml_err_msg as extra argument to nml_get_obj_data.
426
427 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
428
429         PR fortran/25829 28655
430         * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
431         and flags.status. (st_open): Initialize flags.async.
432         * io/list_read.c (read_charactor): Use delim_status instead of
433         flags.delim.
434         * io/read.c (read_x): Use pad_status instead of flags.pad.
435         * io/inquire.c (inquire_via_unit): Add new checks.
436         (inquire_via_filename): Likewise.
437         * io/io.h (st_parameter_inquire): Add new flags.
438         (st_parameter_dt): Likewise.
439         * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
440         flags.async.
441         * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
442         pad_status instead of flags.pad. (read_block): Likewise.
443         (data_transfer_init): Set flags.async and add checks.
444         * io/write.c (write_character): Use delim_status.
445         (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
446         (namelist_write): Likewise.
447
448 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
449
450         PR fortran/25829 28655
451         * gfortran.map: Add new symbol, _gfortran_st_wait.
452         * libgfortran.h (st_paramter_common): Add new I/O parameters.
453         * open.c (st_option decimal_opt[], st_option encoding_opt[],
454         st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
455         parameter option arrays. (edit_modes): Add checks for new parameters.
456         (new_unit): Likewise. (st_open): Likewise.
457         * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
458         (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
459         (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
460         * read.c (read_a): Use decimal status flag to allow comma in place of a
461         decimal point. (read_f): Allow comma as acceptable character in float.
462         According to decimal flag, substitute a period for a comma.
463         (read_x): If decimal status flag is comma, disable the read_comma flag,
464         not allowing comma as a delimiter, an extension otherwise.
465         * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
466         unit_async): New enumerators. Add all new I/O parameters.
467         * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
468         (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
469         (fd_sfree): Use new enumerator. (fd_read): Likewise.
470         (fd_write): Likewise. (fd_close): Fix whitespace.
471         (fd_open): Use new enumertors. (tempfile, regular_file,
472         open_external): Fix whitespace. (output_stream, error_stream): Set
473         method. (stream_offset): Fix whitespace.
474         * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
475         option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
476         based on new decimal_status flag. (data_transfer_init): Initialize new
477         parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
478         * format.c: (format_lex): Add format specifiers DP, DC, and D.
479         (parse_format_list): Parse the new specifiers.
480         * write.c (write_decimal): Use new sign enumerators to set the sign.
481         (write_complex): Handle decimal comma and semi-colon separator.
482         (nml_write_obj): Likewise.
483         * write_float.def: Revise sign enumerators. (calculate_sign): Use new
484         sign enumerators. (output_float): Likewise. Use new decimal_status flag
485         to set the decimal character to a point or a comma.
486         
487 2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
488
489         PR libfortran/32972
490         PR libfortran/32512
491         * Makefile.am:  Add new variable, i_spread_c, containing
492         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
493         spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
494         spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
495         * Makefile.in:  Regenerated.
496         * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
497         spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
498         spread_c4, spread_c8, spread_c10, spread_c16,
499         spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
500         spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
501         spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
502         spread_scalar_c10 and spread_scalar_c16.
503         Add macros to isolate both type and size information
504         from array descriptors with a single mask operation.
505         * intrinsics/spread_generic.c:  Add calls to specific
506         spread functions.
507         * m4/spread.m4:  New file.
508         * generated/spread_i1.c:  New file.
509         * generated/spread_i2.c:  New file.
510         * generated/spread_i4.c:  New file.
511         * generated/spread_i8.c:  New file.
512         * generated/spread_i16.c:  New file.
513         * generated/spread_r4.c:  New file.
514         * generated/spread_r8.c:  New file.
515         * generated/spread_r10.c:  New file.
516         * generated/spread_r16.c:  New file.
517         * generated/spread_c4.c:  New file.
518         * generated/spread_c8.c:  New file.
519         * generated/spread_c10.c:  New file.
520         * generated/spread_c16.c:  New file.
521
522 2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
523
524         PR libfortran/35699
525         * io/transfer.c (write_buf):  Don't pad the record, just return if the
526         data is NULL.  (next_record_w): If there are bytes left in the record
527         for unformatted direct I/O, pad out the record with zero bytes.
528
529 2008-03-28  Tobias Burnus  <burnus@net-b.de>
530
531         PR fortran/35721
532         * intrinsics/associated.c (associated): Ignore different
533         stride of pointer vs. target if only one element is referred.
534
535 2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
536
537         * io/unix.c (fd_close):  Do not close STDIN.
538
539 2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
540
541         PR libfortran/32972
542         * Makefile.am:  Add new variable, i_unpack_c, containing
543         unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
544         unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
545         unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
546         and unpack_c16.c
547         Add i_unpack_c to gfor_built_src.
548         Add rule to generate i_unpack_c from m4/unpack.m4.
549         * Makefile.in:  Regenerated.
550         * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
551         unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
552         unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
553         unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
554         unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
555         unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
556         * intrinsics/pack_generic.c (unpack1):  Add calls to specific
557         unpack1 functions.
558         (unpack0):  Add calls to specific unpack0 functions.
559         * m4/unpack.m4:  New file.
560         * generated/unpack_i1.c:  New file.
561         * generated/unpack_i2.c:  New file.
562         * generated/unpack_i4.c:  New file.
563         * generated/unpack_i8.c:  New file.
564         * generated/unpack_i16.c:  New file.
565         * generated/unpack_r4.c:  New file.
566         * generated/unpack_r8.c:  New file.
567         * generated/unpack_r10.c:  New file.
568         * generated/unpack_r16.c:  New file.
569         * generated/unpack_c4.c:  New file.
570         * generated/unpack_c8.c:  New file.
571         * generated/unpack_c10.c:  New file.
572         * generated/unpack_c16.c:  New file.
573
574 2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
575
576         PR libfortran/35632
577         * io/transfer.c (data_transfer_init):  Fix whitespace.
578         (next_record_w): Truncate the file only if the stream
579         position is short of the file end.
580
581 2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
582
583         * intrinsics/pack_generic.c:  Fix typo.
584
585 2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
586
587         * gfortran.map: Move erfc_scaled symbols to new symbol node
588         GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
589
590 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
591
592         PR libfortran/32972
593         * runtime/in_pack_generic.c (internal_pack):  Call correct
594         function, pack_i16, for GFC_INTEGER_16.
595
596 2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
597
598         PR libfortran/32972
599         * Makefile.am:  Add new variable, i_pack_c, containing
600         pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
601         pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
602         pack_c8.c, pack_c10.c, pack_c16.c.
603         Add m4/pack.m4 to m4_files.
604         Add i_pack_c to gfor_built_src.
605         Add rule to generate i_pack_c from m4/pack.m4.
606         * Makefile.in:  Regenerated.
607         * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
608         pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
609         pack_c10, pack_c16.
610         * intrinsics/pack_generic.c:  Add calls to specific
611         pack functions.
612         * m4/pack.m4:  New file.
613         * generated/pack_i1.c:  New file.
614         * generated/pack_i2.c:  New file.
615         * generated/pack_i4.c:  New file.
616         * generated/pack_i8.c:  New file.
617         * generated/pack_i16.c:  New file.
618         * generated/pack_r4.c:  New file.
619         * generated/pack_r8.c:  New file.
620         * generated/pack_r10.c:  New file.
621         * generated/pack_r16.c:  New file.
622         * generated/pack_c4.c:  New file.
623         * generated/pack_c8.c:  New file.
624         * generated/pack_c10.c:  New file.
625         * generated/pack_c16.c:  New file.
626
627 2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
628
629         PR libfortran/35627
630         * io/list_read.c (free_line): Clear the line buffer enable flag and
631         reset the index into line_buffer, aka item_count.
632         (next_char): Cleanup whitespace.
633         (read_logical): Use unget_char to assure that the first character of the
634         bad logical is saved in case it is part of an object name. Remove the
635         clearing of index and flag that is now in free_line.
636         (read_real): Likewise.
637
638 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
639
640         PR libfortran/32972
641         * runtime/in_pack_generic.c (internal_pack):  Fix typo in
642         last commit.
643
644 2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
645
646         PR libfortran/32972
647         * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
648         in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
649         (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
650         in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
651         in_unpack_r16.c.
652         * Makefile.in: Regenerate.
653         * libgfortran.h:  Add prototypes for internal_pack_1,
654         internal_pack_2, internal_pack_16, internal_pack_r4,
655         internal_pack_r8, internal_pack_r10, internal_pack_r16,
656         internal_pack_c10 and internal_pack_c16.  Add prototypes for
657         internal_unpack_1, internal_unpack_2, internal_unpack_16,
658         internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
659         internal_unpack_r16, internal_unpack_c10 and
660         internal_unpack_c16.
661         * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
662         of hardwired sizes.
663         Add calls to internal_pack_1, internal_pack_2,
664         internal_pack_16, internal_pack_r4, internal_pack_r8,
665         internal_pack_r10, internal_pack_r16, internal_pack_c10 and
666         internal_pack_c16.
667         * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
668         instead of hardwired sizes.
669         Add calls to internal_unpack_1, internal_unpack_2,
670         internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
671         internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
672         and internal_unpack_c16.
673         * generated/in_pack_r4.c:  New file.
674         * generated/in_pack_i2.c:  New file.
675         * generated/in_unpack_i1.c:  New file.
676         * generated/in_pack_r10.c:  New file.
677         * generated/in_unpack_r4.c:  New file.
678         * generated/in_unpack_i2.c:  New file.
679         * generated/in_unpack_r16.c:  New file.
680         * generated/in_pack_r8.c:  New file.
681         * generated/in_unpack_r10.c:  New file.
682         * generated/in_unpack_r8.c:  New file.
683         * generated/in_pack_r16.c:  New file.
684         * generated/in_pack_i1.c:  New file.
685
686 2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
687
688         PR libfortran/35617
689         * io/list_read.c (eat_separator): If next character after eatline is '!'
690         then eatline again. 
691
692 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
693
694         * aclocal.m4: Regenerate.
695         * configure: Likewise.
696         * Makefile.in: Likewise.
697
698 2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
699
700         PR libfortran/35524
701         * intrinsics/erfc_scaled_inc.c: Only define the long double
702         variant of erfc_scaled if expl is available.
703
704 2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
705
706         PR libfortran/32812
707         * intrinsics/random.c (scramble_seed, unscramble_seed): New
708         functions.
709         (random_seed_i4): Scramble the seed the user gives us before
710         storing it, and unscramble it when we return it back later.
711
712 2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
713
714         PR libfortran/35293
715         * io/unix.c (fd_truncate): Fold s->special_file case into
716         success case of ftruncate/chsize call instead of the failure case.
717         Make failure case actually return failure.  Properly update stream
718         pointers on failure.  Call runtime_error for targets without
719         neither ftruncate nor chsize where such a call would be needed.
720
721 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
722
723         PR fortran/33197
724         * intrinsics/erfc_scaled_inc.c: New file.
725         * intrinsics/erfc_scaled.c: New file.
726         * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
727         * Makefile.am: Add intrinsics/erfc_scaled.c.
728         * config.h.in: Regenerate.
729         * configure: Regenerate.
730         * Makefile.in: Regenerate.
731
732 2008-03-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
733
734         PR libfortran/35355
735         * intrinsics/time_1.h (__time_1): Fix calculation of user_usec
736         for mingw.
737
738 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
739
740         PR libfortran/35063
741         * io/unit.c (destroy_unit_mutex): Call __gthread_mutex_destroy
742         instead of macro kludge.
743         
744 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
745
746         PR fortran/29549
747         * Makefile.am: Add -fcx-fortran-rules to AM_CFLAGS for all of
748         libgfortran.
749         * Makefile.in: Regenerated.
750
751 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
752
753         * m4/ifunction_logical.m4: Add casts to get rid of warnings.
754         * generated/all_l1.c: Regenerate.
755         * generated/all_l2.c: Regenerate.
756         * generated/all_l4.c: Regenerate.
757         * generated/all_l8.c: Regenerate.
758         * generated/all_l16.c: Regenerate.
759         * generated/any_l1.c: Regenerate.
760         * generated/any_l2.c: Regenerate.
761         * generated/any_l4.c: Regenerate.
762         * generated/any_l8.c: Regenerate.
763         * generated/any_l16.c: Regenerate.
764         * generated/count_1_l.c: Regenerate.
765         * generated/count_2_l.c: Regenerate.
766         * generated/count_4_l.c: Regenerate.
767         * generated/count_8_l.c: Regenerate.
768         * generated/count_16_l.c: Regenerate.
769
770 2008-02-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
771
772         PR libfortran/32841
773         * acinclude.m4: Don't use HAVE_MATH_H.
774         * configure: Regenerate.
775
776 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
777
778         PR libfortran/35132
779         * io/transfer.c (next_record_w): Truncate after the last record for
780         STREAM I/O.
781
782         PR libfortran/34954
783         * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.
784
785         PR libfortran/34974
786         * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
787         is less than zero. (next_record_w): Use sseek to position the file to
788         the max position reached.
789
790 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
791
792         PR libfortran/35036
793         * write_float.def (output_float):  Add error checks for zero digits
794         after decimal point in E and D format specifiers.
795         
796 2008-02-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
797
798         PR libfortran/35063
799         * io/unit.c (destroy_unit_mutex): New function that uses
800         __gthread_mutex_destroy_function or pthread_mutex_destroy after
801         unlocking and before free_mem for final closure of I/O unit.
802         (delete_root): Use new function.
803         (free_internal_unit): Likewise.
804         (close_unit_1): Likewise.
805
806 2008-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
807
808         PR libfortran/35001
809         * m4/shape.m4:  Return 0 for extents <= 0.
810         * generated/shape_i4.c:  Regenerated.
811         * generated/shape_i8.c:  Regenerated.
812         * generated/shape_i16.c:  Regenerated.
813
814 2008-01-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
815
816         PR libfortran/34980
817         * m4/shape.m4:  If return array is empty, return early.
818         * generated/shape_i4.c:  Regenerated.
819         * generated/shape_i8.c:  Regenerated.
820         * generated/shape_i16.c:  Regenerated.
821
822 2008-01-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
823
824         PR libfofortran/34887
825         * io/transfer.c (next_record_w): Always move to the farthest
826         position when completing the record (also when we are
827         processing a slash edit descriptor).
828
829 2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
830
831         PR libfortran/34876
832         * io/transfer.c (write_buf): Handle case of zero sized array.
833         (transfer_array): Set data pointer to NULL and size to zero.  Then
834         make a data transfer and return.
835         
836 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
837
838         * configure: Regenerate.
839
840 2008-01-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
841
842         PR libfortran/34795
843         * io/inquire.c (inquire_via_unit): If a unit is opened, return values
844         according to the open action for DIRECT, FORMATTED, and UNFORMATTED.
845         (inquire_via_filename): Return "UNKNOWN" for SEQUENTIAL, DIRECT,
846         FORAMATTED, and UNFORMATTED inquiries.
847         * io/unix.c (inquire_sequential): Return "UNKNOWN" when appropriate
848         for files that are not opened. (inquire_direct): Same.
849         (inquire_formatted): Same.
850         
851 2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
852
853         PR libfortran/34782
854         * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
855         of the current max_pos or the newly calculated position.
856
857 2008-01-18  Tobias Burnus  <burnus@net-b.de>
858
859         * io/write.c (write_real): Increase default precision
860         for REAL(16) by one.
861
862 2008-01-16  Steven Bosscher  <steven@gcc.gnu.org>
863
864         PR libfortran/34669
865         * mk-kinds-h.sh: Compile with -S to avoid calling the assembler,
866         to avoid piping the -fdump-parse-tree output to the assembler
867         when configuring with -pipe.
868         * mk-sik-inc.sh: Likewise.
869         * mk-srk-inc.sh: Likewise.
870
871 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
872
873         PR libfortran/34671
874         * gfortran.am: Added _gfortran_all_l1, _gfortran_all_l2,
875         _gfortran_any_l1, _gfortran_any_l2, -28,15 _gfortran_count_1_l,
876         _gfortran_count_16_l, _gfortran_count_2_l, _gfortran_count_4_l and
877         _gfortran_count_8_l Removed _gfortran_count_16_l16,
878         _gfortran_count_16_l4, _gfortran_count_16_l8,
879         _gfortran_count_4_l16, _gfortran_count_4_l4, _gfortran_count_4_l8,
880         _gfortran_count_8_l16, _gfortran_count_8_l4 and
881         _gfortran_count_8_l8.
882         * Makefile.am: Added generated/any_l1.c and generated/any_l2.c to
883         i_any_c.  Added generated/all_l1. and generated/all_l2.c to
884         i_all_c.  Removed generated/count_4_l4.c, generated/count_8_l4.c,
885         generated/count_16_l4.c, generated/count_4_l8.c,
886         generated/count_8_l8.c, generated/count_16_l8.c,
887         generated/count_4_l16.c, generated/count_8_l16.c, and
888         generated/count_16_l16.c from i_count_c.  Added count_1_l.c,
889         count_2_l.c, count_4_l.c, count_8_l.c and count_16_l.c to
890         i_count_c.  I_M4_DEPS2 depends on ifunction_logical.m4, for
891         any of the files generated from all.m4, any.m4 and count.m4.
892         * Makefile.in:  Regenerated.
893         * m4/ifunction_logical.m4:  New file.  Use
894         GFC_LOGICAL_1 pointer for access to source arrays.
895         * m4/any.m4:  Include ifunction_logical.m4 instead of
896         ifunction.m4.  Don't check atype_name.
897         * m4/all.m4:  Likewise.
898         * m4/count.m4:  Likewise.
899         * generated/any_l1.c:  New file.
900         * generated/any_l2.c:  New file.
901         * generated/all_l1.c:  New file.
902         * generated/count_1_l.c:  New file.
903         * generated/count_2_l.c:  New file.
904         * generated/count_4_l.c:  New file.
905         * generated/count_8_l.c:  New file.
906         * generated/count_16_l.c:  New file.
907         * generated/any_l4.c:  Regenerated.
908         * generated/any_l8.c:  Regenerated.
909         * generated/any_l16.c:  Regenerated.
910         * generated/all_l4.c: Regenerated.
911         * generated/all_l8.c: Regenerated.
912         * generated/all_l16.c: Regenerated.
913         * generated/count_4_l4.c:  Removed.
914         * generated/count_4_l8.c:  Removed.
915         * generated/count_4_l16.c:  Removed.
916         * generated/count_8_l4.c:  Removed.
917         * generated/count_8_l8.c:  Removed.
918         * generated/count_8_l16.c:  Removed.
919         * generated/count_16_l4.c:  Removed.
920         * generated/count_16_l8.c:  Removed.
921         * generated/count_16_l16.c:  Removed.
922
923 2008-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
924
925         PR libfortran/34746
926         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Use %ld
927         in printf format for all bounds checking; cast all
928         integer-like arguments to runtime_error() to long int.
929         (`m'name`'rtype_qual`_'atype_code):  Likewise.
930         (`s'name`'rtype_qual`_'atype_code):  Likewise.
931         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Likewise.
932         (`m'name`'rtype_qual`_'atype_code):  Likewise.
933         (`s'name`'rtype_qual`_'atype_code):  Likewise.
934         * generated/all_l16.c: Regenerated.
935         * generated/all_l4.c: Regenerated.
936         * generated/all_l8.c: Regenerated.
937         * generated/any_l16.c: Regenerated.
938         * generated/any_l4.c: Regenerated.
939         * generated/any_l8.c: Regenerated.
940         * generated/count_16_l16.c: Regenerated.
941         * generated/count_16_l4.c: Regenerated.
942         * generated/count_16_l8.c: Regenerated.
943         * generated/count_4_l16.c: Regenerated.
944         * generated/count_4_l4.c: Regenerated.
945         * generated/count_4_l8.c: Regenerated.
946         * generated/count_8_l16.c: Regenerated.
947         * generated/count_8_l4.c: Regenerated.
948         * generated/count_8_l8.c: Regenerated.
949         * generated/maxloc0_16_i1.c: Regenerated.
950         * generated/maxloc0_16_i16.c: Regenerated.
951         * generated/maxloc0_16_i2.c: Regenerated.
952         * generated/maxloc0_16_i4.c: Regenerated.
953         * generated/maxloc0_16_i8.c: Regenerated.
954         * generated/maxloc0_16_r10.c: Regenerated.
955         * generated/maxloc0_16_r16.c: Regenerated.
956         * generated/maxloc0_16_r4.c: Regenerated.
957         * generated/maxloc0_16_r8.c: Regenerated.
958         * generated/maxloc0_4_i1.c: Regenerated.
959         * generated/maxloc0_4_i16.c: Regenerated.
960         * generated/maxloc0_4_i2.c: Regenerated.
961         * generated/maxloc0_4_i4.c: Regenerated.
962         * generated/maxloc0_4_i8.c: Regenerated.
963         * generated/maxloc0_4_r10.c: Regenerated.
964         * generated/maxloc0_4_r16.c: Regenerated.
965         * generated/maxloc0_4_r4.c: Regenerated.
966         * generated/maxloc0_4_r8.c: Regenerated.
967         * generated/maxloc0_8_i1.c: Regenerated.
968         * generated/maxloc0_8_i16.c: Regenerated.
969         * generated/maxloc0_8_i2.c: Regenerated.
970         * generated/maxloc0_8_i4.c: Regenerated.
971         * generated/maxloc0_8_i8.c: Regenerated.
972         * generated/maxloc0_8_r10.c: Regenerated.
973         * generated/maxloc0_8_r16.c: Regenerated.
974         * generated/maxloc0_8_r4.c: Regenerated.
975         * generated/maxloc0_8_r8.c: Regenerated.
976         * generated/maxloc1_16_i1.c: Regenerated.
977         * generated/maxloc1_16_i16.c: Regenerated.
978         * generated/maxloc1_16_i2.c: Regenerated.
979         * generated/maxloc1_16_i4.c: Regenerated.
980         * generated/maxloc1_16_i8.c: Regenerated.
981         * generated/maxloc1_16_r10.c: Regenerated.
982         * generated/maxloc1_16_r16.c: Regenerated.
983         * generated/maxloc1_16_r4.c: Regenerated.
984         * generated/maxloc1_16_r8.c: Regenerated.
985         * generated/maxloc1_4_i1.c: Regenerated.
986         * generated/maxloc1_4_i16.c: Regenerated.
987         * generated/maxloc1_4_i2.c: Regenerated.
988         * generated/maxloc1_4_i4.c: Regenerated.
989         * generated/maxloc1_4_i8.c: Regenerated.
990         * generated/maxloc1_4_r10.c: Regenerated.
991         * generated/maxloc1_4_r16.c: Regenerated.
992         * generated/maxloc1_4_r4.c: Regenerated.
993         * generated/maxloc1_4_r8.c: Regenerated.
994         * generated/maxloc1_8_i1.c: Regenerated.
995         * generated/maxloc1_8_i16.c: Regenerated.
996         * generated/maxloc1_8_i2.c: Regenerated.
997         * generated/maxloc1_8_i4.c: Regenerated.
998         * generated/maxloc1_8_i8.c: Regenerated.
999         * generated/maxloc1_8_r10.c: Regenerated.
1000         * generated/maxloc1_8_r16.c: Regenerated.
1001         * generated/maxloc1_8_r4.c: Regenerated.
1002         * generated/maxloc1_8_r8.c: Regenerated.
1003         * generated/maxval_i1.c: Regenerated.
1004         * generated/maxval_i16.c: Regenerated.
1005         * generated/maxval_i2.c: Regenerated.
1006         * generated/maxval_i4.c: Regenerated.
1007         * generated/maxval_i8.c: Regenerated.
1008         * generated/maxval_r10.c: Regenerated.
1009         * generated/maxval_r16.c: Regenerated.
1010         * generated/maxval_r4.c: Regenerated.
1011         * generated/maxval_r8.c: Regenerated.
1012         * generated/minloc0_16_i1.c: Regenerated.
1013         * generated/minloc0_16_i16.c: Regenerated.
1014         * generated/minloc0_16_i2.c: Regenerated.
1015         * generated/minloc0_16_i4.c: Regenerated.
1016         * generated/minloc0_16_i8.c: Regenerated.
1017         * generated/minloc0_16_r10.c: Regenerated.
1018         * generated/minloc0_16_r16.c: Regenerated.
1019         * generated/minloc0_16_r4.c: Regenerated.
1020         * generated/minloc0_16_r8.c: Regenerated.
1021         * generated/minloc0_4_i1.c: Regenerated.
1022         * generated/minloc0_4_i16.c: Regenerated.
1023         * generated/minloc0_4_i2.c: Regenerated.
1024         * generated/minloc0_4_i4.c: Regenerated.
1025         * generated/minloc0_4_i8.c: Regenerated.
1026         * generated/minloc0_4_r10.c: Regenerated.
1027         * generated/minloc0_4_r16.c: Regenerated.
1028         * generated/minloc0_4_r4.c: Regenerated.
1029         * generated/minloc0_4_r8.c: Regenerated.
1030         * generated/minloc0_8_i1.c: Regenerated.
1031         * generated/minloc0_8_i16.c: Regenerated.
1032         * generated/minloc0_8_i2.c: Regenerated.
1033         * generated/minloc0_8_i4.c: Regenerated.
1034         * generated/minloc0_8_i8.c: Regenerated.
1035         * generated/minloc0_8_r10.c: Regenerated.
1036         * generated/minloc0_8_r16.c: Regenerated.
1037         * generated/minloc0_8_r4.c: Regenerated.
1038         * generated/minloc0_8_r8.c: Regenerated.
1039         * generated/minloc1_16_i1.c: Regenerated.
1040         * generated/minloc1_16_i16.c: Regenerated.
1041         * generated/minloc1_16_i2.c: Regenerated.
1042         * generated/minloc1_16_i4.c: Regenerated.
1043         * generated/minloc1_16_i8.c: Regenerated.
1044         * generated/minloc1_16_r10.c: Regenerated.
1045         * generated/minloc1_16_r16.c: Regenerated.
1046         * generated/minloc1_16_r4.c: Regenerated.
1047         * generated/minloc1_16_r8.c: Regenerated.
1048         * generated/minloc1_4_i1.c: Regenerated.
1049         * generated/minloc1_4_i16.c: Regenerated.
1050         * generated/minloc1_4_i2.c: Regenerated.
1051         * generated/minloc1_4_i4.c: Regenerated.
1052         * generated/minloc1_4_i8.c: Regenerated.
1053         * generated/minloc1_4_r10.c: Regenerated.
1054         * generated/minloc1_4_r16.c: Regenerated.
1055         * generated/minloc1_4_r4.c: Regenerated.
1056         * generated/minloc1_4_r8.c: Regenerated.
1057         * generated/minloc1_8_i1.c: Regenerated.
1058         * generated/minloc1_8_i16.c: Regenerated.
1059         * generated/minloc1_8_i2.c: Regenerated.
1060         * generated/minloc1_8_i4.c: Regenerated.
1061         * generated/minloc1_8_i8.c: Regenerated.
1062         * generated/minloc1_8_r10.c: Regenerated.
1063         * generated/minloc1_8_r16.c: Regenerated.
1064         * generated/minloc1_8_r4.c: Regenerated.
1065         * generated/minloc1_8_r8.c: Regenerated.
1066         * generated/minval_i1.c: Regenerated.
1067         * generated/minval_i16.c: Regenerated.
1068         * generated/minval_i2.c: Regenerated.
1069         * generated/minval_i4.c: Regenerated.
1070         * generated/minval_i8.c: Regenerated.
1071         * generated/minval_r10.c: Regenerated.
1072         * generated/minval_r16.c: Regenerated.
1073         * generated/minval_r4.c: Regenerated.
1074         * generated/minval_r8.c: Regenerated.
1075         * generated/product_c10.c: Regenerated.
1076         * generated/product_c16.c: Regenerated.
1077         * generated/product_c4.c: Regenerated.
1078         * generated/product_c8.c: Regenerated.
1079         * generated/product_i1.c: Regenerated.
1080         * generated/product_i16.c: Regenerated.
1081         * generated/product_i2.c: Regenerated.
1082         * generated/product_i4.c: Regenerated.
1083         * generated/product_i8.c: Regenerated.
1084         * generated/product_r10.c: Regenerated.
1085         * generated/product_r16.c: Regenerated.
1086         * generated/product_r4.c: Regenerated.
1087         * generated/product_r8.c: Regenerated.
1088         * generated/sum_c10.c: Regenerated.
1089         * generated/sum_c16.c: Regenerated.
1090         * generated/sum_c4.c: Regenerated.
1091         * generated/sum_c8.c: Regenerated.
1092         * generated/sum_i1.c: Regenerated.
1093         * generated/sum_i16.c: Regenerated.
1094         * generated/sum_i2.c: Regenerated.
1095         * generated/sum_i4.c: Regenerated.
1096         * generated/sum_i8.c: Regenerated.
1097         * generated/sum_r10.c: Regenerated.
1098         * generated/sum_r16.c: Regenerated.
1099         * generated/sum_r4.c: Regenerated.
1100         * generated/sum_r8.c: Regenerated.
1101
1102 2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
1103
1104         PR libfortran/34670
1105         * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
1106         (u_name):  New macro for the upper case name of the intrinsic.
1107         * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
1108         bounds checking and rank check, depending on
1109         compile_options.bounds_check.
1110         (`m'name`'rtype_qual`_'atype_code):  Likewise.
1111         (`s'name`'rtype_qual`_'atype_code):  Likewise.
1112         * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
1113         bounds checking and rank check, depending on
1114         compile_options.bounds_check.
1115         (`m'name`'rtype_qual`_'atype_code):  Likewise.
1116         (`s'name`'rtype_qual`_'atype_code):  Likewise.
1117         * generated/all_l16.c: Regenerated.
1118         * generated/all_l4.c: Regenerated.
1119         * generated/all_l8.c: Regenerated.
1120         * generated/any_l16.c: Regenerated.
1121         * generated/any_l4.c: Regenerated.
1122         * generated/any_l8.c: Regenerated.
1123         * generated/count_16_l16.c: Regenerated.
1124         * generated/count_16_l4.c: Regenerated.
1125         * generated/count_16_l8.c: Regenerated.
1126         * generated/count_4_l16.c: Regenerated.
1127         * generated/count_4_l4.c: Regenerated.
1128         * generated/count_4_l8.c: Regenerated.
1129         * generated/count_8_l16.c: Regenerated.
1130         * generated/count_8_l4.c: Regenerated.
1131         * generated/count_8_l8.c: Regenerated.
1132         * generated/maxloc0_16_i1.c: Regenerated.
1133         * generated/maxloc0_16_i16.c: Regenerated.
1134         * generated/maxloc0_16_i2.c: Regenerated.
1135         * generated/maxloc0_16_i4.c: Regenerated.
1136         * generated/maxloc0_16_i8.c: Regenerated.
1137         * generated/maxloc0_16_r10.c: Regenerated.
1138         * generated/maxloc0_16_r16.c: Regenerated.
1139         * generated/maxloc0_16_r4.c: Regenerated.
1140         * generated/maxloc0_16_r8.c: Regenerated.
1141         * generated/maxloc0_4_i1.c: Regenerated.
1142         * generated/maxloc0_4_i16.c: Regenerated.
1143         * generated/maxloc0_4_i2.c: Regenerated.
1144         * generated/maxloc0_4_i4.c: Regenerated.
1145         * generated/maxloc0_4_i8.c: Regenerated.
1146         * generated/maxloc0_4_r10.c: Regenerated.
1147         * generated/maxloc0_4_r16.c: Regenerated.
1148         * generated/maxloc0_4_r4.c: Regenerated.
1149         * generated/maxloc0_4_r8.c: Regenerated.
1150         * generated/maxloc0_8_i1.c: Regenerated.
1151         * generated/maxloc0_8_i16.c: Regenerated.
1152         * generated/maxloc0_8_i2.c: Regenerated.
1153         * generated/maxloc0_8_i4.c: Regenerated.
1154         * generated/maxloc0_8_i8.c: Regenerated.
1155         * generated/maxloc0_8_r10.c: Regenerated.
1156         * generated/maxloc0_8_r16.c: Regenerated.
1157         * generated/maxloc0_8_r4.c: Regenerated.
1158         * generated/maxloc0_8_r8.c: Regenerated.
1159         * generated/maxloc1_16_i1.c: Regenerated.
1160         * generated/maxloc1_16_i16.c: Regenerated.
1161         * generated/maxloc1_16_i2.c: Regenerated.
1162         * generated/maxloc1_16_i4.c: Regenerated.
1163         * generated/maxloc1_16_i8.c: Regenerated.
1164         * generated/maxloc1_16_r10.c: Regenerated.
1165         * generated/maxloc1_16_r16.c: Regenerated.
1166         * generated/maxloc1_16_r4.c: Regenerated.
1167         * generated/maxloc1_16_r8.c: Regenerated.
1168         * generated/maxloc1_4_i1.c: Regenerated.
1169         * generated/maxloc1_4_i16.c: Regenerated.
1170         * generated/maxloc1_4_i2.c: Regenerated.
1171         * generated/maxloc1_4_i4.c: Regenerated.
1172         * generated/maxloc1_4_i8.c: Regenerated.
1173         * generated/maxloc1_4_r10.c: Regenerated.
1174         * generated/maxloc1_4_r16.c: Regenerated.
1175         * generated/maxloc1_4_r4.c: Regenerated.
1176         * generated/maxloc1_4_r8.c: Regenerated.
1177         * generated/maxloc1_8_i1.c: Regenerated.
1178         * generated/maxloc1_8_i16.c: Regenerated.
1179         * generated/maxloc1_8_i2.c: Regenerated.
1180         * generated/maxloc1_8_i4.c: Regenerated.
1181         * generated/maxloc1_8_i8.c: Regenerated.
1182         * generated/maxloc1_8_r10.c: Regenerated.
1183         * generated/maxloc1_8_r16.c: Regenerated.
1184         * generated/maxloc1_8_r4.c: Regenerated.
1185         * generated/maxloc1_8_r8.c: Regenerated.
1186         * generated/maxval_i1.c: Regenerated.
1187         * generated/maxval_i16.c: Regenerated.
1188         * generated/maxval_i2.c: Regenerated.
1189         * generated/maxval_i4.c: Regenerated.
1190         * generated/maxval_i8.c: Regenerated.
1191         * generated/maxval_r10.c: Regenerated.
1192         * generated/maxval_r16.c: Regenerated.
1193         * generated/maxval_r4.c: Regenerated.
1194         * generated/maxval_r8.c: Regenerated.
1195         * generated/minloc0_16_i1.c: Regenerated.
1196         * generated/minloc0_16_i16.c: Regenerated.
1197         * generated/minloc0_16_i2.c: Regenerated.
1198         * generated/minloc0_16_i4.c: Regenerated.
1199         * generated/minloc0_16_i8.c: Regenerated.
1200         * generated/minloc0_16_r10.c: Regenerated.
1201         * generated/minloc0_16_r16.c: Regenerated.
1202         * generated/minloc0_16_r4.c: Regenerated.
1203         * generated/minloc0_16_r8.c: Regenerated.
1204         * generated/minloc0_4_i1.c: Regenerated.
1205         * generated/minloc0_4_i16.c: Regenerated.
1206         * generated/minloc0_4_i2.c: Regenerated.
1207         * generated/minloc0_4_i4.c: Regenerated.
1208         * generated/minloc0_4_i8.c: Regenerated.
1209         * generated/minloc0_4_r10.c: Regenerated.
1210         * generated/minloc0_4_r16.c: Regenerated.
1211         * generated/minloc0_4_r4.c: Regenerated.
1212         * generated/minloc0_4_r8.c: Regenerated.
1213         * generated/minloc0_8_i1.c: Regenerated.
1214         * generated/minloc0_8_i16.c: Regenerated.
1215         * generated/minloc0_8_i2.c: Regenerated.
1216         * generated/minloc0_8_i4.c: Regenerated.
1217         * generated/minloc0_8_i8.c: Regenerated.
1218         * generated/minloc0_8_r10.c: Regenerated.
1219         * generated/minloc0_8_r16.c: Regenerated.
1220         * generated/minloc0_8_r4.c: Regenerated.
1221         * generated/minloc0_8_r8.c: Regenerated.
1222         * generated/minloc1_16_i1.c: Regenerated.
1223         * generated/minloc1_16_i16.c: Regenerated.
1224         * generated/minloc1_16_i2.c: Regenerated.
1225         * generated/minloc1_16_i4.c: Regenerated.
1226         * generated/minloc1_16_i8.c: Regenerated.
1227         * generated/minloc1_16_r10.c: Regenerated.
1228         * generated/minloc1_16_r16.c: Regenerated.
1229         * generated/minloc1_16_r4.c: Regenerated.
1230         * generated/minloc1_16_r8.c: Regenerated.
1231         * generated/minloc1_4_i1.c: Regenerated.
1232         * generated/minloc1_4_i16.c: Regenerated.
1233         * generated/minloc1_4_i2.c: Regenerated.
1234         * generated/minloc1_4_i4.c: Regenerated.
1235         * generated/minloc1_4_i8.c: Regenerated.
1236         * generated/minloc1_4_r10.c: Regenerated.
1237         * generated/minloc1_4_r16.c: Regenerated.
1238         * generated/minloc1_4_r4.c: Regenerated.
1239         * generated/minloc1_4_r8.c: Regenerated.
1240         * generated/minloc1_8_i1.c: Regenerated.
1241         * generated/minloc1_8_i16.c: Regenerated.
1242         * generated/minloc1_8_i2.c: Regenerated.
1243         * generated/minloc1_8_i4.c: Regenerated.
1244         * generated/minloc1_8_i8.c: Regenerated.
1245         * generated/minloc1_8_r10.c: Regenerated.
1246         * generated/minloc1_8_r16.c: Regenerated.
1247         * generated/minloc1_8_r4.c: Regenerated.
1248         * generated/minloc1_8_r8.c: Regenerated.
1249         * generated/minval_i1.c: Regenerated.
1250         * generated/minval_i16.c: Regenerated.
1251         * generated/minval_i2.c: Regenerated.
1252         * generated/minval_i4.c: Regenerated.
1253         * generated/minval_i8.c: Regenerated.
1254         * generated/minval_r10.c: Regenerated.
1255         * generated/minval_r16.c: Regenerated.
1256         * generated/minval_r4.c: Regenerated.
1257         * generated/minval_r8.c: Regenerated.
1258         * generated/product_c10.c: Regenerated.
1259         * generated/product_c16.c: Regenerated.
1260         * generated/product_c4.c: Regenerated.
1261         * generated/product_c8.c: Regenerated.
1262         * generated/product_i1.c: Regenerated.
1263         * generated/product_i16.c: Regenerated.
1264         * generated/product_i2.c: Regenerated.
1265         * generated/product_i4.c: Regenerated.
1266         * generated/product_i8.c: Regenerated.
1267         * generated/product_r10.c: Regenerated.
1268         * generated/product_r16.c: Regenerated.
1269         * generated/product_r4.c: Regenerated.
1270         * generated/product_r8.c: Regenerated.
1271         * generated/sum_c10.c: Regenerated.
1272         * generated/sum_c16.c: Regenerated.
1273         * generated/sum_c4.c: Regenerated.
1274         * generated/sum_c8.c: Regenerated.
1275         * generated/sum_i1.c: Regenerated.
1276         * generated/sum_i16.c: Regenerated.
1277         * generated/sum_i2.c: Regenerated.
1278         * generated/sum_i4.c: Regenerated.
1279         * generated/sum_i8.c: Regenerated.
1280         * generated/sum_r10.c: Regenerated.
1281         * generated/sum_r16.c: Regenerated.
1282         * generated/sum_r4.c: Regenerated.
1283         * generated/sum_r8.c: Regenerated.
1284
1285 2008-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1286
1287         PR libfortran/34676
1288         * io/list_read.c (next_char): Only save the EOF condition for later if
1289         advance="no".
1290
1291 2008-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1292
1293         PR libfortran/34565
1294         * io/io.h:  Adjust protoypes for open_internal(),
1295         next_array_record() and init_loop_spec().
1296         * io/list_read.c (next_char):  Use argument "finished"
1297         of next_array_record to check for end on internal file.
1298         * io/unit.c:  Calculate the offset for an array
1299         internal file and supply this informatin to open_internal().
1300         * io/unix.c (open_internal):  Set the offset for the internal
1301         file on open.
1302         * io/transfer.c (init_loop_spec):  Calculate the starting
1303         record in case of negative strides.  Return size of 0 for
1304         an empty array.
1305         (next_array_record):  Use an extra flag to signal that the
1306         array is finished.
1307         (next_record_r):  Use the new flag to next_array_record().
1308         (next_record_w):  Likewise.