diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/CodeGen/CGExpr.cpp | 2 | ||||
-rw-r--r-- | clang/test/CodeGen/functions.c | 8 |
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(); +} + |