Skip to content

Commit 1252411

Browse files
committed
Add float bits in platform
1 parent d69955c commit 1252411

4 files changed

Lines changed: 36 additions & 0 deletions

File tree

lib/cppcheck.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,9 @@ static void createDumpFile(const Settings& settings,
397397
<< " int_bit=\"" << static_cast<unsigned>(settings.platform.int_bit) << '\"'
398398
<< " long_bit=\"" << static_cast<unsigned>(settings.platform.long_bit) << '\"'
399399
<< " long_long_bit=\"" << static_cast<unsigned>(settings.platform.long_long_bit) << '\"'
400+
<< " float_bit=\"" << static_cast<unsigned>(settings.platform.float_bit) << '\"'
401+
<< " double_bit=\"" << static_cast<unsigned>(settings.platform.double_bit) << '\"'
402+
<< " long_double_bit=\"" << static_cast<unsigned>(settings.platform.long_double_bit) << '\"'
400403
<< " pointer_bit=\"" << (settings.platform.sizeof_pointer * settings.platform.char_bit) << '\"'
401404
<< " wchar_t_bit=\"" << (settings.platform.sizeof_wchar_t * settings.platform.char_bit) << '\"'
402405
<< " size_t_bit=\"" << (settings.platform.sizeof_size_t * settings.platform.char_bit) << '\"'

lib/platform.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ bool Platform::set(Type t)
6060
int_bit = char_bit * sizeof_int;
6161
long_bit = char_bit * sizeof_long;
6262
long_long_bit = char_bit * sizeof_long_long;
63+
float_bit = char_bit * sizeof_float;
64+
double_bit = char_bit * sizeof_double;
65+
long_double_bit = char_bit * sizeof_long_double;
6366
return true;
6467
case Type::Win32W:
6568
case Type::Win32A:
@@ -81,6 +84,9 @@ bool Platform::set(Type t)
8184
int_bit = char_bit * sizeof_int;
8285
long_bit = char_bit * sizeof_long;
8386
long_long_bit = char_bit * sizeof_long_long;
87+
float_bit = char_bit * sizeof_float;
88+
double_bit = char_bit * sizeof_double;
89+
long_double_bit = char_bit * sizeof_long_double;
8490
return true;
8591
case Type::Win64:
8692
type = t;
@@ -101,6 +107,9 @@ bool Platform::set(Type t)
101107
int_bit = char_bit * sizeof_int;
102108
long_bit = char_bit * sizeof_long;
103109
long_long_bit = char_bit * sizeof_long_long;
110+
float_bit = char_bit * sizeof_float;
111+
double_bit = char_bit * sizeof_double;
112+
long_double_bit = char_bit * sizeof_long_double;
104113
return true;
105114
case Type::Unix32:
106115
type = t;
@@ -121,6 +130,9 @@ bool Platform::set(Type t)
121130
int_bit = char_bit * sizeof_int;
122131
long_bit = char_bit * sizeof_long;
123132
long_long_bit = char_bit * sizeof_long_long;
133+
float_bit = char_bit * sizeof_float;
134+
double_bit = char_bit * sizeof_double;
135+
long_double_bit = char_bit * sizeof_long_double;
124136
return true;
125137
case Type::Unix64:
126138
type = t;
@@ -141,6 +153,9 @@ bool Platform::set(Type t)
141153
int_bit = char_bit * sizeof_int;
142154
long_bit = char_bit * sizeof_long;
143155
long_long_bit = char_bit * sizeof_long_long;
156+
float_bit = char_bit * sizeof_float;
157+
double_bit = char_bit * sizeof_double;
158+
long_double_bit = char_bit * sizeof_long_double;
144159
return true;
145160
case Type::File:
146161
// sizes are not set.

lib/platform.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ class CPPCHECKLIB Platform {
9999
std::uint8_t int_bit; /// bits in int
100100
std::uint8_t long_bit; /// bits in long
101101
std::uint8_t long_long_bit; /// bits in long long
102+
std::uint8_t float_bit; /// bits in float
103+
std::uint8_t double_bit; /// bits in double
104+
std::uint8_t long_double_bit; /// bits in long double
102105

103106
/** size of standard types */
104107
std::size_t sizeof_bool;

test/testplatform.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ class TestPlatform : public TestFixture {
111111
ASSERT_EQUALS(32, platform.int_bit);
112112
ASSERT_EQUALS(64, platform.long_bit);
113113
ASSERT_EQUALS(64, platform.long_long_bit);
114+
ASSERT_EQUALS(32, platform.float_bit);
115+
ASSERT_EQUALS(64, platform.double_bit);
116+
ASSERT_EQUALS(128, platform.long_double_bit);
114117
}
115118

116119
void valid_config_win32w() const {
@@ -136,6 +139,12 @@ class TestPlatform : public TestFixture {
136139
ASSERT_EQUALS(32, platform.int_bit);
137140
ASSERT_EQUALS(32, platform.long_bit);
138141
ASSERT_EQUALS(64, platform.long_long_bit);
142+
ASSERT_EQUALS(32, platform.float_bit);
143+
ASSERT_EQUALS(64, platform.double_bit);
144+
ASSERT_EQUALS(64, platform.long_double_bit);
145+
ASSERT_EQUALS(32, platform.float_bit);
146+
ASSERT_EQUALS(64, platform.double_bit);
147+
ASSERT_EQUALS(64, platform.long_double_bit);
139148
}
140149

141150
void valid_config_unix32() const {
@@ -161,6 +170,9 @@ class TestPlatform : public TestFixture {
161170
ASSERT_EQUALS(32, platform.int_bit);
162171
ASSERT_EQUALS(32, platform.long_bit);
163172
ASSERT_EQUALS(64, platform.long_long_bit);
173+
ASSERT_EQUALS(32, platform.float_bit);
174+
ASSERT_EQUALS(64, platform.double_bit);
175+
ASSERT_EQUALS(96, platform.long_double_bit);
164176
}
165177

166178
void valid_config_win64() const {
@@ -186,6 +198,9 @@ class TestPlatform : public TestFixture {
186198
ASSERT_EQUALS(32, platform.int_bit);
187199
ASSERT_EQUALS(32, platform.long_bit);
188200
ASSERT_EQUALS(64, platform.long_long_bit);
201+
ASSERT_EQUALS(32, platform.float_bit);
202+
ASSERT_EQUALS(64, platform.double_bit);
203+
ASSERT_EQUALS(64, platform.long_double_bit);
189204
}
190205

191206
void valid_config_file_1() const {

0 commit comments

Comments
 (0)