aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-07-31 04:58:58 +0000
committerChris Lattner <sabre@nondot.org>2008-07-31 04:58:58 +0000
commit05d2fb40859bbfc081ab08379452db876545bff6 (patch)
treeaf7a18ced0c691c16fdb31fdc3f795d2776991f7
parentc5004516489c931cf839bdbdde5a76e4074cc888 (diff)
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
-rw-r--r--lib/CodeGen/CGExpr.cpp2
-rw-r--r--test/CodeGen/functions.c8
2 files changed, 8 insertions, 2 deletions
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<FunctionType>(FnType)->getResultType();
+ QualType ResultType = FnType->getAsFunctionType()->getResultType();
llvm::SmallVector<llvm::Value*, 16> 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();
+}
+