mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-23 17:29:19 +00:00
AsmPrinter: Suppress warnings on GCC from r238362, NFC
GCC seems to have some overzealous warnings about strict aliasing. Rafael reports that this patch suppresses them on GCC 4.9, and I'm hoping this will work for GCC 4.7 as well. I'll watch [1] and iterate if necessary. [1]: http://bb.pgr.jp/builders/clang-3stage-x86_64-linux/builds/8597 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238447 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fd64e0f71a
commit
3899951490
@ -340,11 +340,11 @@ private:
|
|||||||
new (reinterpret_cast<void *>(Val.buffer)) T(V);
|
new (reinterpret_cast<void *>(Val.buffer)) T(V);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T> T &get() { return *reinterpret_cast<T *>(Val.buffer); }
|
template <class T> T *get() { return reinterpret_cast<T *>(Val.buffer); }
|
||||||
template <class T> const T &get() const {
|
template <class T> const T *get() const {
|
||||||
return *reinterpret_cast<const T *>(Val.buffer);
|
return reinterpret_cast<const T *>(Val.buffer);
|
||||||
}
|
}
|
||||||
template <class T> void destruct() { get<T>().~T(); }
|
template <class T> void destruct() { get<T>()->~T(); }
|
||||||
|
|
||||||
/// Destroy the underlying value.
|
/// Destroy the underlying value.
|
||||||
///
|
///
|
||||||
@ -378,11 +378,11 @@ private:
|
|||||||
return;
|
return;
|
||||||
#define HANDLE_DIEVALUE_SMALL(T) \
|
#define HANDLE_DIEVALUE_SMALL(T) \
|
||||||
case is##T: \
|
case is##T: \
|
||||||
construct<DIE##T>(X.get<DIE##T>()); \
|
construct<DIE##T>(*X.get<DIE##T>()); \
|
||||||
return;
|
return;
|
||||||
#define HANDLE_DIEVALUE_LARGE(T) \
|
#define HANDLE_DIEVALUE_LARGE(T) \
|
||||||
case is##T: \
|
case is##T: \
|
||||||
construct<const DIE##T *>(X.get<const DIE##T *>()); \
|
construct<const DIE##T *>(*X.get<const DIE##T *>()); \
|
||||||
return;
|
return;
|
||||||
#include "llvm/CodeGen/DIEValue.def"
|
#include "llvm/CodeGen/DIEValue.def"
|
||||||
}
|
}
|
||||||
@ -425,12 +425,12 @@ public:
|
|||||||
#define HANDLE_DIEVALUE_SMALL(T) \
|
#define HANDLE_DIEVALUE_SMALL(T) \
|
||||||
const DIE##T &getDIE##T() const { \
|
const DIE##T &getDIE##T() const { \
|
||||||
assert(getType() == is##T && "Expected " #T); \
|
assert(getType() == is##T && "Expected " #T); \
|
||||||
return get<DIE##T>(); \
|
return *get<DIE##T>(); \
|
||||||
}
|
}
|
||||||
#define HANDLE_DIEVALUE_LARGE(T) \
|
#define HANDLE_DIEVALUE_LARGE(T) \
|
||||||
const DIE##T &getDIE##T() const { \
|
const DIE##T &getDIE##T() const { \
|
||||||
assert(getType() == is##T && "Expected " #T); \
|
assert(getType() == is##T && "Expected " #T); \
|
||||||
return *get<const DIE##T *>(); \
|
return **get<const DIE##T *>(); \
|
||||||
}
|
}
|
||||||
#include "llvm/CodeGen/DIEValue.def"
|
#include "llvm/CodeGen/DIEValue.def"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user