From: Steve Naroff Date: Wed, 24 Oct 2007 01:09:48 +0000 (+0000) Subject: Incorporate some feedback from Chris... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c0006097e970e5e09636dc46df8d3182042640fb;p=clang Incorporate some feedback from Chris... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43285 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Driver/RewriteTest.cpp b/Driver/RewriteTest.cpp index 42b5940e19..cfa794619d 100644 --- a/Driver/RewriteTest.cpp +++ b/Driver/RewriteTest.cpp @@ -40,6 +40,7 @@ namespace { SM = &Context->SourceMgr; MainFileID = mainFileID; MsgSendFunctionDecl = 0; + GetClassFunctionDecl = 0; Rewrite.setSourceMgr(Context->SourceMgr); } @@ -74,9 +75,9 @@ void RewriteTest::HandleTopLevelDecl(Decl *D) { // Look for built-in declarations that we need to refer during the rewrite. if (FunctionDecl *FD = dyn_cast(D)) { - if (FD->getIdentifier() == &Context->Idents.get("objc_msgSend")) + if (strcmp(FD->getName(), "objc_msgSend") == 0) MsgSendFunctionDecl = FD; - else if (FD->getIdentifier() == &Context->Idents.get("objc_getClass")) + else if (strcmp(FD->getName(), "objc_getClass") == 0) GetClassFunctionDecl = FD; } if (SM->getDecomposedFileLoc(Loc).first == MainFileID) @@ -185,8 +186,7 @@ void RewriteTest::RewriteForwardClassDecl(ObjcClassDecl *ClassDecl) { // Get the start location and compute the semi location. SourceLocation startLoc = ClassDecl->getLocation(); const char *startBuf = SM->getCharacterData(startLoc); - const char *semiPtr = startBuf; - while (semiPtr && (*semiPtr != ';')) semiPtr++; + const char *semiPtr = strchr(startBuf, ';'); // Translate to typedef's that forward reference structs with the same name // as the class. As a convenience, we include the original declaration diff --git a/Lex/Preprocessor.cpp b/Lex/Preprocessor.cpp index 6380544376..8cdfe44fad 100644 --- a/Lex/Preprocessor.cpp +++ b/Lex/Preprocessor.cpp @@ -400,7 +400,7 @@ static void InitializePredefinedMacros(Preprocessor &PP, // Predefine ObjC primitive functions, traditionally declared in // . Unlike the declarations above, we don't protect // these with a header guard (since multiple identical function declarations - // don't result in an error. + // don't result in an error. FIXME: don't predefine these... ObjcType = "OBJC_EXPORT id objc_getClass(const char *name);\n"; Buf.insert(Buf.end(), ObjcType, ObjcType+strlen(ObjcType)); ObjcType = "OBJC_EXPORT id objc_getMetaClass(const char *name);\n";