diff --git a/lib/Sema/SemaStmtAsm.cpp b/lib/Sema/SemaStmtAsm.cpp
index fbd85215..38f9c44 100644
--- a/lib/Sema/SemaStmtAsm.cpp
+++ b/lib/Sema/SemaStmtAsm.cpp
@@ -407,8 +407,7 @@
 static bool buildMSAsmStrings(Sema &SemaRef,
                               SourceLocation AsmLoc,
                               ArrayRef<Token> AsmToks,
-                              std::vector<std::string> &AsmStrings,
-                     std::vector<std::pair<unsigned,unsigned> > &AsmTokRanges) {
+                              std::vector<std::string> &AsmStrings) {
   assert (!AsmToks.empty() && "Didn't expect an empty AsmToks!");
 
   SmallString<512> Asm;
@@ -421,7 +420,6 @@
     if (isNewAsm) {
       if (i) {
         AsmStrings.push_back(Asm.str());
-        AsmTokRanges.push_back(std::make_pair(startTok, i-1));
         startTok = i;
         Asm.clear();
       }
@@ -441,7 +439,6 @@
     Asm += Spelling;
   }
   AsmStrings.push_back(Asm.str());
-  AsmTokRanges.push_back(std::make_pair(startTok, AsmToks.size()-1));
 
   return false;
 }
@@ -476,8 +473,7 @@
   if (AsmToks.empty()) { DEF_SIMPLE_MSASM(EmptyAsmStr); return Owned(NS); }
 
   std::vector<std::string> AsmStrings;
-  std::vector<std::pair<unsigned,unsigned> > AsmTokRanges;
-  if (buildMSAsmStrings(*this, AsmLoc, AsmToks, AsmStrings, AsmTokRanges))
+  if (buildMSAsmStrings(*this, AsmLoc, AsmToks, AsmStrings))
     return StmtError();
 
   std::vector<std::vector<StringRef> > Pieces(AsmStrings.size());
