]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgfortran/io/size_from_kind.c
Update copyright years.
[thirdparty/gcc.git] / libgfortran / io / size_from_kind.c
CommitLineData
a945c346 1/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
e5ef4b3b
JB
2 Contributed by Janne Blomqvist
3
4This file is part of the GNU Fortran runtime library (libgfortran).
5
6Libgfortran is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
748086b7 8the Free Software Foundation; either version 3, or (at your option)
e5ef4b3b
JB
9any later version.
10
e5ef4b3b
JB
11Libgfortran is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
748086b7
JJ
16Under Section 7 of GPL version 3, you are granted additional
17permissions described in the GCC Runtime Library Exception, version
183.1, as published by the Free Software Foundation.
19
20You should have received a copy of the GNU General Public License and
21a copy of the GCC Runtime Library Exception along with this program;
22see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23<http://www.gnu.org/licenses/>. */
e5ef4b3b
JB
24
25
26/* This file contains utility functions for determining the size of a
27 variable given its kind. */
28
29#include "io.h"
30
31size_t
32size_from_real_kind (int kind)
33{
34 switch (kind)
35 {
36#ifdef HAVE_GFC_REAL_4
37 case 4:
38 return sizeof (GFC_REAL_4);
39#endif
40#ifdef HAVE_GFC_REAL_8
41 case 8:
42 return sizeof (GFC_REAL_8);
43#endif
44#ifdef HAVE_GFC_REAL_10
45 case 10:
46 return sizeof (GFC_REAL_10);
47#endif
48#ifdef HAVE_GFC_REAL_16
49 case 16:
50 return sizeof (GFC_REAL_16);
07c60b8e
JJ
51#endif
52#ifdef HAVE_GFC_REAL_17
53 case 17:
54 return sizeof (GFC_REAL_17);
e5ef4b3b
JB
55#endif
56 default:
57 return kind;
58 }
59}
60
61
62size_t
63size_from_complex_kind (int kind)
64{
65 switch (kind)
66 {
67#ifdef HAVE_GFC_COMPLEX_4
68 case 4:
69 return sizeof (GFC_COMPLEX_4);
70#endif
71#ifdef HAVE_GFC_COMPLEX_8
72 case 8:
73 return sizeof (GFC_COMPLEX_8);
74#endif
75#ifdef HAVE_GFC_COMPLEX_10
76 case 10:
77 return sizeof (GFC_COMPLEX_10);
78#endif
79#ifdef HAVE_GFC_COMPLEX_16
80 case 16:
81 return sizeof (GFC_COMPLEX_16);
07c60b8e
JJ
82#endif
83#ifdef HAVE_GFC_COMPLEX_17
84 case 17:
85 return sizeof (GFC_COMPLEX_17);
e5ef4b3b
JB
86#endif
87 default:
88 return 2 * kind;
89 }
90}
91