diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-11-29 01:35:17 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-11-29 01:35:17 +0000 |
commit | 9bb192ed99969b19e420d91ad5f1573169bcafaa (patch) | |
tree | 8190eb739c40d2bc0a0650f8ca29d04191114316 /clang/lib/Sema | |
parent | 78565839c6318cb19b87eebad6ddfa26991d32b6 (diff) | |
download | bcm5719-llvm-9bb192ed99969b19e420d91ad5f1573169bcafaa.tar.gz bcm5719-llvm-9bb192ed99969b19e420d91ad5f1573169bcafaa.zip |
Add a warning for 'main' returning 'true' or 'false'.
Patch by Joshua Hurwitz!
llvm-svn: 288097
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r-- | clang/lib/Sema/SemaStmt.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp index eba192d58ab..79ad049d4bc 100644 --- a/clang/lib/Sema/SemaStmt.cpp +++ b/clang/lib/Sema/SemaStmt.cpp @@ -3193,6 +3193,10 @@ StmtResult Sema::BuildReturnStmt(SourceLocation ReturnLoc, Expr *RetValExp) { if (FD->isNoReturn()) Diag(ReturnLoc, diag::warn_noreturn_function_has_return_expr) << FD->getDeclName(); + if (FD->isMain() && RetValExp) + if (isa<CXXBoolLiteralExpr>(RetValExp)) + Diag(ReturnLoc, diag::warn_main_returns_bool_literal) + << RetValExp->getSourceRange(); } else if (ObjCMethodDecl *MD = getCurMethodDecl()) { FnRetType = MD->getReturnType(); isObjCMethod = true; |