Patch from github.

At the moment it is not possible to build ROCr with Clang. This is
a spurious limitation. The present PR addresses it by guarding GCC
only flags and by fixing some additional warnings that Clang triggers;
one of said warnings did outline a rather interesting issue with math
being done on void*s. - AlexVlx

Void ptr arithmetic had already been fixed in amd-master branch.

Change-Id: I5ee97e20b5c40b10dd73facecabe75f02ba46462
This commit is contained in:
Sean Keely
2019-04-18 19:18:31 -05:00
parent 0c6b9532d4
commit e89f9807f1
8 changed files with 26 additions and 21 deletions
@@ -122,7 +122,7 @@ class QueueWrapper : public Queue {
void SetProfiling(bool enabled) override { wrapped->SetProfiling(enabled); }
protected:
void do_set_public_handle(hsa_queue_t* handle) {
void do_set_public_handle(hsa_queue_t* handle) override {
public_handle_ = handle;
wrapped->set_public_handle(wrapped.get(), handle);
}
@@ -243,12 +243,12 @@ class InterceptQueue : public QueueProxy, private LocalSignal, public DoorbellSi
/// @brief Update signal value using Relaxed semantics
///
/// @param value Value of signal to update with
void StoreRelaxed(hsa_signal_value_t value);
void StoreRelaxed(hsa_signal_value_t value) override;
/// @brief Update signal value using Release semantics
///
/// @param value Value of signal to update with
void StoreRelease(hsa_signal_value_t value) {
void StoreRelease(hsa_signal_value_t value) override {
std::atomic_thread_fence(std::memory_order_release);
StoreRelaxed(value);
}
@@ -257,7 +257,7 @@ class InterceptQueue : public QueueProxy, private LocalSignal, public DoorbellSi
static __forceinline bool IsType(core::Queue* queue) { return queue->IsType(&rtti_id_); }
protected:
bool _IsA(Queue::rtti_t id) const { return id == &rtti_id_; }
bool _IsA(Queue::rtti_t id) const override { return id == &rtti_id_; }
private:
static int rtti_id_;