[cfe-commits] r106492 - /cfe/trunk/lib/CodeGen/CGObjCMac.cpp

Fariborz Jahanian fjahanian at apple.com
Mon Jun 21 15:25:15 PDT 2010


I got the latest patch. Just forgot to check in the test case. It is  
in now.
One minor note. Generally, we should not leave any temp files behind.
I already removed build of test.o. See if you can clean up the other  
two at the end  too.

- fariborz

On Jun 21, 2010, at 3:15 PM, Nico Weber wrote:

> Hi Fariborz,
>
> I screwed up and uploaded a patch without the test case; looks like
> you landed that. There's a newer patch on the bug that also contains a
> test. Maybe you can land the test too.
>
> Sorry,
> Nico
>
> On Mon, Jun 21, 2010 at 3:05 PM, Fariborz Jahanian <fjahanian at apple.com 
> > wrote:
>> Author: fjahanian
>> Date: Mon Jun 21 17:05:18 2010
>> New Revision: 106492
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=106492&view=rev
>> Log:
>> In fragile-abi (32bit mode abi) generate global symbol
>> objc_category_name_xxx for each category implementation.
>> (fixes PR7431) patch by Nico Weber.
>>
>> Modified:
>>    cfe/trunk/lib/CodeGen/CGObjCMac.cpp
>>
>> Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=106492&r1=106491&r2=106492&view=diff
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original)
>> +++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Mon Jun 21 17:05:18 2010
>> @@ -852,6 +852,9 @@
>>   /// MethodVarNames - uniqued method variable names.
>>   llvm::DenseMap<Selector, llvm::GlobalVariable*> MethodVarNames;
>>
>> +  /// DefinedCategoryNames - list of category names in form  
>> Class_Category.
>> +  llvm::SetVector<std::string> DefinedCategoryNames;
>> +
>>   /// MethodVarTypes - uniqued method type signatures. We have to use
>>   /// a StringMap here because have no other unique reference.
>>   llvm::StringMap<llvm::GlobalVariable*> MethodVarTypes;
>> @@ -2068,6 +2071,7 @@
>>                       "__OBJC,__category,regular,no_dead_strip",
>>                       4, true);
>>   DefinedCategories.push_back(GV);
>> +  DefinedCategoryNames.insert(ExtName.str());
>>  }
>>
>>  // FIXME: Get from somewhere?
>> @@ -3650,8 +3654,14 @@
>>       OS << "\t.objc_class_name_" << (*I)->getName() << "=0\n"
>>          << "\t.globl .objc_class_name_" << (*I)->getName() << "\n";
>>     for (llvm::SetVector<IdentifierInfo*>::iterator I =  
>> LazySymbols.begin(),
>> -         e = LazySymbols.end(); I != e; ++I)
>> +         e = LazySymbols.end(); I != e; ++I) {
>>       OS << "\t.lazy_reference .objc_class_name_" << (*I)- 
>> >getName() << "\n";
>> +    }
>> +
>> +    for (size_t i = 0; i < DefinedCategoryNames.size(); ++i) {
>> +      OS << "\t.objc_category_name_" << DefinedCategoryNames[i] <<  
>> "=0\n"
>> +         << "\t.globl .objc_category_name_" <<  
>> DefinedCategoryNames[i] << "\n";
>> +    }
>>
>>     CGM.getModule().setModuleInlineAsm(OS.str());
>>   }
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>




More information about the cfe-commits mailing list