summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-11-29 01:35:17 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-11-29 01:35:17 +0000
commit9bb192ed99969b19e420d91ad5f1573169bcafaa (patch)
tree8190eb739c40d2bc0a0650f8ca29d04191114316 /clang/lib/Sema
parent78565839c6318cb19b87eebad6ddfa26991d32b6 (diff)
downloadbcm5719-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.cpp4
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;
OpenPOWER on IntegriCloud