diff options
author | Mike Stump <mrs@apple.com> | 2009-07-27 22:25:19 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2009-07-27 22:25:19 +0000 |
commit | e24aea225ec87b935ede6c21c964dd47a4afb810 (patch) | |
tree | 3262955a6f768a687df23b0522fea660b3805053 | |
parent | f75560670bcdd59b051149bdece3eac14e313853 (diff) |
Ensure we can work through typedefs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77265 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/AST/ASTContext.cpp | 4 | ||||
-rw-r--r-- | test/Sema/return.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 61dbf24b45..f7e1e3fdff 100644 --- a/lib/AST/ASTContext.cpp +++ b/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/test/Sema/return.c b/test/Sema/return.c index c04337924a..423d1a9902 100644 --- a/test/Sema/return.c +++ b/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))); |