summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/CodeGen/CGExpr.cpp2
-rw-r--r--clang/test/CodeGen/functions.c8
2 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index b219b7a67dc..1fd616c6488 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/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/clang/test/CodeGen/functions.c b/clang/test/CodeGen/functions.c
index 09cb9786dac..60e2b6c80cf 100644
--- a/clang/test/CodeGen/functions.c
+++ b/clang/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();
+}
+
OpenPOWER on IntegriCloud