]> granicus.if.org Git - clang/commitdiff
Revert r221404 which caused lldb to not display
authorFariborz Jahanian <fjahanian@apple.com>
Fri, 7 Nov 2014 16:47:05 +0000 (16:47 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Fri, 7 Nov 2014 16:47:05 +0000 (16:47 +0000)
vararg expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221533 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaExpr.cpp
test/CodeGenCXX/unknown-anytype.cpp

index d1a2105afbca331fc68a71cf575101345664f892..a8e4407f34fdb6dbdcc43c185fd2611ac1276c6f 100644 (file)
@@ -13343,39 +13343,6 @@ ExprResult RebuildUnknownAnyExpr::resolveDecl(Expr *E, ValueDecl *VD) {
         << 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()) {
index c1b8c7df708917f77d8bda012820ebaa53d3c460..aacb8493ef3c90ca890baf51719e5656a14ec4da 100644 (file)
@@ -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);
-}