aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-09-21Re-enable faux-bodies by default.Ted Kremenek
Try this again, now that r164392 is in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164393 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Use helper method to create DeclRefExprs in BodyFarm, hopefully allevatingTed Kremenek
them being correctly constructed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164392 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Add some structuring comments. No functionality change.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164391 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Update comment.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164390 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Use MapVectors to make the order we mark virtual functions used by a vtableRafael Espindola
deterministic. Fixes pr13868. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164382 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Update for encapsulating the "construct*AlignmentFromInt" methods.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164374 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Revert r164364, "Flip "faux-bodies" in the analyzer on by default to flush ↵NAKAMURA Takumi
out bugs." It crashed test/Analysis/Output/blocks.m on some hosts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164368 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Make warnings about uninitialized fields include the field name.Hans Wennborg
This makes the wording more informative, and consistent with the other warnings about uninitialized variables. Also, me and David who reviewed this couldn't figure out why we would need to do a lookup to get the name of the variable; so just print the name directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164366 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Flip "faux-bodies" in the analyzer on by default to flush out bugs.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164364 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Simplify getRuntimeDefinition() back to taking no arguments.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164363 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Doxygen-ify a comment.Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164360 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21PR13890: Warn on abstract final classes.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164359 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21[PCH] After deserializing a DeclContext, if it has external lexical decls ↵Argyrios Kyrtzidis
but not external visible decls, call DeclContext::setMustBuildLookupTable so that the "lazy decls" bit of the LookupPtr is set. Previously, in non-C++, if there were no new declarations causing the "lazy decls" bit to be set, then DeclContext::lookups_begin() would fail to return the decls from the PCH. Fixes rdar://12316296. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164351 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Add faux-body support for dispatch_once().Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164348 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21ARM: Use a dedicated intrinsic for vector bitwise select.Jim Grosbach
The expression based expansion too often results in IR level optimizations splitting the intermediate values into separate basic blocks, preventing the formation of the VBSL instruction as the code author intended. In particular, LICM would often hoist part of the computation out of a loop. rdar://11011471 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164342 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Tidy up. Trailing whitespace and 80 columns.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164341 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Implement faux-body-synthesis of well-known functions in the static analyzer ↵Ted Kremenek
when their implementations are unavailable. Start by simulating dispatch_sync(). This change is largely a bunch of plumbing around something very simple. We use AnalysisDeclContext to conjure up a fake function body (using the current ASTContext) when one does not exist. This is controlled under the analyzer-config option "faux-bodies", which is off by default. The plumbing in this patch is largely to pass the necessary machinery around. CallEvent needs the AnalysisDeclContextManager to get the function definition, as one may get conjured up lazily. BugReporter and PathDiagnosticLocation needed to be relaxed to handle invalid locations, as the conjured body has no real source locations. We do some primitive recovery in diagnostic generation to generate some reasonable locations (for arrows and events), but it can be improved. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164339 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Constify method.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164338 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Ensure that the Decl* wrapped by an AnalysisDeclContext cannot be changed afterTed Kremenek
construction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164337 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21Remove unused fields.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164336 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Serialize the 'IsConstexpr' bit of VarDecls. Fixes <rdar://problem/12328814>.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164335 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Thread-safety analysis: fix bug where shared trylock was treatedDeLesley Hutchins
as exclusive. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164332 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Thread safety analysis: properly canonicalize calls to virtual methods withinDeLesley Hutchins
lock expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164324 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20If the range in a for range statement doesn't have a viable begin/end function,Richard Smith
but can be dereferenced to form an expression which does have viable begin/end functions, then typo-correct the range, even if something else goes wrong with the statement (such as inaccessible begin/end or the wrong type of loop variable). In order to ensure we recover correctly and produce any followup diagnostics in this case, redo semantic analysis on the for-range statement outside of the diagnostic trap, after issuing the typo-correction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164323 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Fix typo. (s/Explided/Exploded/)David Blaikie
Patch by Sean McBride. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164318 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Improvements to my patch in r164143 perFariborz Jahanian
Richard's comments. // rdar://12202422 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164316 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Make the wchar_t promotion test consistent across different hosts by ↵David Blaikie
specifying a target triple. This test behavior differs depending (at least) on whether sizeof(wchar_t) == sizeof(int) or not. When they are equal, the first redeclaration will fail because decltype(+L'x') is unsigned int instead of the expected int. This occurs on ARM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164315 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Remove a test that is non-portable (cannot be execute on cross builds, for ↵David Blaikie
example) While it might be nice to have a quick end-to-end sanity test, it's just not really the right place for it & would require more work to enable lit to provide a detection flag ("XFAIL: cross" or similar) than the value we get from having this test. Early on it might've made more sense, but these days we've got some pretty good coverage across the stack with more targeted tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164314 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Include types when a definition's type differs from a prior declaration.David Blaikie
This is some really old code (took me a while to find the test cases) & the diagnostic text is slightly incorrect (it should really only apply to re/declarations/, redefinitions are an error regardless of whether the types match). Not sure if anyone cares about it, though. For now this just makes the diagnostic more clear in less obvious cases where the type of a declaration might not be explicitly written (eg: because it uses decltype) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164313 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Add some matchers for basic AST nodes.Daniel Jasper
Patch by Gábor Horváth. Review: http://llvm-reviews.chandlerc.com/D45 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164304 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20StmtPrinter: Print floating point literals with the right suffix to ↵Benjamin Kramer
disambiguate them from integers. Based on a patch by Olaf Krzikalla, UDL fixes by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164303 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Be more consistent about ending suggestions with a '?'Nico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164301 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20clang/test/Analysis: Fix the declaration of strlen() for 32 bit targets.NAKAMURA Takumi
- Inputs/system-header-simulator.h: Declare strlen() with size_t. - malloc-interprocedural.c: Move the definition of size_t into the header above. Then XFAIL can be pruned. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164300 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Disable source fortification on Darwin with AddressSanitizer.Alexander Potapenko
ASan doesn't play well with -D_FORTIFY_SOURCE, which is enabled by default starting at OS X 10.7 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164299 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Provide better error messages for incorrect matchers.Daniel Jasper
By changing the conversion operator into a conversion constructor, we can enabled based on the template parameters leading to better error messages. E.g.: stmt(decl()) will now create an error message including: note: candidate function not viable: no known conversion from 'clang::ast_matchers::internal::BindableMatcher<clang::Decl>' to 'const clang::ast_matchers::internal::Matcher<clang::Stmt>' for 1st argument git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164298 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20test/Analysis/malloc-interprocedural.c: Mark it as XFAIL: cygwin,mingw,msvc ↵NAKAMURA Takumi
for now. Investigating. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164295 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20The keywords "true" and "false" shouldn't warn under -Wundef.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164279 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20[analyzer] MallocChecker should not do post-call checks on inlined functions.Jordan Rose
If someone provides their own function called 'strdup', or 'reallocf', or even 'malloc', and we inlined it, the inlining should have given us all the malloc-related information we need. If we then try to attach new information to the return value, we could end up with spurious warnings. <rdar://problem/12317671> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164276 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Revert "[analyzer] Remove constraints on dead symbols as part of ↵Jordan Rose
removeDeadBindings." While we definitely want this optimization in the future, we're not currently handling constraints on symbolic /expressions/ correctly. These should stay live even if the SymExpr itself is no longer referenced because could recreate an identical SymExpr later. Only once the SymExpr can no longer be recreated -- i.e. a component symbol is dead -- can we safely remove the constraints on it. This liveness issue is tracked by <rdar://problem/12333297>. This reverts r163444 / 24c7f98828e039005cff3bd847e7ab404a6a09f8. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164275 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Handle lambdas where the lambda-declarator is an explicit "(void)". PR13854.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164274 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20Per C++11 [class.friend]p3, the 'friend' keyword must appear first in aRichard Smith
non-function friend declaration. Patch by Josh Magee! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164273 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-20PR13881: Add -Wzero-length-array for zero length array extension, and move ↵Richard Smith
it into -Wgnu. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164272 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Fix a small FIXME involving template partial ordering andEli Friedman
member function templates with an rvalue ref qualifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164267 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Fix function template partial ordering rules for static vs. non-staticEli Friedman
functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164263 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19ccc-analyzer: pass -stdlib=libc++ through to the analyzer.Benjamin Kramer
Otherwise clang can't analyze code that relies on features provided by libc++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164262 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Grammar.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164260 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Update and expand comment.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164254 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Handle a captured this for the debug information as well.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164253 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Fix awkward comment.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164252 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-19Thread-safety analysis: Fix warning when EXCLUSIVE_LOCKS_REQUIREDDeLesley Hutchins
is placed on a function that has no path to the exit block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164244 91177308-0d34-0410-b5e6-96231b3b80d8