Skip to content

Commit 869cfac

Browse files
committed
Removed few compilation warnings
Signed-off-by: Alexis Jeandet <[email protected]>
1 parent 556d016 commit 869cfac

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

tests/registers_and_fields/main.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ struct reg_mock
1717
}
1818

1919
template <typename U>
20-
inline constexpr auto operator=(const U& bit_field_value) const noexcept -> decltype(
21-
std::declval<U>().value, std::declval<U>().mask, std::declval<reg_mock<address, T>>())
20+
inline constexpr auto operator=(const U& bit_field_value) const noexcept -> std::remove_reference_t<decltype(
21+
std::declval<U>().value, std::declval<U>().mask, std::declval<reg_mock<address, T>>())>
2222
{
2323
reg_mock::value() = bit_field_value.value;
2424
return reg_mock<address, T> {};
2525
}
2626

2727
template <typename U>
28-
inline constexpr auto operator|=(const U& bit_field_value) const noexcept -> decltype(
29-
std::declval<U>().value, std::declval<U>().mask, std::declval<reg_mock<address, T>>())
28+
inline constexpr auto operator|=(const U& bit_field_value) const noexcept -> std::remove_reference_t<decltype(
29+
std::declval<U>().value, std::declval<U>().mask, std::declval<reg_mock<address, T>>())>
3030
{
3131
reg_mock::value() = (reg_mock::value() & ~bit_field_value.mask) | bit_field_value.value;
3232
return reg_mock<address, T> {};

ucpp/register.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,15 @@ struct reg_t
6464
}
6565

6666
template<typename U>
67-
inline constexpr auto operator=(const U& bit_field_value) const noexcept -> decltype (std::declval<U>().value, std::declval<U>().mask, std::declval<reg_t<T,address>>())
67+
inline constexpr auto operator=(const U& bit_field_value) const noexcept -> std::remove_reference_t<decltype (std::declval<U>().value, std::declval<U>().mask, std::declval<reg_t<T,address>>())>
6868
{
6969
static_assert (!readonly,"this register is read-only");
7070
reg_t::value() = bit_field_value.value;
7171
return reg_t<T,address>{};
7272
}
7373

7474
template<typename U>
75-
inline constexpr auto operator|=(const U& bit_field_value) const noexcept -> decltype (std::declval<U>().value, std::declval<U>().mask, std::declval<reg_t<T,address>>())
75+
inline constexpr auto operator|=(const U& bit_field_value) const noexcept -> std::remove_reference_t<decltype (std::declval<U>().value, std::declval<U>().mask, std::declval<reg_t<T,address>>())>
7676
{
7777
static_assert (!readonly,"this register is read-only");
7878
reg_t::value() = (reg_t::value() & ~bit_field_value.mask) | bit_field_value.value;
@@ -186,14 +186,14 @@ struct bitfield_array_t
186186
reg_t::value() = mask & (value << start_index);
187187
else if constexpr(std::conjunction_v<std::is_enum<T>, std::is_same<T,value_t>>)
188188
{
189-
auto v = bitfield_cat<count-1>(static_cast<unsigned long long>(value), width);
189+
auto v = bitfield_cat<count-1>(static_cast<typename reg_t::type>(value), width);
190190
reg_t::value() = mask & (v << start_index);
191191
}
192192
return bitfield_array_t<start_index,width,reg_t,count,value_t>{};
193193
}
194194

195-
constexpr operator typename reg_t::type() noexcept { return typename reg_t::type((int(reg_t::value())& mask)>>start_index); }
196-
constexpr operator typename reg_t::type() const noexcept { return typename reg_t::type((int(reg_t::value())& mask)>>start_index); }
195+
constexpr operator typename reg_t::type() noexcept { return (typename reg_t::type(reg_t::value())& mask)>>start_index; }
196+
constexpr operator typename reg_t::type() const noexcept { return (typename reg_t::type(reg_t::value())& mask)>>start_index; }
197197
};
198198

199199
}

ucpp/stm32/sdmmc.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,18 @@ namespace
4444
{
4545
using namespace ucpp::sdcard::commands;
4646
using ICR = decltype(sdmmc_dev::ICR);
47-
sdmmc_dev::ICR |= sdmmc_dev::ICR.CCRCFAILC.shift(1) | sdmmc_dev::ICR.CTIMEOUTC.shift(1)
48-
| sdmmc_dev::ICR.CMDRENDC.shift(1) | sdmmc_dev::ICR.CMDSENTC.shift(1);
47+
sdmmc_dev::ICR |= ICR::CCRCFAILC.shift(1) | ICR::CTIMEOUTC.shift(1)
48+
| ICR::CMDRENDC.shift(1) | ICR::CMDSENTC.shift(1);
4949
}
5050

5151
template <typename sdmmc_dev>
5252
inline constexpr void data_clear_icr_flags()
5353
{
5454
using namespace ucpp::sdcard::commands;
5555
using ICR = decltype(sdmmc_dev::ICR);
56-
sdmmc_dev::ICR |= sdmmc_dev::ICR.DCRCFAILC.shift(1) | sdmmc_dev::ICR.DTIMEOUTC.shift(1)
57-
| sdmmc_dev::ICR.TXUNDERRC.shift(1) | sdmmc_dev::ICR.RXOVERRC.shift(1)
58-
| sdmmc_dev::ICR.DATAENDC.shift(1) | sdmmc_dev::ICR.DBCKENDC.shift(1);
56+
sdmmc_dev::ICR |= ICR::DCRCFAILC.shift(1) | ICR::DTIMEOUTC.shift(1)
57+
| ICR::TXUNDERRC.shift(1) | ICR::RXOVERRC.shift(1)
58+
| ICR::DATAENDC.shift(1) | ICR::DBCKENDC.shift(1);
5959
}
6060

6161
template <typename sdmmc_dev, typename CMD>

0 commit comments

Comments
 (0)