[cfe-commits] r102497 - /cfe/trunk/lib/CodeGen/CGObjCGNU.cpp

Douglas Gregor dgregor at apple.com
Wed Apr 28 08:57:12 PDT 2010


On Apr 28, 2010, at 7:29 AM, David Chisnall wrote:

> Author: theraven
> Date: Wed Apr 28 09:29:56 2010
> New Revision: 102497
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=102497&view=rev
> Log:
> Emit the correct symbol name for the class (GNU runtime).
> 
> 
> Modified:
>    cfe/trunk/lib/CodeGen/CGObjCGNU.cpp
> 
> Modified: cfe/trunk/lib/CodeGen/CGObjCGNU.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCGNU.cpp?rev=102497&r1=102496&r2=102497&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGObjCGNU.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGObjCGNU.cpp Wed Apr 28 09:29:56 2010
> @@ -112,7 +112,8 @@
>       llvm::Constant *Methods,
>       llvm::Constant *Protocols,
>       llvm::Constant *IvarOffsets,
> -      llvm::Constant *Properties);
> +      llvm::Constant *Properties,
> +      bool isMeta=false);
>   llvm::Constant *GenerateProtocolMethodList(
>       const llvm::SmallVectorImpl<llvm::Constant *>  &MethodNames,
>       const llvm::SmallVectorImpl<llvm::Constant *>  &MethodTypes);
> @@ -817,7 +818,8 @@
>     llvm::Constant *Methods,
>     llvm::Constant *Protocols,
>     llvm::Constant *IvarOffsets,
> -    llvm::Constant *Properties) {
> +    llvm::Constant *Properties,
> +    bool isMeta) {
>   // Set up the class structure
>   // Note:  Several of these are char*s when they should be ids.  This is
>   // because the runtime performs this translation on load.
> @@ -867,8 +869,8 @@
>   // Create an instance of the structure
>   // This is now an externally visible symbol, so that we can speed up class
>   // messages in the next ABI.
> -  return MakeGlobal(ClassTy, Elements, SymbolNameForClass(Name),
> -         llvm::GlobalValue::ExternalLinkage);
> +  return MakeGlobal(ClassTy, Elements, (isMeta ? "_OBJC_METACLASS_":
> +      "_OBJC_CLASS_") + std::string(Name), llvm::GlobalValue::ExternalLinkage);

The static function SymbolNameForClass() is now unused. Should it be removed?

	- Doug



More information about the cfe-commits mailing list