aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2007-11-10 22:00:55 +0000
committerFariborz Jahanian <fjahanian@apple.com>2007-11-10 22:00:55 +0000
commit8f2c735c0cee8da42742ae247778cbfef45b8750 (patch)
treed2420890a56d9cf73260b22518b62014d00062e8
parentdb8f3d3bb96c75440f513c43ac73adace2aae5ff (diff)
Fixed a bug which exposed the internally built type to user code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43987 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--Sema/SemaDecl.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp
index 7ba743cf5e..006bb18bd1 100644
--- a/Sema/SemaDecl.cpp
+++ b/Sema/SemaDecl.cpp
@@ -551,8 +551,13 @@ Sema::ObjcActOnMethodDefinition(Scope *S, DeclTy *D, DeclTy *lastDecl) {
ObjcMethodDecl *MDecl = dyn_cast<ObjcMethodDecl>(static_cast<Decl *>(D));
ScopedDecl *LastDeclarator = dyn_cast_or_null<ScopedDecl>((Decl *)lastDecl);
- const char *name = MDecl->getSelector().getName().c_str();
- IdentifierInfo *II = &Context.Idents.get(name);
+ // build [classname selector-name] for the name of method.
+ std::string Name = "[";
+ Name += MDecl->getClassInterface()->getName();
+ Name += " ";
+ Name += MDecl->getSelector().getName();
+ Name += "]";
+ IdentifierInfo *II = &Context.Idents.get(Name);
assert (II && "ObjcActOnMethodDefinition - selector name is missing");
// The scope passed in may not be a decl scope. Zip up the scope tree until