summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-07-27 21:33:40 +0000
committerMike Stump <mrs@apple.com>2009-07-27 21:33:40 +0000
commit9a9e0c2b17f6277478f70003aa53936dbced6de0 (patch)
tree0b596b1da3159e8e76c223c78f09314691408c4f /clang/lib/Sema/SemaDecl.cpp
parent9d0e762c814300401c876b594c9dfb2ff2e665e3 (diff)
downloadbcm5719-llvm-9a9e0c2b17f6277478f70003aa53936dbced6de0.tar.gz
bcm5719-llvm-9a9e0c2b17f6277478f70003aa53936dbced6de0.zip
Add builtin knowledge about longjmp being noreturn. Add printing for
the noreturn attribute. llvm-svn: 77253
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index bf2d3ccec26..d168a907a09 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -3705,7 +3705,9 @@ void Sema::AddKnownFunctionAttributes(FunctionDecl *FD) {
if (!FD->getAttr<FormatAttr>())
FD->addAttr(::new (Context) FormatAttr("printf", 2,
Name->isStr("vasprintf") ? 0 : 3));
- }
+ } else if (Name->isStr("longjmp") &&
+ !FD->hasAttr<NoReturnAttr>())
+ FD->addAttr(::new (Context) NoReturnAttr());
}
TypedefDecl *Sema::ParseTypedefDecl(Scope *S, Declarator &D, QualType T) {
OpenPOWER on IntegriCloud