OSDN Git Service

VMCore/AsmWriter.cpp: Tweak to check #INF and #NAN earlier.
authorNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 16 Feb 2012 08:12:24 +0000 (08:12 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 16 Feb 2012 08:12:24 +0000 (08:12 +0000)
With MSVCRT, prior checker missed emission of #INF and #NAN.

FIXME: Checking should be simpler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150667 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/AsmWriter.cpp

index 21d4566..6874906 100644 (file)
@@ -719,7 +719,9 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV,
       bool ignored;
       bool isHalf = &CFP->getValueAPF().getSemantics()==&APFloat::IEEEhalf;
       bool isDouble = &CFP->getValueAPF().getSemantics()==&APFloat::IEEEdouble;
-      if (!isHalf) {
+      bool isInf = CFP->getValueAPF().isInfinity();
+      bool isNaN = CFP->getValueAPF().isNaN();
+      if (!isHalf && !isInf && !isNaN) {
         double Val = isDouble ? CFP->getValueAPF().convertToDouble() :
                                 CFP->getValueAPF().convertToFloat();
         SmallString<128> StrVal;