summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/AST/ASTContext.cpp4
-rw-r--r--clang/test/Sema/return.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 61dbf24b456..f7e1e3fdffd 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -1061,10 +1061,10 @@ QualType ASTContext::getNoReturnType(QualType T) {
if (!T->isFunctionType())
assert(0 && "can't noreturn qualify non-pointer to function or block type");
- if (const FunctionNoProtoType *F = dyn_cast<FunctionNoProtoType>(T)) {
+ if (const FunctionNoProtoType *F = T->getAsFunctionNoProtoType()) {
return getFunctionNoProtoType(F->getResultType(), true);
}
- const FunctionProtoType *F = cast<FunctionProtoType>(T);
+ const FunctionProtoType *F = T->getAsFunctionProtoType();
return getFunctionType(F->getResultType(), F->arg_type_begin(),
F->getNumArgs(), F->isVariadic(), F->getTypeQuals(),
F->hasExceptionSpec(), F->hasAnyExceptionSpec(),
diff --git a/clang/test/Sema/return.c b/clang/test/Sema/return.c
index c04337924ad..423d1a99029 100644
--- a/clang/test/Sema/return.c
+++ b/clang/test/Sema/return.c
@@ -205,3 +205,6 @@ int test30() {
else
_longjmp(test30_j, 1);
}
+
+typedef void test31_t(int status);
+void test31(test31_t *callback __attribute__((noreturn)));
OpenPOWER on IntegriCloud