]> 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
a5544970 1/* Copyright (C) 2005-2019 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);
51#endif
52 default:
53 return kind;
54 }
55}
56
57
58size_t
59size_from_complex_kind (int kind)
60{
61 switch (kind)
62 {
63#ifdef HAVE_GFC_COMPLEX_4
64 case 4:
65 return sizeof (GFC_COMPLEX_4);
66#endif
67#ifdef HAVE_GFC_COMPLEX_8
68 case 8:
69 return sizeof (GFC_COMPLEX_8);
70#endif
71#ifdef HAVE_GFC_COMPLEX_10
72 case 10:
73 return sizeof (GFC_COMPLEX_10);
74#endif
75#ifdef HAVE_GFC_COMPLEX_16
76 case 16:
77 return sizeof (GFC_COMPLEX_16);
78#endif
79 default:
80 return 2 * kind;
81 }
82}
83