From: Chris Lattner Date: Thu, 31 Jul 2008 04:58:58 +0000 (+0000) Subject: Fix a regression I introduced in r54107: X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=05d2fb40859bbfc081ab08379452db876545bff6;p=clang Fix a regression I introduced in r54107: http://llvm.org/viewvc/llvm-project?view=rev&revision=54107 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54242 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp index b219b7a67d..1fd616c648 100644 --- a/lib/CodeGen/CGExpr.cpp +++ b/lib/CodeGen/CGExpr.cpp @@ -721,7 +721,7 @@ RValue CodeGenFunction::EmitCallExpr(llvm::Value *Callee, QualType FnType, // The callee type will always be a pointer to function type, get the function // type. FnType = FnType->getAsPointerType()->getPointeeType(); - QualType ResultType = cast(FnType)->getResultType(); + QualType ResultType = FnType->getAsFunctionType()->getResultType(); llvm::SmallVector Args; diff --git a/test/CodeGen/functions.c b/test/CodeGen/functions.c index 09cb9786da..60e2b6c80c 100644 --- a/test/CodeGen/functions.c +++ b/test/CodeGen/functions.c @@ -1,4 +1,4 @@ -// RUN: clang %s -emit-llvm +// RUN: clang %s -emit-llvm -o - int g(); int foo(int i) { @@ -9,3 +9,9 @@ int g(int i) { return g(i); } +// rdar://6110827 +typedef void T(void); +void test3(T f) { + f(); +} +