On Mar 4, 2010, at 5:34 AM, Daniel Dunbar wrote: > Hi Fariborz, > > On Wed, Mar 3, 2010 at 11:41 AM, Fariborz Jahanian <[email protected] > > wrote: >> Author: fjahanian >> Date: Wed Mar 3 13:41:08 2010 >> New Revision: 97658 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=97658&view=rev >> Log: >> Implements mangling of local class names to >> fix a code gen crash. This is WIP as not >> all ABI cases are covered (there is a FIXME to >> this effect). Fixes radar 7696748. >> >> Added: >> cfe/trunk/test/CodeGenCXX/mangle-local-class-names.cpp >> Modified: >> cfe/trunk/lib/CodeGen/Mangle.cpp >> >> Modified: cfe/trunk/lib/CodeGen/Mangle.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/Mangle.cpp?rev=97658&r1=97657&r2=97658&view=diff >> = >> = >> = >> = >> = >> = >> = >> = >> = >> ===================================================================== >> --- cfe/trunk/lib/CodeGen/Mangle.cpp (original) >> +++ cfe/trunk/lib/CodeGen/Mangle.cpp Wed Mar 3 13:41:08 2010 >> @@ -37,7 +37,19 @@ >> using namespace CodeGen; >> >> namespace { >> - >> + >> +static const DeclContext *GetLocalClassFunctionDeclContext( >> + const >> DeclContext *DC) { >> + if (isa<CXXRecordDecl>(DC)) { >> + while (!DC->isNamespace() && !DC->isTranslationUnit() && >> + !isa<FunctionDecl>(DC)) >> + DC = DC->getParent(); >> + if (isa<FunctionDecl>(DC)) >> + return DC; >> + } >> + return 0; >> +} >> + >> static const CXXMethodDecl *getStructor(const CXXMethodDecl *MD) { >> assert((isa<CXXConstructorDecl>(MD) || >> isa<CXXDestructorDecl>(MD)) && >> "Passed in decl is not a ctor or dtor!"); >> @@ -53,6 +65,8 @@ >> } >> >> static const unsigned UnknownArity = ~0U; >> +static unsigned Discriminator = 0; >> +static llvm::DenseMap<const NamedDecl*, unsigned> Uniquifier; > > Please do not add new static global variables. These belong in a class > somewhere.
Ii was already done in a subsequent patch. > > > They should also be documented, I don't understand the purpose of > Discriminator. It is in the Ithenium ABI document. (5.1.6) - Fariborz > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
