]> granicus.if.org Git - clang/commitdiff
Fix <rdar://problem/5887874> clang ObjC rewriter: Use a different name for 'offsetof...
authorSteve Naroff <snaroff@apple.com>
Wed, 7 May 2008 21:23:49 +0000 (21:23 +0000)
committerSteve Naroff <snaroff@apple.com>
Wed, 7 May 2008 21:23:49 +0000 (21:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50832 91177308-0d34-0410-b5e6-96231b3b80d8

Driver/RewriteObjC.cpp

index 791726ece0e20698afe62e3c789a7858d6c42b6d..d12ecbb99552b5f1e599ac6af06494662542661f 100644 (file)
@@ -2685,7 +2685,7 @@ void RewriteObjC::RewriteObjCCategoryImplDecl(ObjCCategoryImplDecl *IDecl,
 void RewriteObjC::SynthesizeIvarOffsetComputation(ObjCImplementationDecl *IDecl, 
                                                   ObjCIvarDecl *ivar, 
                                                   std::string &Result) {
-  Result += "offsetof(struct ";
+  Result += "__OFFSETOFIVAR__(struct ";
   Result += IDecl->getName();
   if (LangOpts.Microsoft)
     Result += "_IMPL";
@@ -2947,8 +2947,8 @@ void RewriteObjC::RewriteImplementations(std::string &Result) {
   for (int i = 0; i < CatDefCount; i++)
     RewriteImplementationDecl(CategoryImplementation[i]);
   
-  // This is needed for use of offsetof
-  Result += "#define offsetof(TYPE, MEMBER) ((int) &((TYPE *)0)->MEMBER)\n";   
+  // This is needed for determining instance variable offsets.
+  Result += "#define __OFFSETOFIVAR__(TYPE, MEMBER) ((int) &((TYPE *)0)->MEMBER)\n";   
   // For each implemented class, write out all its meta data.
   for (int i = 0; i < ClsDefCount; i++)
     RewriteObjCClassMetaData(ClassImplementation[i], Result);