GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: src/zserio/SizeConvertUtil.cpp Lines: 7 7 100.0 %
Date: 2023-12-13 14:51:09 Branches: 5 8 62.5 %

Line Branch Exec Source
1
#include <cstddef>
2
#include <limits>
3
4
#include "zserio/CppRuntimeException.h"
5
#include "zserio/SizeConvertUtil.h"
6
#include "zserio/RuntimeArch.h"
7
8
namespace zserio
9
{
10
11
5745
uint32_t convertSizeToUInt32(size_t value)
12
{
13
#ifdef ZSERIO_RUNTIME_64BIT
14
5745
    if (value > static_cast<size_t>(std::numeric_limits<uint32_t>::max()))
15
    {
16

4
        throw CppRuntimeException("SizeConvertUtil: size_t value '") << value <<
17
6
                "' is out of bounds for conversion to uint32_t type!";
18
    }
19
#endif
20
21
5743
    return static_cast<uint32_t>(value);
22
}
23
24
11
size_t convertUInt64ToSize(uint64_t value)
25
{
26
#ifndef ZSERIO_RUNTIME_64BIT
27
    if (value > static_cast<uint64_t>(std::numeric_limits<size_t>::max()))
28
    {
29
        throw CppRuntimeException("SizeConvertUtil: uint64_t value '") << value <<
30
                "' is out of bounds for conversion to size_t type!";
31
    }
32
#endif
33
34
11
    return static_cast<size_t>(value);
35
}
36
37
} // namespace zserio