core: Fix clang build

Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.

Fixes #4795
This commit is contained in:
Lioncash 2020-10-15 14:49:45 -04:00
parent ca416a0fb8
commit be1954e04c
105 changed files with 906 additions and 667 deletions

View file

@ -41,8 +41,8 @@ public:
Fiber(const Fiber&) = delete;
Fiber& operator=(const Fiber&) = delete;
Fiber(Fiber&&) = default;
Fiber& operator=(Fiber&&) = default;
Fiber(Fiber&&) = delete;
Fiber& operator=(Fiber&&) = delete;
/// Yields control from Fiber 'from' to Fiber 'to'
/// Fiber 'from' must be the currently running fiber.

View file

@ -189,7 +189,8 @@ template <typename T>
return {};
}
last = std::min<std::size_t>(last, vector.size());
return std::vector<T>(vector.begin() + first, vector.begin() + first + last);
return std::vector<T>(vector.begin() + static_cast<std::ptrdiff_t>(first),
vector.begin() + static_cast<std::ptrdiff_t>(first + last));
}
enum class DirectorySeparator {

View file

@ -27,7 +27,7 @@ struct Rectangle {
if constexpr (std::is_floating_point_v<T>) {
return std::abs(right - left);
} else {
return std::abs(static_cast<std::make_signed_t<T>>(right - left));
return static_cast<T>(std::abs(static_cast<std::make_signed_t<T>>(right - left)));
}
}
@ -35,7 +35,7 @@ struct Rectangle {
if constexpr (std::is_floating_point_v<T>) {
return std::abs(bottom - top);
} else {
return std::abs(static_cast<std::make_signed_t<T>>(bottom - top));
return static_cast<T>(std::abs(static_cast<std::make_signed_t<T>>(bottom - top)));
}
}

View file

@ -320,7 +320,7 @@ private:
}
const auto begin_range = list.begin();
const auto end_range = std::next(begin_range, shift);
const auto end_range = std::next(begin_range, static_cast<std::ptrdiff_t>(shift));
list.splice(list.end(), list, begin_range, end_range);
}

View file

@ -15,6 +15,14 @@ namespace Common {
*/
class SpinLock {
public:
SpinLock() = default;
SpinLock(const SpinLock&) = delete;
SpinLock& operator=(const SpinLock&) = delete;
SpinLock(SpinLock&&) = delete;
SpinLock& operator=(SpinLock&&) = delete;
void lock();
void unlock();
[[nodiscard]] bool try_lock();

View file

@ -504,35 +504,35 @@ bool operator==(const S& p, const swap_struct_t<T, F> v) {
template <typename T>
struct swap_64_t {
static T swap(T x) {
return static_cast<T>(Common::swap64(x));
return static_cast<T>(Common::swap64(static_cast<u64>(x)));
}
};
template <typename T>
struct swap_32_t {
static T swap(T x) {
return static_cast<T>(Common::swap32(x));
return static_cast<T>(Common::swap32(static_cast<u32>(x)));
}
};
template <typename T>
struct swap_16_t {
static T swap(T x) {
return static_cast<T>(Common::swap16(x));
return static_cast<T>(Common::swap16(static_cast<u16>(x)));
}
};
template <typename T>
struct swap_float_t {
static T swap(T x) {
return static_cast<T>(Common::swapf(x));
return static_cast<T>(Common::swapf(static_cast<float>(x)));
}
};
template <typename T>
struct swap_double_t {
static T swap(T x) {
return static_cast<T>(Common::swapd(x));
return static_cast<T>(Common::swapd(static_cast<double>(x)));
}
};

View file

@ -33,7 +33,7 @@ struct ThreadQueueList {
}
}
return -1;
return static_cast<Priority>(-1);
}
[[nodiscard]] T get_first() const {
@ -156,7 +156,7 @@ private:
void link(Priority priority) {
Queue* cur = &queues[priority];
for (int i = priority - 1; i >= 0; --i) {
for (auto i = static_cast<int>(priority - 1); i >= 0; --i) {
if (queues[i].next_nonempty != UnlinkedTag()) {
cur->next_nonempty = queues[i].next_nonempty;
queues[i].next_nonempty = cur;