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 42b5940..cfa7946 100644
--- a/Driver/RewriteTest.cpp
+++ b/Driver/RewriteTest.cpp
@@ -40,6 +40,7 @@
SM = &Context->SourceMgr;
MainFileID = mainFileID;
MsgSendFunctionDecl = 0;
+ GetClassFunctionDecl = 0;
Rewrite.setSourceMgr(Context->SourceMgr);
}
@@ -74,9 +75,9 @@
// Look for built-in declarations that we need to refer during the rewrite.
if (FunctionDecl *FD = dyn_cast<FunctionDecl>(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 @@
// 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 6380544..8cdfe44 100644
--- a/Lex/Preprocessor.cpp
+++ b/Lex/Preprocessor.cpp
@@ -400,7 +400,7 @@
// Predefine ObjC primitive functions, traditionally declared in
// <objc/objc-runtime.h>. 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";