[llvm-branch-commits] [cfe-tag] r251433 - Tagging checker-277.
Author: dcoughlin Date: Tue Oct 27 13:38:45 2015 New Revision: 251433 URL: http://llvm.org/viewvc/llvm-project?rev=251433&view=rev Log: Tagging checker-277. Added: cfe/tags/checker/checker-277/ (props changed) - copied from r251023, cfe/trunk/ Propchange: cfe/tags/checker/checker-277/ -- --- svn:ignore (added) +++ svn:ignore Tue Oct 27 13:38:45 2015 @@ -0,0 +1,3 @@ +configure.out +cscope.files +cscope.out Propchange: cfe/tags/checker/checker-277/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Tue Oct 27 13:38:45 2015 @@ -0,0 +1,3 @@ +/cfe/branches/type-system-rewrite:134693-134817 +/cfe/trunk/test:170344 +/cfe/trunk/test/SemaTemplate:126920 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-tag] r251435 - Tagging checker-277.
Author: dcoughlin Date: Tue Oct 27 13:54:30 2015 New Revision: 251435 URL: http://llvm.org/viewvc/llvm-project?rev=251435&view=rev Log: Tagging checker-277. Added: llvm/tags/checker/checker-277/ (props changed) - copied from r251023, llvm/trunk/ Propchange: llvm/tags/checker/checker-277/ -- --- svn:ignore (added) +++ svn:ignore Tue Oct 27 13:54:30 2015 @@ -0,0 +1,25 @@ +Debug +Release +Release-Asserts +mklib +Makefile.config +config.log +config.status +cvs.out +autom4te.cache +configure.out +LLVM-* +_distcheckdir +llvm.spec +svn-commit.* +*.patch +*.patch.raw +cscope.* +Debug+Coverage-Asserts +Release+Coverage-Asserts +Debug+Coverage +Release+Coverage +Debug+Checks +Debug+Asserts +Release+Asserts +build Propchange: llvm/tags/checker/checker-277/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Tue Oct 27 13:54:30 2015 @@ -0,0 +1,3 @@ +/llvm/branches/Apple/Pertwee:110850,110961 +/llvm/branches/type-system-rewrite:133420-134817 +/llvm/trunk:155241 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-tag] r251468 - [analyzer] checker-277: Apply lambda fixes and turn off nullability by default.
Author: dcoughlin
Date: Tue Oct 27 18:17:09 2015
New Revision: 251468
URL: http://llvm.org/viewvc/llvm-project?rev=251468&view=rev
Log:
[analyzer] checker-277: Apply lambda fixes and turn off nullability by default.
Bring in the following commits from ToT:
r251289: [analyzer] Fixed a rare crash when analyzing lambda functions.
r251313: [analyzer] Added a missing test case for r251289.
r251404: [analyzer] Fix another crash when analyzing lambda functions.
r251407: [analyzer] Fix lambdas that are capturing constants.
to fix crashes when analyzing lambdas.
Also revert:
r247614: [Static Analyzer] Turn on some nullability checks by default.
to turn off nullability checking by default.
Modified:
cfe/tags/checker/checker-277/lib/Driver/Tools.cpp
cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/ExprEngine.cpp
cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/MemRegion.cpp
cfe/tags/checker/checker-277/test/Analysis/lambdas.cpp
Modified: cfe/tags/checker/checker-277/lib/Driver/Tools.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/tags/checker/checker-277/lib/Driver/Tools.cpp?rev=251468&r1=251467&r2=251468&view=diff
==
--- cfe/tags/checker/checker-277/lib/Driver/Tools.cpp (original)
+++ cfe/tags/checker/checker-277/lib/Driver/Tools.cpp Tue Oct 27 18:17:09 2015
@@ -3339,11 +3339,6 @@ void Clang::ConstructJob(Compilation &C,
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.mktemp");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.mkstemp");
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.vfork");
-
- // Default nullability checks.
- CmdArgs.push_back("-analyzer-checker=nullability.NullPassedToNonnull");
- CmdArgs.push_back(
- "-analyzer-checker=nullability.NullReturnedFromNonnull");
}
// Set the output format. The default is plist, for (lame) historical
Modified: cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/ExprEngine.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/ExprEngine.cpp?rev=251468&r1=251467&r2=251468&view=diff
==
--- cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/ExprEngine.cpp
(original)
+++ cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/ExprEngine.cpp Tue Oct
27 18:17:09 2015
@@ -1855,13 +1855,20 @@ void ExprEngine::VisitCommonDeclRefExpr(
FieldDecl *LambdaThisCaptureField;
CXXRec->getCaptureFields(LambdaCaptureFields, LambdaThisCaptureField);
const FieldDecl *FD = LambdaCaptureFields[VD];
- Loc CXXThis =
- svalBuilder.getCXXThis(MD, LocCtxt->getCurrentStackFrame());
- SVal CXXThisVal = state->getSVal(CXXThis);
- V = state->getLValue(FD, CXXThisVal);
- if (FD->getType()->isReferenceType() &&
- !VD->getType()->isReferenceType())
-CaptureByReference = true;
+ if (!FD) {
+// When a constant is captured, sometimes no corresponding field is
+// created in the lambda object.
+assert(VD->getType().isConstQualified());
+V = state->getLValue(VD, LocCtxt);
+ } else {
+Loc CXXThis =
+svalBuilder.getCXXThis(MD, LocCtxt->getCurrentStackFrame());
+SVal CXXThisVal = state->getSVal(CXXThis);
+V = state->getLValue(FD, CXXThisVal);
+if (FD->getType()->isReferenceType() &&
+!VD->getType()->isReferenceType())
+ CaptureByReference = true;
+ }
} else {
V = state->getLValue(VD, LocCtxt);
}
Modified: cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/MemRegion.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/MemRegion.cpp?rev=251468&r1=251467&r2=251468&view=diff
==
--- cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/MemRegion.cpp
(original)
+++ cfe/tags/checker/checker-277/lib/StaticAnalyzer/Core/MemRegion.cpp Tue Oct
27 18:17:09 2015
@@ -1022,7 +1022,8 @@ MemRegionManager::getCXXThisRegion(QualT
// 'this' refers to a this to the enclosing scope, there is no right region
to
// return.
while (!LC->inTopFrame() &&
- PT != D->getThisType(getContext())->getAs()) {
+ (!D || D->isStatic() ||
+ PT != D->getThisType(getContext())->getAs())) {
LC = LC->getParent();
D = dyn_cast(LC->getDecl());
}
Modified: cfe/tags/checker/checker-277/test/Analysis/lambdas.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/tags/checker/checker-277/test/Analysis/lambdas.cpp?rev=251468&r1=251467&r2=251468&view=diff
==
--- cfe/tags/checker/checker-277/test/Analysis/lambdas.cpp (original)
+++ cfe/tags/checker/checker-277/test/Analysis/lambdas.cpp Tue Oct 27 18:17:09
2015
@@
[llvm-branch-commits] [cfe-tag] r257673 - Tagging checker-278.
Author: dcoughlin Date: Wed Jan 13 15:32:14 2016 New Revision: 257673 URL: http://llvm.org/viewvc/llvm-project?rev=257673&view=rev Log: Tagging checker-278. Added: cfe/tags/checker/checker-278/ (props changed) - copied from r257570, cfe/trunk/ Propchange: cfe/tags/checker/checker-278/ -- --- svn:ignore (added) +++ svn:ignore Wed Jan 13 15:32:14 2016 @@ -0,0 +1,3 @@ +configure.out +cscope.files +cscope.out Propchange: cfe/tags/checker/checker-278/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Wed Jan 13 15:32:14 2016 @@ -0,0 +1,3 @@ +/cfe/branches/type-system-rewrite:134693-134817 +/cfe/trunk/test:170344 +/cfe/trunk/test/SemaTemplate:126920 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-tag] r257674 - Tagging checker-278.
Author: dcoughlin Date: Wed Jan 13 15:32:57 2016 New Revision: 257674 URL: http://llvm.org/viewvc/llvm-project?rev=257674&view=rev Log: Tagging checker-278. Added: llvm/tags/checker/checker-278/ (props changed) - copied from r257570, llvm/trunk/ Propchange: llvm/tags/checker/checker-278/ -- --- svn:ignore (added) +++ svn:ignore Wed Jan 13 15:32:57 2016 @@ -0,0 +1,25 @@ +Debug +Release +Release-Asserts +mklib +Makefile.config +config.log +config.status +cvs.out +autom4te.cache +configure.out +LLVM-* +_distcheckdir +llvm.spec +svn-commit.* +*.patch +*.patch.raw +cscope.* +Debug+Coverage-Asserts +Release+Coverage-Asserts +Debug+Coverage +Release+Coverage +Debug+Checks +Debug+Asserts +Release+Asserts +build Propchange: llvm/tags/checker/checker-278/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Wed Jan 13 15:32:57 2016 @@ -0,0 +1,3 @@ +/llvm/branches/Apple/Pertwee:110850,110961 +/llvm/branches/type-system-rewrite:133420-134817 +/llvm/trunk:155241 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-tag] r259905 - [analyzer] checker-277: Pull in nullability fixes and dealloc checker.
Author: dcoughlin
Date: Fri Feb 5 13:17:16 2016
New Revision: 259905
URL: http://llvm.org/viewvc/llvm-project?rev=259905&view=rev
Log:
[analyzer] checker-277: Pull in nullability fixes and dealloc checker.
Cherry-pick in the following fixes from trunk:
r259288:[analyzer] Make suppression of macro defensive checks work with
-analyzer-eagerly-assume.
r259222:[analyzer] Suppress null reports from defensive checks in function-like
macros.
r259221:[analyzer] Improve Nullability checker diagnostics
r259118:[analyzer] NullabilityChecker: Remove unused isReturnSelf() function.
r259099:[analyzer] Suppress nullability warnings in copy, mutableCopy, and init
families.
r258461:[analyzer] Suppress nullability warning for defensive super initializer
idiom.
r258896:[analyzer] ObjCDeallocChecker: Only operate on classes with retained
properties.
r258886:[analyzer] Body farm: Look for property ivar in shadowing readwrite
property.
r258061:[analyzer] Nullability: Look through implicit casts when suppressing
warnings on return.
r257938:[analyzer] Check for return of nil in ObjC methods with nonnull return
type.
Added:
cfe/tags/checker/checker-278/test/Analysis/DeallocMissingRelease.m
- copied unchanged from r258896,
cfe/trunk/test/Analysis/DeallocMissingRelease.m
cfe/tags/checker/checker-278/test/Analysis/nullability-no-arc.mm
- copied unchanged from r258061,
cfe/trunk/test/Analysis/nullability-no-arc.mm
Modified:
cfe/tags/checker/checker-278/ (props changed)
cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
cfe/tags/checker/checker-278/lib/StaticAnalyzer/Core/CheckerContext.cpp
cfe/tags/checker/checker-278/test/Analysis/MissingDealloc.m
cfe/tags/checker/checker-278/test/Analysis/PR2978.m
cfe/tags/checker/checker-278/test/Analysis/inlining/false-positive-suppression.c
cfe/tags/checker/checker-278/test/Analysis/nullability.mm
cfe/tags/checker/checker-278/test/Analysis/nullability_nullonly.mm
cfe/tags/checker/checker-278/test/Analysis/properties.m
Propchange: cfe/tags/checker/checker-278/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 5 13:17:16 2016
@@ -1,3 +1,4 @@
/cfe/branches/type-system-rewrite:134693-134817
+/cfe/trunk:257938,258061,258461,258886,258896,259099,259118,259221-259222,259288
/cfe/trunk/test:170344
/cfe/trunk/test/SemaTemplate:126920
Modified:
cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
URL:
http://llvm.org/viewvc/llvm-project/cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h?rev=259905&r1=259904&r2=259905&view=diff
==
---
cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
(original)
+++
cfe/tags/checker/checker-278/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
Fri Feb 5 13:17:16 2016
@@ -263,6 +263,10 @@ public:
Eng.getBugReporter().emitReport(std::move(R));
}
+ /// \brief Returns the word that should be used to refer to the declaration
+ /// in the report.
+ StringRef getDeclDescription(const Decl *D);
+
/// \brief Get the declaration of the called function (path-sensitive).
const FunctionDecl *getCalleeDecl(const CallExpr *CE) const;
Modified: cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp?rev=259905&r1=259904&r2=259905&view=diff
==
--- cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp (original)
+++ cfe/tags/checker/checker-278/lib/Analysis/BodyFarm.cpp Fri Feb 5 13:17:16
2016
@@ -383,10 +383,49 @@ Stmt *BodyFarm::getBody(const FunctionDe
return Val.getValue();
}
+static const ObjCIvarDecl *findBackingIvar(const ObjCPropertyDecl *Prop) {
+ const ObjCIvarDecl *IVar = Prop->getPropertyIvarDecl();
+
+ if (IVar)
+return IVar;
+
+ // When a readonly property is shadowed in a class extensions with a
+ // a readwrite property, the instance variable belongs to the shadowing
+ // property rather than the shadowed property. If there is no instance
+ // variable on a readonly property, check to see whether the property is
+ // shadowed and if so try to get the instance variable from shadowing
+ // property.
+ if (!Prop->isReadOnly())
+return nullptr;
+
+ aut
[llvm-branch-commits] [cfe-branch] r277772 - [docs] Add 3.9 release notes for the static analyzer.
Author: dcoughlin Date: Thu Aug 4 16:27:47 2016 New Revision: 22 URL: http://llvm.org/viewvc/llvm-project?rev=22&view=rev Log: [docs] Add 3.9 release notes for the static analyzer. Modified: cfe/branches/release_39/docs/ReleaseNotes.rst Modified: cfe/branches/release_39/docs/ReleaseNotes.rst URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/docs/ReleaseNotes.rst?rev=22&r1=21&r2=22&view=diff == --- cfe/branches/release_39/docs/ReleaseNotes.rst (original) +++ cfe/branches/release_39/docs/ReleaseNotes.rst Thu Aug 4 16:27:47 2016 @@ -232,7 +232,27 @@ libclang Static Analyzer --- -... +The scan-build and scan-build-py tools now include a +``--force-analyze-debug-code`` flag to force projects to build in debug mode. +This can result in more precise analysis because it leaves in assertions. + +On Windows, checks for memory leaks, double frees, and use-after-free problems +are now enabled by default. + +The analyzer now supports Objective-C class properties. + +Diagnostics for misuse of _Nonnull are greatly improved. + +Several new checkers were added: + +- The analyzer now checks for incorrect usage of MPI APIs in C and C++. This + check can be enabled by passing the following command to scan-build: + ``-enable-checker optin.mpi.MPI-Checker``. +- The analyzer now checks for improper retains and releases of ivars synthesized + for properties in Objective-C ``-dealloc`` methods under manual + retain/release. +- The analyzer now checks for missing and extra calls to ``[super dealloc]`` + under manual retain/release. Core Analysis Improvements == ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-branch] r278175 - [docs] Update 3.9 release notes for the static analyzer.
Author: dcoughlin Date: Tue Aug 9 18:01:43 2016 New Revision: 278175 URL: http://llvm.org/viewvc/llvm-project?rev=278175&view=rev Log: [docs] Update 3.9 release notes for the static analyzer. Modified: cfe/branches/release_39/docs/ReleaseNotes.rst Modified: cfe/branches/release_39/docs/ReleaseNotes.rst URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/docs/ReleaseNotes.rst?rev=278175&r1=278174&r2=278175&view=diff == --- cfe/branches/release_39/docs/ReleaseNotes.rst (original) +++ cfe/branches/release_39/docs/ReleaseNotes.rst Tue Aug 9 18:01:43 2016 @@ -232,27 +232,22 @@ libclang Static Analyzer --- -The scan-build and scan-build-py tools now include a -``--force-analyze-debug-code`` flag to force projects to build in debug mode. -This can result in more precise analysis because it leaves in assertions. +The analyzer now checks for incorrect usage of MPI APIs in C and C++. This +check can be enabled by passing the following command to scan-build: +``-enable-checker optin.mpi.MPI-Checker.`` + +The analyzer now checks for improper instance cleanup up in Objective-C +``-dealloc`` methods under manual retain/release. On Windows, checks for memory leaks, double frees, and use-after-free problems are now enabled by default. -The analyzer now supports Objective-C class properties. - -Diagnostics for misuse of _Nonnull are greatly improved. - -Several new checkers were added: +The analyzer now includes scan-build-py, an experimental reimplementation of +scan-build in Python that also creates compilation databases. -- The analyzer now checks for incorrect usage of MPI APIs in C and C++. This - check can be enabled by passing the following command to scan-build: - ``-enable-checker optin.mpi.MPI-Checker``. -- The analyzer now checks for improper retains and releases of ivars synthesized - for properties in Objective-C ``-dealloc`` methods under manual - retain/release. -- The analyzer now checks for missing and extra calls to ``[super dealloc]`` - under manual retain/release. +The scan-build tool now supports a ``--force-analyze-debug-code`` flag that +forces projects to analyze in debug mode. This flag leaves in assertions and so +typically results in fewer false positives. Core Analysis Improvements == ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [cfe-tag] r286888 - Tagging checker-279.
Author: dcoughlin Date: Mon Nov 14 15:00:57 2016 New Revision: 286888 URL: http://llvm.org/viewvc/llvm-project?rev=286888&view=rev Log: Tagging checker-279. Added: cfe/tags/checker/checker-279/ (props changed) - copied from r286863, cfe/trunk/ Propchange: cfe/tags/checker/checker-279/ -- --- svn:ignore (added) +++ svn:ignore Mon Nov 14 15:00:57 2016 @@ -0,0 +1,3 @@ +configure.out +cscope.files +cscope.out Propchange: cfe/tags/checker/checker-279/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Mon Nov 14 15:00:57 2016 @@ -0,0 +1,3 @@ +/cfe/branches/type-system-rewrite:134693-134817 +/cfe/trunk/test:170344 +/cfe/trunk/test/SemaTemplate:126920 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
[llvm-branch-commits] [llvm-tag] r286889 - Tagging checker-279.
Author: dcoughlin Date: Mon Nov 14 15:01:18 2016 New Revision: 286889 URL: http://llvm.org/viewvc/llvm-project?rev=286889&view=rev Log: Tagging checker-279. Added: llvm/tags/checker/checker-279/ (props changed) - copied from r286863, llvm/trunk/ Propchange: llvm/tags/checker/checker-279/ -- --- svn:ignore (added) +++ svn:ignore Mon Nov 14 15:01:18 2016 @@ -0,0 +1,25 @@ +Debug +Release +Release-Asserts +mklib +Makefile.config +config.log +config.status +cvs.out +autom4te.cache +configure.out +LLVM-* +_distcheckdir +llvm.spec +svn-commit.* +*.patch +*.patch.raw +cscope.* +Debug+Coverage-Asserts +Release+Coverage-Asserts +Debug+Coverage +Release+Coverage +Debug+Checks +Debug+Asserts +Release+Asserts +build Propchange: llvm/tags/checker/checker-279/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Mon Nov 14 15:01:18 2016 @@ -0,0 +1,3 @@ +/llvm/branches/Apple/Pertwee:110850,110961 +/llvm/branches/type-system-rewrite:133420-134817 +/llvm/trunk:155241 ___ llvm-branch-commits mailing list [email protected] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
