On Fri, Nov 7, 2014 at 8:47 AM, Fariborz Jahanian <[email protected]> wrote:
> Author: fjahanian > Date: Fri Nov 7 10:47:05 2014 > New Revision: 221533 > > URL: http://llvm.org/viewvc/llvm-project?rev=221533&view=rev > Log: > Revert r221404 which caused lldb to not display > vararg expressions. > Somewhat opaque - do you have a test case you could add (& test the output for whatever feature is of interest) so that someone doesn't make the same mistake/misfix in the future? Is there a test case you could include for the previous (granted, crashing) behavior that is XFAIL'd temporarily so the problem isn't forgotten? > > Modified: > cfe/trunk/lib/Sema/SemaExpr.cpp > cfe/trunk/test/CodeGenCXX/unknown-anytype.cpp > > Modified: cfe/trunk/lib/Sema/SemaExpr.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=221533&r1=221532&r2=221533&view=diff > > ============================================================================== > --- cfe/trunk/lib/Sema/SemaExpr.cpp (original) > +++ cfe/trunk/lib/Sema/SemaExpr.cpp Fri Nov 7 10:47:05 2014 > @@ -13343,39 +13343,6 @@ ExprResult RebuildUnknownAnyExpr::resolv > << VD << E->getSourceRange(); > return ExprError(); > } > - if (const FunctionProtoType *FT = Type->getAs<FunctionProtoType>()) { > - // We must match the FunctionDecl's type to the hack introduced in > - // RebuildUnknownAnyExpr::VisitCallExpr to vararg functions of > unknown > - // type. See the lengthy commentary in that routine. > - QualType FDT = FD->getType(); > - const FunctionType *FnType = FDT->castAs<FunctionType>(); > - const FunctionProtoType *Proto = > dyn_cast_or_null<FunctionProtoType>(FnType); > - DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(E); > - if (DRE && Proto && Proto->getParamTypes().empty() && > Proto->isVariadic()) { > - SourceLocation Loc = FD->getLocation(); > - FunctionDecl *NewFD = FunctionDecl::Create(FD->getASTContext(), > - FD->getDeclContext(), > - Loc, Loc, > FD->getNameInfo().getName(), > - DestType, FD->getTypeSourceInfo(), > - SC_None, false/*isInlineSpecified*/, > - FD->hasPrototype(), > - false/*isConstexprSpecified*/); > - > - if (FD->getQualifier()) > - NewFD->setQualifierInfo(FD->getQualifierLoc()); > - > - SmallVector<ParmVarDecl*, 16> Params; > - for (const auto &AI : FT->param_types()) { > - ParmVarDecl *Param = > - S.BuildParmVarDeclForTypedef(FD, Loc, AI); > - Param->setScopeInfo(0, Params.size()); > - Params.push_back(Param); > - } > - NewFD->setParams(Params); > - DRE->setDecl(NewFD); > - VD = DRE->getDecl(); > - } > - } > > if (CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(FD)) > if (MD->isInstance()) { > > Modified: cfe/trunk/test/CodeGenCXX/unknown-anytype.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/unknown-anytype.cpp?rev=221533&r1=221532&r2=221533&view=diff > > ============================================================================== > --- cfe/trunk/test/CodeGenCXX/unknown-anytype.cpp (original) > +++ cfe/trunk/test/CodeGenCXX/unknown-anytype.cpp Fri Nov 7 10:47:05 2014 > @@ -115,9 +115,3 @@ extern "C" __unknown_anytype test10_any( > void test10() { > (void) test10_any(), (void) test10_any(); > } > - > -extern "C" __unknown_anytype malloc(...); > -void test11() { > - void *s = (void*)malloc(12); > - void *d = (void*)malloc(435); > -} > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
