Commit b0a6a569 authored by Max Kellermann's avatar Max Kellermann

pcm/FloatConvert: add `static_assert` on the factor

This assertion currently fails for S32 due to integer overflow (#380).
parent 7aa1dcee
...@@ -35,6 +35,7 @@ struct FloatToIntegerSampleConvert { ...@@ -35,6 +35,7 @@ struct FloatToIntegerSampleConvert {
typedef typename DstTraits::value_type DV; typedef typename DstTraits::value_type DV;
static constexpr SV factor = 1 << (DstTraits::BITS - 1); static constexpr SV factor = 1 << (DstTraits::BITS - 1);
static_assert(factor > 0, "Wrong factor");
gcc_const gcc_const
static DV Convert(SV src) noexcept { static DV Convert(SV src) noexcept {
...@@ -54,6 +55,7 @@ struct IntegerToFloatSampleConvert { ...@@ -54,6 +55,7 @@ struct IntegerToFloatSampleConvert {
typedef typename DstTraits::value_type DV; typedef typename DstTraits::value_type DV;
static constexpr DV factor = 0.5 / (1 << (SrcTraits::BITS - 2)); static constexpr DV factor = 0.5 / (1 << (SrcTraits::BITS - 2));
static_assert(factor > 0, "Wrong factor");
gcc_const gcc_const
static DV Convert(SV src) noexcept { static DV Convert(SV src) noexcept {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment