Replacing HUGE_VALF with llvm::huge_valf in order to work around a warning triggered in MSVC 12.

Patch reviewed by Reid Kleckner and Jim Grosbach.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194533 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Aaron Ballman
2013-11-13 00:15:44 +00:00
parent 328066513d
commit eb36024720
5 changed files with 21 additions and 8 deletions

View File

@@ -541,12 +541,12 @@ namespace llvm {
/// isSpillable - Can this interval be spilled?
bool isSpillable() const {
return weight != HUGE_VALF;
return weight != llvm::huge_valf;
}
/// markNotSpillable - Mark interval as not spillable
void markNotSpillable() {
weight = HUGE_VALF;
weight = llvm::huge_valf;
}
bool operator<(const LiveInterval& other) const {

View File

@@ -21,7 +21,8 @@
#include <cstring>
#ifdef _MSC_VER
# include <intrin.h>
#include <intrin.h>
#include <limits>
#endif
namespace llvm {
@@ -603,6 +604,17 @@ inline int64_t SignExtend64(uint64_t X, unsigned B) {
return int64_t(X << (64 - B)) >> (64 - B);
}
#if defined(_MSC_VER)
// Visual Studio defines the HUGE_VAL class of macros using purposeful
// constant arithmetic overflow, which it then warns on when encountered.
const float huge_valf = std::numeric_limits<float>::infinity();
const double huge_vald = std::numeric_limits<double>::infinity();
const long double huge_vall = std::numeric_limits<long double>::infinity();
#else
const float huge_valf = HUGE_VALF;
const double huge_vald = HUGE_VALD;
const long double huge_vall = HUGE_VALL;
#endif
} // End llvm namespace
#endif