[cfe-commits] r45329 - /cfe/trunk/Driver/RewriteTest.cpp

Chris Lattner sabre at nondot.org
Sat Dec 22 17:40:15 PST 2007


Author: lattner
Date: Sat Dec 22 19:40:15 2007
New Revision: 45329

URL: http://llvm.org/viewvc/llvm-project?rev=45329&view=rev
Log:
remove use of alloca.

Modified:
    cfe/trunk/Driver/RewriteTest.cpp

Modified: cfe/trunk/Driver/RewriteTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/RewriteTest.cpp?rev=45329&r1=45328&r2=45329&view=diff

==============================================================================
--- cfe/trunk/Driver/RewriteTest.cpp (original)
+++ cfe/trunk/Driver/RewriteTest.cpp Sat Dec 22 19:40:15 2007
@@ -21,7 +21,6 @@
 #include "clang/Lex/Lexer.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/SmallPtrSet.h"
-#include "llvm/Config/alloca.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include <sstream>
 using namespace clang;
@@ -2058,18 +2057,20 @@
        CDecl = CDecl->getNextClassCategory())
     if (CDecl->getIdentifier() == IDecl->getIdentifier())
       break;
-    
-  char *FullCategoryName = (char*)alloca(
-    strlen(ClassDecl->getName()) + strlen(IDecl->getName()) + 2);
-  sprintf(FullCategoryName, "%s_%s", ClassDecl->getName(), IDecl->getName());
   
+  std::string FullCategoryName = ClassDecl->getName();
+  FullCategoryName += '_';
+  FullCategoryName += IDecl->getName();
+    
   // Build _objc_method_list for class's instance methods if needed
   RewriteObjcMethodsMetaData(IDecl->instmeth_begin(), IDecl->instmeth_end(),
-                             true, "CATEGORY_", FullCategoryName, Result);
+                             true, "CATEGORY_", FullCategoryName.c_str(),
+                             Result);
   
   // Build _objc_method_list for class's class methods if needed
   RewriteObjcMethodsMetaData(IDecl->classmeth_begin(), IDecl->classmeth_end(),
-                             false, "CATEGORY_", FullCategoryName, Result);
+                             false, "CATEGORY_", FullCategoryName.c_str(),
+                             Result);
   
   // Protocols referenced in class declaration?
   // Null CDecl is case of a category implementation with no category interface
@@ -2077,7 +2078,7 @@
     RewriteObjcProtocolsMetaData(CDecl->getReferencedProtocols(),
                                  CDecl->getNumReferencedProtocols(),
                                  "CATEGORY",
-                                 FullCategoryName, Result);
+                                 FullCategoryName.c_str(), Result);
   
   /* struct _objc_category {
    char *category_name;





More information about the cfe-commits mailing list