[clang-tidy] Fix LoopConvertCheck bug.

Fix LoopConvertCheck bug: StringRef to temporaries.

Also add LLVM_ATTRIBUTE_UNUSED to ModernizeModuleAnchorDestination.

http://reviews.llvm.org/D12157

Patch by Angel Garcia!

llvm-svn: 245458
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
index fc9a0ff..ad2393a 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
@@ -417,7 +417,7 @@
     // First, replace all usages of the array subscript expression with our new
     // variable.
     for (const auto &I : Usages) {
-      StringRef ReplaceText = I.IsArrow ? VarName + "." : VarName;
+      std::string ReplaceText = I.IsArrow ? VarName + "." : VarName;
       TUInfo->getReplacedVars().insert(std::make_pair(TheLoop, IndexVar));
       Diag << FixItHint::CreateReplacement(
           CharSourceRange::getTokenRange(I.Range), ReplaceText);
@@ -446,11 +446,9 @@
   }
 
   StringRef MaybeDereference = ContainerNeedsDereference ? "*" : "";
-  StringRef TypeString = AutoRefType.getAsString();
-  StringRef Range = ("(" + TypeString + " " + VarName + " : " +
-                     MaybeDereference + ContainerString + ")")
-                        .str();
-
+  std::string TypeString = AutoRefType.getAsString();
+  std::string Range = ("(" + TypeString + " " + VarName + " : " +
+                       MaybeDereference + ContainerString + ")").str();
   Diag << FixItHint::CreateReplacement(
       CharSourceRange::getTokenRange(ParenRange), Range);
   TUInfo->getGeneratedDecls().insert(make_pair(TheLoop, VarName));