annotate libgfortran/io/transfer128.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
1 /* Copyright (C) 2010-2020 Free Software Foundation, Inc.
111
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 This file is part of the GNU Fortran runtime library (libgfortran).
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 Libgfortran is free software; you can redistribute it and/or modify
kono
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
kono
parents:
diff changeset
7 the Free Software Foundation; either version 3, or (at your option)
kono
parents:
diff changeset
8 any later version.
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 Libgfortran is distributed in the hope that it will be useful,
kono
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
kono
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
kono
parents:
diff changeset
13 GNU General Public License for more details.
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 Under Section 7 of GPL version 3, you are granted additional
kono
parents:
diff changeset
16 permissions described in the GCC Runtime Library Exception, version
kono
parents:
diff changeset
17 3.1, as published by the Free Software Foundation.
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 You should have received a copy of the GNU General Public License and
kono
parents:
diff changeset
20 a copy of the GCC Runtime Library Exception along with this program;
kono
parents:
diff changeset
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
kono
parents:
diff changeset
22 <http://www.gnu.org/licenses/>. */
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 /* Note: This file needs to be a separate translation unit (.o file)
kono
parents:
diff changeset
25 to make sure that for static linkage, the libquad dependence only
kono
parents:
diff changeset
26 occurs if needed. */
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 #include "io.h"
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 #if defined(GFC_REAL_16_IS_FLOAT128)
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 /* The prototypes for the called procedures in transfer.c. */
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 extern void transfer_real (st_parameter_dt *, void *, int);
kono
parents:
diff changeset
36 export_proto(transfer_real);
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 extern void transfer_real_write (st_parameter_dt *, void *, int);
kono
parents:
diff changeset
39 export_proto(transfer_real_write);
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 extern void transfer_complex (st_parameter_dt *, void *, int);
kono
parents:
diff changeset
42 export_proto(transfer_complex);
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 extern void transfer_complex_write (st_parameter_dt *, void *, int);
kono
parents:
diff changeset
45 export_proto(transfer_complex_write);
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 /* The prototypes for the procedures in this file. */
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 extern void transfer_real128 (st_parameter_dt *, void *, int);
kono
parents:
diff changeset
51 export_proto(transfer_real128);
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 extern void transfer_real128_write (st_parameter_dt *, void *, int);
kono
parents:
diff changeset
54 export_proto(transfer_real128_write);
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 extern void transfer_complex128 (st_parameter_dt *, void *, int);
kono
parents:
diff changeset
57 export_proto(transfer_complex128);
kono
parents:
diff changeset
58
kono
parents:
diff changeset
59 extern void transfer_complex128_write (st_parameter_dt *, void *, int);
kono
parents:
diff changeset
60 export_proto(transfer_complex128_write);
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 /* Make sure that libquadmath is pulled in. The functions strtoflt128
kono
parents:
diff changeset
64 and quadmath_snprintf are weakly referrenced in convert_real and
kono
parents:
diff changeset
65 write_float; the pointer assignment with USED attribute make sure
kono
parents:
diff changeset
66 that there is a non-weakref dependence if the quadmath functions
kono
parents:
diff changeset
67 are used. That avoids segfault when libquadmath is statically linked. */
kono
parents:
diff changeset
68 static void __attribute__((used)) *tmp1 = strtoflt128;
kono
parents:
diff changeset
69 static void __attribute__((used)) *tmp2 = quadmath_snprintf;
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 void
kono
parents:
diff changeset
72 transfer_real128 (st_parameter_dt *dtp, void *p, int kind)
kono
parents:
diff changeset
73 {
kono
parents:
diff changeset
74 transfer_real (dtp, p, kind);
kono
parents:
diff changeset
75 }
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77
kono
parents:
diff changeset
78 void
kono
parents:
diff changeset
79 transfer_real128_write (st_parameter_dt *dtp, void *p, int kind)
kono
parents:
diff changeset
80 {
kono
parents:
diff changeset
81 transfer_real (dtp, p, kind);
kono
parents:
diff changeset
82 }
kono
parents:
diff changeset
83
kono
parents:
diff changeset
84
kono
parents:
diff changeset
85 void
kono
parents:
diff changeset
86 transfer_complex128 (st_parameter_dt *dtp, void *p, int kind)
kono
parents:
diff changeset
87 {
kono
parents:
diff changeset
88 transfer_complex (dtp, p, kind);
kono
parents:
diff changeset
89 }
kono
parents:
diff changeset
90
kono
parents:
diff changeset
91
kono
parents:
diff changeset
92 void
kono
parents:
diff changeset
93 transfer_complex128_write (st_parameter_dt *dtp, void *p, int kind)
kono
parents:
diff changeset
94 {
kono
parents:
diff changeset
95 transfer_complex_write (dtp, p, kind);
kono
parents:
diff changeset
96 }
kono
parents:
diff changeset
97 #endif