diff --git a/Lex/LiteralSupport.cpp b/Lex/LiteralSupport.cpp
index 21ead21..ebc6627 100644
--- a/Lex/LiteralSupport.cpp
+++ b/Lex/LiteralSupport.cpp
@@ -410,17 +410,27 @@
 }
 
 llvm::APFloat NumericLiteralParser::
-GetFloatValue(const llvm::fltSemantics &Format) {
+GetFloatValue(const llvm::fltSemantics &Format, bool* isExact) {
+  using llvm::APFloat;
+  
   char floatChars[256];
   strncpy(floatChars, ThisTokBegin, ThisTokEnd-ThisTokBegin);
   floatChars[ThisTokEnd-ThisTokBegin] = '\0';
-#if 0
-  // This doesn't work yet.
-  return llvm::APFloat(Format, floatChars);
+
+#if 1
+  APFloat V (Format, APFloat::fcZero, false);
+
+  APFloat::opStatus status;
+  status = V.convertFromString(floatChars,APFloat::rmTowardZero);
+  
+  if (isExact)
+    *isExact = status == APFloat::opOK;
+  
+  return V;
 #else
   // FIXME: this is horrible!
-  llvm::APFloat V(strtod(floatChars, 0));
-  V.convert(Format, llvm::APFloat::rmTowardZero);
+  APFloat V(strtod(floatChars, 0));
+  V.convert(Format, APFloat::rmTowardZero);
   return V;
 #endif
 }
diff --git a/include/clang/Lex/LiteralSupport.h b/include/clang/Lex/LiteralSupport.h
index e8650fc..2555660 100644
--- a/include/clang/Lex/LiteralSupport.h
+++ b/include/clang/Lex/LiteralSupport.h
@@ -77,8 +77,11 @@
   
   /// GetFloatValue - Convert this numeric literal to a floating value, using
   /// the specified APFloat fltSemantics (specifying float, double, etc).
-  ///
-  llvm::APFloat GetFloatValue(const llvm::fltSemantics &Format);
+  /// The optional bool isExact (passed-by-reference) has its value
+  /// set to true if the returned APFloat can represent the number in the
+  /// literal exactly, and false otherwise.
+  llvm::APFloat GetFloatValue(const llvm::fltSemantics &Format, 
+                              bool* isExact = NULL);
 
 private:  
   void Diag(SourceLocation Loc, unsigned DiagID, 
