summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fixed a problem where watchpoint conditions wouldSean Callanan2012-09-081-1/+1
| | | | | | | | run code when it didn't really need to run. <rdar://problem/12145006> llvm-svn: 163450
* [analyzer] ObjCSelfInitChecker should always clean up in postCall checks.Jordan Rose2012-09-083-68/+7
| | | | | | | | | | | | | | | | | | | | ObjCSelfInitChecker stashes information in the GDM to persist it across function calls; it is stored in pre-call checks and retrieved post-call. The post-call check is supposed to clear out the stored state, but was failing to do so in cases where the call did not have a symbolic return value. This was actually causing the inappropriate cache-out from r163361. Per discussion with Anna, we should never actually cache out when assuming the receiver of an Objective-C message is non-nil, because we guarded that node generation by checking that the state has changed. Therefore, the only states that could reach this exact ExplodedNode are ones that should have merged /before/ making this assumption. r163361 has been reverted and the test case removed, since it won't actually test anything interesting now. llvm-svn: 163449
* [analyzer] Add debug output for ObjCSelfInitChecker's state.Jordan Rose2012-09-081-0/+48
| | | | | | No functionality change. llvm-svn: 163448
* Revert "Add plist output for retain-release.m in addition to -verify checking."Ted Kremenek2012-09-081-21887/+2
| | | | llvm-svn: 163447
* Revert "Attempt to make the PathDiagnostic emission order more deterministic by"Ted Kremenek2012-09-082-95/+60
| | | | llvm-svn: 163446
* Revert "Further tweaks to hopefully make the PathDiagnostic emission more ↵Ted Kremenek2012-09-081-8/+18
| | | | | | deterministic." llvm-svn: 163445
* [analyzer] Remove constraints on dead symbols as part of removeDeadBindings.Jordan Rose2012-09-083-9/+29
| | | | | | | | | | | | | Previously, we'd just keep constraints around forever, which means we'd never be able to merge paths that differed only in constraints on dead symbols. Because we now allow constraints on symbolic expressions, not just single symbols, this requires changing SymExpr::symbol_iterator to include intermediate symbol nodes in its traversal, not just the SymbolData leaf nodes. llvm-svn: 163444
* [analyzer] Symbolic regions are live if any subregions are live.Jordan Rose2012-09-081-21/+9
| | | | | | | | | | RegionStoreManager was only treating a SymbolicRegion's symbel as live if there was a binding referring to the region itself. No test case because constraints are currently not being cleaned out of the constraint manager at all (even if the symbol is legitimately dead). llvm-svn: 163443
* [analyzer] Cast the result of a placement new-expression to the correct type.Jordan Rose2012-09-082-1/+29
| | | | | | | | | | | This is necessary because further analysis will assume that the SVal's type matches the AST type. This caused a crash when trying to perform a derived-to-base cast on a C++ object that had been new'd to be another object type. Yet another crash in PR13763. llvm-svn: 163442
* Don't allocate memory when enumerting stack. We now have fixed size buffers ↵Greg Clayton2012-09-081-61/+147
| | | | | | to avoid this issue. llvm-svn: 163441
* Fixed a crash in the testsuite because the wrongSean Callanan2012-09-081-1/+1
| | | | | | type was being completed. llvm-svn: 163440
* Fiddle with the heuristic about where to set the stop point in a nested ↵Jim Ingham2012-09-081-0/+27
| | | | | | | | inline stack when we get there by breakpoint. If we hit a user breakpoint, I set the stop point to the bottom-most frame 'cause that's what we did before. <rdar://problem/12258999> Setting breakpoint in always inline function is stopping in function above it llvm-svn: 163439
* [analyzer] Address John's code review for r163407.Anna Zaks2012-09-082-13/+18
| | | | | | | Teach malloc sizeof checker to find type inconsistencies in multi- dimensional arrays. llvm-svn: 163438
* Remove an incorrect assert during branch weight propagation.Andrew Trick2012-09-082-1/+37
| | | | | | Patch and test case by Alastair Murray! llvm-svn: 163437
* A bunch of test cases for inlined stepping.Jim Ingham2012-09-073-0/+371
| | | | llvm-svn: 163436
* Make file + line breakpoints even more efficient by using our SearchFilter ↵Greg Clayton2012-09-071-2/+12
| | | | | | objects correctly now that we sometimes don't check for inlined breakpoints. llvm-svn: 163435
* objective-C: introduce __attribute((objc_requires_super)) on methodFariborz Jahanian2012-09-079-8/+94
| | | | | | | | in classes. Use it to flag those method implementations which don't contain call to 'super' if they have 'super' class and it has the method with this attribute set. This is wip. // rdar://6386358 llvm-svn: 163434
* Save and restore the current inlined depth over function calls.Jim Ingham2012-09-072-1/+6
| | | | llvm-svn: 163433
* Add SetCurrentInlinedDepth API.Jim Ingham2012-09-072-5/+30
| | | | | | In GetFramesUpTo, don't adjust the number of frames for the inlined depth if the number of frames in UINT32_MAX. llvm-svn: 163432
* In ARC, if we're emitting assembly markers for calls toJohn McCall2012-09-072-6/+34
| | | | | | | | | objc_retainAutoreleasedReturnValue, we need to also be killing them during return peepholing. Make sure we recognize an intervening bitcast, but more importantly, assert if we can't find the asm marker at all. rdar://problem/12133032 llvm-svn: 163431
* Further tweaks to hopefully make the PathDiagnostic emission more deterministic.Ted Kremenek2012-09-071-18/+8
| | | | llvm-svn: 163430
* Fixed http://llvm.org/bugs/show_bug.cgi?id=13777Alexander Kornienko2012-09-071-2/+4
| | | | llvm-svn: 163429
* Remove ProgramState::getSymVal(). It was being misused by Checkers,Ted Kremenek2012-09-0710-41/+129
| | | | | | | | | | | | | | | | | | | | with at least one subtle bug in MacOSXKeyChainAPIChecker where the calling the method was a substitute for assuming a symbolic value was null (which is not the case). We still keep ConstraintManager::getSymVal(), but we use that as an optimization in SValBuilder and ProgramState::getSVal() to constant-fold SVals. This is only if the ConstraintManager can provide us with that information, which is no longer a requirement. As part of this, introduce a default implementation of ConstraintManager::getSymVal() which returns null. For Checkers, introduce ConstraintManager::isNull(), which queries the state to see if the symbolic value is constrained to be a null value. It does this without assuming it has been implicitly constant folded. llvm-svn: 163428
* Attempt to make the PathDiagnostic emission order more deterministic byTed Kremenek2012-09-072-60/+95
| | | | | | looking at PathPieces. llvm-svn: 163427
* Add default implementation of ConstraintManager::getSymVal() and a doxygen ↵Ted Kremenek2012-09-071-1/+8
| | | | | | comment. llvm-svn: 163426
* Remove ConstraintManager:isEqual(). It is no longer used.Ted Kremenek2012-09-072-10/+0
| | | | llvm-svn: 163425
* Refactored DFA generator. Merged transition class into state class.Anshuman Dasgupta2012-09-071-117/+51
| | | | | | Patch by Ivan Llopard! llvm-svn: 163424
* Add IRC handle entry to CREDITS.TXT as a test commit.Alex Rosenberg2012-09-071-2/+3
| | | | llvm-svn: 163423
* Correct an unfortunately necessary typo.Sandeep Patel2012-09-071-4/+4
| | | | llvm-svn: 163422
* Added a quick example to show how disasembly output can be customized.Greg Clayton2012-09-071-0/+24
| | | | llvm-svn: 163421
* Fix alignment of .comm and .lcomm on mingw32.Benjamin Kramer2012-09-079-17/+42
| | | | | | | | For some reason .lcomm uses byte alignment and .comm log2 alignment so we can't use the same setting for both. Fix this by reintroducing the LCOMM enum. I verified this against mingw's gcc. llvm-svn: 163420
* Initial relocations test for the Mips standalone assembler.Jack Carter2012-09-071-0/+41
| | | | | | | This is not an exhaustive set, but something we can build on. Contributer: Vladimir Medic llvm-svn: 163419
* Add plist output for retain-release.m in addition to -verify checking.Ted Kremenek2012-09-071-2/+21887
| | | | llvm-svn: 163418
* Train LLDB to deal with bad linker N_SO entries that point to our source ↵Greg Clayton2012-09-071-0/+36
| | | | | | files for debug map + DWARF in .o file debugging. llvm-svn: 163417
* Fix indent.Chad Rosier2012-09-071-2/+2
| | | | llvm-svn: 163416
* build/clang_darwin: Add the ASAN dynamic library.Daniel Dunbar2012-09-071-0/+13
| | | | llvm-svn: 163415
* [asan] Use a relative include path instead of requiring build system ↵Daniel Dunbar2012-09-071-2/+2
| | | | | | involvement. llvm-svn: 163414
* build: Teach Makefile build system about asan/dynamic subdir.Daniel Dunbar2012-09-072-1/+26
| | | | llvm-svn: 163413
* build: Add support for building dylibs.Daniel Dunbar2012-09-073-9/+39
| | | | llvm-svn: 163412
* [asan] Suppress some bogus -Winvalid-noreturn diagnostics.Daniel Dunbar2012-09-071-0/+10
| | | | llvm-svn: 163411
* Ampersand goes with identifier.Chad Rosier2012-09-071-2/+2
| | | | llvm-svn: 163410
* [analyzer] Use cast<> instead of getAs<> for a CFGElement known to be a CFGStmt.Jordan Rose2012-09-071-4/+3
| | | | | | | | | | | | When adding the next statement to the CoreEngine's work list, we take care of all the special cases first. We certainly shouldn't be building PostStmts with null statements (the diagnostics machinery assumes such StmtPoints do not exist), and we should find out sooner if we're missing a special case. A refinement of r163402 that should help prevent further issues like PR13760. llvm-svn: 163409
* Moved back getCharAndSizeNoWarn to public area.Abramo Bagnara2012-09-071-15/+15
| | | | llvm-svn: 163408
* [analyzer] Fix a false positive in sizeof malloc checker.Anna Zaks2012-09-072-33/+63
| | | | | | | Don't warn when the sizeof argument is an array with the same element type as the pointee of the return type. llvm-svn: 163407
* Add test case for <rdar://problem/12075238>, which recently got fixed by ↵Ted Kremenek2012-09-071-0/+18
| | | | | | changes to RegionStore. llvm-svn: 163406
* Contrary to what the documentation says, .lcomm alignment on COFF is in ↵Benjamin Kramer2012-09-071-1/+1
| | | | | | bytes, not power of 2. llvm-svn: 163405
* Whitespace.Chad Rosier2012-09-071-4/+0
| | | | llvm-svn: 163404
* Bring buildbots back. Fix scoping issue and coding style from r163397.Chad Rosier2012-09-071-6/+8
| | | | llvm-svn: 163403
* [analyzer] Don't use the address of a temporary CFGElement.Jordan Rose2012-09-071-1/+2
| | | | | | | | | | | | | | | | | GCC destroys temporary objects more aggressively than clang, so this results in incorrect behavior when compiling GCC Release builds. We could avoid this issue under C++11 by preventing getAs from being called when 'this' is an rvalue: template<class ElemTy> const ElemTy *getAs() const & { ... } template<class ElemTy> const ElemTy *getAs() const && = delete; Unfortunately, we do not have compatibility macros for this behavior yet. This will hopefully fix PR13760 and PR13762. llvm-svn: 163402
* Update function names to conform to guidelines. No functional change intended.Chad Rosier2012-09-072-49/+48
| | | | llvm-svn: 163401
OpenPOWER on IntegriCloud