Switch to SmallString::str from SmallString::c_str.
 - Several FIXMEs due to non-Twinification of IRBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79455 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 571228a..11937e6 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -18,6 +18,7 @@
 #include "clang/Basic/LangOptions.h"
 #include "llvm/ADT/APFloat.h"
 #include "llvm/ADT/SmallString.h"
+#include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/Triple.h"
 #include "llvm/MC/MCSectionMachO.h"
@@ -27,13 +28,13 @@
 //  Common code shared among targets.
 //===----------------------------------------------------------------------===//
 
-static void Define(std::vector<char> &Buf, const char *Macro,
-                   const char *Val = "1") {
+static void Define(std::vector<char> &Buf, const llvm::StringRef &Macro,
+                   const llvm::StringRef &Val = "1") {
   const char *Def = "#define ";
   Buf.insert(Buf.end(), Def, Def+strlen(Def));
-  Buf.insert(Buf.end(), Macro, Macro+strlen(Macro));
+  Buf.insert(Buf.end(), Macro.begin(), Macro.end());
   Buf.push_back(' ');
-  Buf.insert(Buf.end(), Val, Val+strlen(Val));
+  Buf.insert(Buf.end(), Val.begin(), Val.end());
   Buf.push_back('\n');
 }
 
@@ -53,11 +54,11 @@
   llvm::SmallString<20> TmpStr;
   TmpStr = "__";
   TmpStr += MacroName;
-  Define(Buf, TmpStr.c_str());
+  Define(Buf, TmpStr.str());
 
   // Define __unix__.
   TmpStr += "__";
-  Define(Buf, TmpStr.c_str());
+  Define(Buf, TmpStr.str());
 }
 
 //===----------------------------------------------------------------------===//