diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2009-04-16 18:34:20 +0000 | 
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-04-16 18:34:20 +0000 | 
| commit | bcf548760edada00ede16f06ab07c4bbde252c71 (patch) | |
| tree | f362332fd566eddb8b9fe02c528e757d2ed53c35 | |
| parent | dab01f3fd650f3e19753d998f31390346419f950 (diff) | |
| download | bcm5719-llvm-bcf548760edada00ede16f06ab07c4bbde252c71.tar.gz bcm5719-llvm-bcf548760edada00ede16f06ab07c4bbde252c71.zip  | |
Category method synbols must be qualified by gategory name to
match gcc's.
llvm-svn: 69305
| -rw-r--r-- | clang/lib/CodeGen/CGObjCMac.cpp | 6 | ||||
| -rw-r--r-- | clang/test/CodeGenObjC/metadata_symbols.m | 6 | 
2 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp index 629ea809459..9d45ff64044 100644 --- a/clang/lib/CodeGen/CGObjCMac.cpp +++ b/clang/lib/CodeGen/CGObjCMac.cpp @@ -3043,6 +3043,12 @@ void CGObjCCommonMac::GetNameForMethod(const ObjCMethodDecl *D,    NameOut += '[';    assert (CD && "Missing container decl in GetNameForMethod");    NameOut += CD->getNameAsString(); +  if (const ObjCCategoryImplDecl *CID =  +      dyn_cast<ObjCCategoryImplDecl>(D->getDeclContext())) { +    NameOut += '('; +    NameOut += CID->getNameAsString(); +    NameOut+= ')'; +  }    // FIXME. For a method in a category, (CAT_NAME) is inserted here.    // Right now! there is not enough info. to do this.    NameOut += ' '; diff --git a/clang/test/CodeGenObjC/metadata_symbols.m b/clang/test/CodeGenObjC/metadata_symbols.m index 55dc5a38f59..1a1d1e1d981 100644 --- a/clang/test/CodeGenObjC/metadata_symbols.m +++ b/clang/test/CodeGenObjC/metadata_symbols.m @@ -8,8 +8,7 @@  // RUN: grep '@"OBJC_EHTYPE_$_EH3"' %t | count 3 &&  // RUN: grep '@"\\01L_OBJC_CLASS_NAME_" =.*section "__TEXT,__cstring,cstring_literals", align 1' %t | count 1 &&  // RUN: grep -F 'define internal void @"\01-[A im0]"' %t && -// FIXME: Should include category name. -// RUN: grep -F 'define internal void @"\01-[A im1]"' %t && +// RUN: grep -F 'define internal void @"\01-[A(Cat) im1]"' %t &&  // RUN: clang-cc -fvisibility=hidden -triple x86_64-apple-darwin9 -emit-llvm -o %t %s && @@ -19,8 +18,7 @@  // RUN: grep '@"OBJC_EHTYPE_$_EH2" = external global' %t &&  // RUN: grep '@"OBJC_EHTYPE_$_EH3" = hidden global .*section "__DATA,__objc_const", align 8' %t &&  // RUN: grep -F 'define internal void @"\01-[A im0]"' %t && -// FIXME: Should include category name. -// RUN: grep -F 'define internal void @"\01-[A im1]"' %t && +// RUN: grep -F 'define internal void @"\01-[A(Cat) im1]"' %t &&  // RUN: true  | 

