r221533 - Revert r221404 which caused lldb to not display

David Blaikie dblaikie at gmail.com
Tue Nov 11 16:11:30 PST 2014


On Fri, Nov 7, 2014 at 8:47 AM, Fariborz Jahanian <fjahanian at apple.com>
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
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141111/a9e7d000/attachment.html>


More information about the cfe-commits mailing list