Mercurial > hg > CbC > CbC_gcc
comparison libgfortran/libgfortran.h @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* Common declarations for all of libgfortran. | 1 /* Common declarations for all of libgfortran. |
2 Copyright (C) 2002-2018 Free Software Foundation, Inc. | 2 Copyright (C) 2002-2020 Free Software Foundation, Inc. |
3 Contributed by Paul Brook <paul@nowt.org>, and | 3 Contributed by Paul Brook <paul@nowt.org>, and |
4 Andy Vaught <andy@xena.eas.asu.edu> | 4 Andy Vaught <andy@xena.eas.asu.edu> |
5 | 5 |
6 This file is part of the GNU Fortran runtime library (libgfortran). | 6 This file is part of the GNU Fortran runtime library (libgfortran). |
7 | 7 |
200 # define export_proto_np(x) extern char swallow_semicolon | 200 # define export_proto_np(x) extern char swallow_semicolon |
201 # define iexport_proto(x) internal_proto(x) | 201 # define iexport_proto(x) internal_proto(x) |
202 # define iexport(x) iexport1(x, IPREFIX(x)) | 202 # define iexport(x) iexport1(x, IPREFIX(x)) |
203 # define iexport1(x,y) iexport2(x,y) | 203 # define iexport1(x,y) iexport2(x,y) |
204 # define iexport2(x,y) \ | 204 # define iexport2(x,y) \ |
205 extern __typeof(x) PREFIX(x) __attribute__((__alias__(#y))) | 205 extern __typeof(x) PREFIX(x) __attribute__((__alias__(#y), __copy__ (x))) |
206 #else | 206 #else |
207 # define export_proto(x) sym_rename(x, PREFIX(x)) | 207 # define export_proto(x) sym_rename(x, PREFIX(x)) |
208 # define export_proto_np(x) extern char swallow_semicolon | 208 # define export_proto_np(x) extern char swallow_semicolon |
209 # define iexport_proto(x) export_proto(x) | 209 # define iexport_proto(x) export_proto(x) |
210 # define iexport(x) extern char swallow_semicolon | 210 # define iexport(x) extern char swallow_semicolon |
357 typedef GFC_ARRAY_DESCRIPTOR (char) gfc_array_char; | 357 typedef GFC_ARRAY_DESCRIPTOR (char) gfc_array_char; |
358 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_1) gfc_array_i1; | 358 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_1) gfc_array_i1; |
359 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_2) gfc_array_i2; | 359 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_2) gfc_array_i2; |
360 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_4) gfc_array_i4; | 360 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_4) gfc_array_i4; |
361 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_8) gfc_array_i8; | 361 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_8) gfc_array_i8; |
362 typedef GFC_ARRAY_DESCRIPTOR (index_type) gfc_array_index_type; | |
362 #ifdef HAVE_GFC_INTEGER_16 | 363 #ifdef HAVE_GFC_INTEGER_16 |
363 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_16) gfc_array_i16; | 364 typedef GFC_ARRAY_DESCRIPTOR (GFC_INTEGER_16) gfc_array_i16; |
364 #endif | 365 #endif |
365 typedef GFC_ARRAY_DESCRIPTOR (GFC_REAL_4) gfc_array_r4; | 366 typedef GFC_ARRAY_DESCRIPTOR (GFC_REAL_4) gfc_array_r4; |
366 typedef GFC_ARRAY_DESCRIPTOR (GFC_REAL_8) gfc_array_r8; | 367 typedef GFC_ARRAY_DESCRIPTOR (GFC_REAL_8) gfc_array_r8; |
383 typedef GFC_ARRAY_DESCRIPTOR (GFC_LOGICAL_4) gfc_array_l4; | 384 typedef GFC_ARRAY_DESCRIPTOR (GFC_LOGICAL_4) gfc_array_l4; |
384 typedef GFC_ARRAY_DESCRIPTOR (GFC_LOGICAL_8) gfc_array_l8; | 385 typedef GFC_ARRAY_DESCRIPTOR (GFC_LOGICAL_8) gfc_array_l8; |
385 #ifdef HAVE_GFC_LOGICAL_16 | 386 #ifdef HAVE_GFC_LOGICAL_16 |
386 typedef GFC_ARRAY_DESCRIPTOR (GFC_LOGICAL_16) gfc_array_l16; | 387 typedef GFC_ARRAY_DESCRIPTOR (GFC_LOGICAL_16) gfc_array_l16; |
387 #endif | 388 #endif |
388 typedef gfc_array_i1 gfc_array_s1; | 389 |
389 typedef gfc_array_i4 gfc_array_s4; | 390 typedef GFC_ARRAY_DESCRIPTOR (GFC_UINTEGER_1) gfc_array_s1; |
391 typedef GFC_ARRAY_DESCRIPTOR (GFC_UINTEGER_4) gfc_array_s4; | |
390 | 392 |
391 /* These are for when you actually want to declare a descriptor, as | 393 /* These are for when you actually want to declare a descriptor, as |
392 opposed to a pointer to it. */ | 394 opposed to a pointer to it. */ |
393 | 395 |
394 #define GFC_FULL_ARRAY_DESCRIPTOR(r, type) \ | 396 #define GFC_FULL_ARRAY_DESCRIPTOR(r, type) \ |
536 int separator_len; | 538 int separator_len; |
537 const char *separator; | 539 const char *separator; |
538 | 540 |
539 int all_unbuffered, unbuffered_preconnected; | 541 int all_unbuffered, unbuffered_preconnected; |
540 int fpe, backtrace; | 542 int fpe, backtrace; |
543 int unformatted_buffer_size, formatted_buffer_size; | |
541 } | 544 } |
542 options_t; | 545 options_t; |
543 | 546 |
544 extern options_t options; | 547 extern options_t options; |
545 internal_proto(options); | 548 internal_proto(options); |
723 internal_proto(gfc_xtoa); | 726 internal_proto(gfc_xtoa); |
724 | 727 |
725 extern _Noreturn void os_error (const char *); | 728 extern _Noreturn void os_error (const char *); |
726 iexport_proto(os_error); | 729 iexport_proto(os_error); |
727 | 730 |
731 extern _Noreturn void os_error_at (const char *, const char *, ...) | |
732 __attribute__ ((format (gfc_printf, 2, 3))); | |
733 iexport_proto(os_error_at); | |
734 | |
728 extern void show_locus (st_parameter_common *); | 735 extern void show_locus (st_parameter_common *); |
729 internal_proto(show_locus); | 736 internal_proto(show_locus); |
730 | 737 |
731 extern _Noreturn void runtime_error (const char *, ...) | 738 extern _Noreturn void runtime_error (const char *, ...) |
732 __attribute__ ((format (gfc_printf, 1, 2))); | 739 __attribute__ ((format (gfc_printf, 1, 2))); |
1371 typedef GFC_ARRAY_DESCRIPTOR (void) array_t; | 1378 typedef GFC_ARRAY_DESCRIPTOR (void) array_t; |
1372 | 1379 |
1373 extern index_type size0 (const array_t * array); | 1380 extern index_type size0 (const array_t * array); |
1374 iexport_proto(size0); | 1381 iexport_proto(size0); |
1375 | 1382 |
1383 /* is_contiguous.c */ | |
1384 | |
1385 extern GFC_LOGICAL_4 is_contiguous0 (const array_t * const restrict array); | |
1386 iexport_proto(is_contiguous0); | |
1387 | |
1376 /* bounds.c */ | 1388 /* bounds.c */ |
1377 | 1389 |
1378 extern void bounds_equal_extents (array_t *, array_t *, const char *, | 1390 extern void bounds_equal_extents (array_t *, array_t *, const char *, |
1379 const char *); | 1391 const char *); |
1380 internal_proto(bounds_equal_extents); | 1392 internal_proto(bounds_equal_extents); |
1755 const gfc_array_i16 * const restrict, | 1767 const gfc_array_i16 * const restrict, |
1756 const GFC_INTEGER_16 * const restrict); | 1768 const GFC_INTEGER_16 * const restrict); |
1757 internal_proto(cshift1_16_c16); | 1769 internal_proto(cshift1_16_c16); |
1758 #endif | 1770 #endif |
1759 | 1771 |
1760 /* Define this if we support asynchronous I/O on this platform. This | 1772 /* We always have these. */ |
1761 currently requires weak symbols. */ | 1773 |
1774 #define HAVE_GFC_UINTEGER_1 1 | |
1775 #define HAVE_GFC_UINTEGER_4 1 | |
1762 | 1776 |
1763 #endif /* LIBGFOR_H */ | 1777 #endif /* LIBGFOR_H */ |