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 */