summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* tsan: ignore destruction of global mutexes (causes a lot of non-interesting ↵Dmitry Vyukov2012-09-073-1/+37
| | | | | | reports) llvm-svn: 163400
* Patch from Andrew Kaylor for linux:Greg Clayton2012-09-073-3/+15
| | | | | | | | | | The attached patch fixes a problem with performing an attach from the SBTarget API on Linux (and other systems that use ProcessPOSIX). When Process::Attach was called from SBTarget, it resulted in a call to a form of the DoAttachWithID function that wasn't implemented in ProcessPOSIX, and so it fell back to the default implementation (which just returns an error). It didn't seem necessary to use the attach_info parameter for this case, so I just implemented it as a call to the simpler version of the function. In debugging this problem, I also found that SBTarget wasn't checking the return value from the Attach call, causing it to hang when the attach fails. llvm-svn: 163399
* Patch from Andrew Kaylor for linux:Greg Clayton2012-09-073-26/+43
| | | | | | | | | | | | | | | The attached patch adds support for debugging 32-bit processes when running a 64-bit lldb on an x86_64 Linux system. Making this work required two basic changes: 1) Getting lldb to report that it could debug 32-bit processes 2) Changing an assumption about how ptrace works when debugging cross-platform For the first change, I took a conservative approach and only enabled this for x86_64 Linux platforms. It may be that the change I made in Host.cpp could be extended to other 64-bit Linux platforms, but I'm not familiar enough with the other platforms to know for sure. For the second change, the Linux ProcessMonitor class was assuming that ptrace(PTRACE_[PEEK|POKE]DATA...) would read/write a "word" based on the child process word size. However, the ptrace documentation says that the "word" size read or written is "determined by the OS variant." I verified experimentally that when ptracing a 32-bit child from a 64-bit parent a 64-bit word is read or written. llvm-svn: 163398
* Thread-safety analysis: Add support for selectively turning off warningsDeLesley Hutchins2012-09-073-75/+180
| | | | | | within part of a particular method. llvm-svn: 163397
* Custom DAGCombine for and/or/xor are for all ARMs.Jakob Stoklund Olesen2012-09-071-6/+3
| | | | | | | The 'select' transformations apply to all ARM architectures and don't require hasV6T2Ops. llvm-svn: 163396
* MC: Overhaul handling of .lcommBenjamin Kramer2012-09-0714-38/+67
| | | | | | | | | | | | | - Darwin lied about not supporting .lcomm and turned it into zerofill in the asm parser. Push the zerofill-conversion down into macho-specific code. - This makes the tri-state LCOMMType enum superfluous, there are no targets without .lcomm. - Do proper error reporting when trying to use .lcomm with alignment on a target that doesn't support it. - .comm and .lcomm alignment was parsed in bytes on COFF, should be power of 2. - Fixes PR13755 (.lcomm crashes on ELF). llvm-svn: 163395
* [analyzer] Explain why we need condition 8.Anna Zaks2012-09-071-1/+4
| | | | llvm-svn: 163394
* Remove the infinite recursion check for now, as we don't have __thread on ↵Alexander Potapenko2012-09-071-3/+1
| | | | | | Mac, and TSD is an overkill. llvm-svn: 163393
* Two minor changes:Alexander Potapenko2012-09-071-1/+8
| | | | | | | -- exit from infinite recursion in CHECK() -- print a verbose message if mapping of the shadow memory has failed. llvm-svn: 163391
* PR13754: llvm-mc/x86 crashes on .cfi directives without the % prefix for ↵Benjamin Kramer2012-09-072-5/+24
| | | | | | | | | registers. gas accepts this and it seems to be common enough to be worth supporting. This doesn't affect the parsing of reg operands outside of .cfi directives. llvm-svn: 163390
* Attempt to pacify Windows buildbots.Roman Divacky2012-09-071-1/+1
| | | | llvm-svn: 163389
* Link to crtend.S when PIE in the FreeBSD driver. Patch by Brooks Davis!Roman Divacky2012-09-072-3/+17
| | | | llvm-svn: 163388
* Adds a first iteration of the basic AST matcher documentation landing page.Manuel Klimek2012-09-071-0/+130
| | | | llvm-svn: 163387
* Introduces anchors into LibASTMatchersReference.html.Manuel Klimek2012-09-072-159/+184
| | | | | | | | This allows linking to LibASTMatchersRefernce.html#<matcher><N>Anchor to link to the N'the declaration of a matcher and automatically expand its documentation. llvm-svn: 163386
* Change the behavior of the isDerivedFrom-matcher to not match on theDaniel Jasper2012-09-073-13/+31
| | | | | | | | | | | | class itself. This caused some confusion (intuitively, a class is not derived from itself) and makes it hard to write certain matchers, e.g. "match and bind any pair of base and subclass". The original behavior can be achieved with a new isA-matcher. Similar to all other matchers, this matcher has the same behavior and name as the corresponding AST-entity - in this case the isa<>() function. llvm-svn: 163385
* [asan] Raise quarantine size a bit with ASAN_LOW_MEMORY.Evgeniy Stepanov2012-09-071-1/+1
| | | | | | Our tests expect that a 16M block will fit in the quarantine. llvm-svn: 163384
* MipsAsmParser: Fix a couple of string use-after-frees and misuses of classof.Benjamin Kramer2012-09-071-8/+8
| | | | llvm-svn: 163383
* Implements hasAncestor.Manuel Klimek2012-09-074-15/+245
| | | | | | | | | | | | | | | | | | | | | | Implements the hasAncestor matcher. This builds on the previous patch that introduced DynTypedNode to build up a parent map for an additional degree of freedom in the AST traversal. The map is only built once we hit an hasAncestor matcher, in order to not slow down matching for cases where this is not needed. We could implement some speed-ups for special cases, like building up the parent map as we go and only building up the full map if we break out of the already visited part of the tree, but that is probably not going to be worth it, and would make the code significantly more complex. Major TODOs are: - implement hasParent - implement type traversal - implement memoization in hasAncestor llvm-svn: 163382
* [ASan] hack initialization-bug test so that it stably passes on both Linux ↵Alexey Samsonov2012-09-072-8/+27
| | | | | | and Mac: make the bug appear independent of the translation unit order llvm-svn: 163381
* yet another attempt at fixing @OCAMLOPT@ for sed.Nuno Lopes2012-09-071-1/+1
| | | | | | Patch by Rick Foos. llvm-svn: 163380
* [ASan] add Linux-specific test for initialization order that checks that we ↵Alexey Samsonov2012-09-071-0/+37
| | | | | | find a bug independently of translation units order llvm-svn: 163379
* SimplifyCFG: ValidLookupTableConstant should be staticHans Wennborg2012-09-071-1/+1
| | | | llvm-svn: 163378
* Revert "Rework the retain-release.m test to use FileCheck and the "text" output"Ted Kremenek2012-09-071-1348/+180
| | | | | | Apparently the output of this test is not deterministic. Needs investigation. llvm-svn: 163377
* [Sanitizer] add --demangle option to llvm-symbolizer (for now just assume ↵Alexey Samsonov2012-09-071-0/+17
| | | | | | that __cxa_demangle option is available) llvm-svn: 163376
* Fix off-by-one bug in diagnostic prose of ObjCContainersASTChecker.Ted Kremenek2012-09-072-8/+10
| | | | | | | | | While the check itself should count 0-based for the parameter index, the diagnostic should be 1-based (first, second, third, not start at 0). Fixes <rdar://problem/12249569>. llvm-svn: 163375
* ExplodedGraph::shouldCollectNode() should not collect nodes for non-Expr StmtsTed Kremenek2012-09-071-3/+3
| | | | | | | | (as this previously was the case before this was refactored). We also shouldn't need to specially handle BinaryOperators since the eagerly-assume heuristic tags such nodes. llvm-svn: 163374
* Rework the retain-release.m test to use FileCheck and the "text" outputTed Kremenek2012-09-071-180/+1348
| | | | | | | | | | of the analyzer, as the RetainReleaseChecker has many fine-grain path diagnostic events that were not being checked. This uncovered an inconsistency between the path diagnostics between Objective-C and Objective-C++ code in ConditionBRVisitor that was fixed in a recent patch. llvm-svn: 163373
* Fix bug in ConditionBRVisitor where for C++ (and not C) we were not ignoringTed Kremenek2012-09-073-6/+6
| | | | | | | | | | | | | | | | implicit pointer-to-boolean conversions in condition expressions. This would result in inconsistent diagnostic emission between C and C++. A consequence of this is now ConditionBRVisitor and TrackConstraintBRVisitor may emit redundant diagnostics, for example: "Assuming pointer value is null" (TrackConstraintBRVisitor) "Assuming 'p' is null" (ConditionBRVisitor) We need to reconcile the two, and perhaps prefer one over the other in some cases. llvm-svn: 163372
* Add -exact-match option to FileCheck to allow clients to do exact matches ↵Ted Kremenek2012-09-071-1/+5
| | | | | | without using regular expressions. llvm-svn: 163371
* Stop emitting lifetime region info when stack coloring is not enabled in O0Michael Liao2012-09-071-0/+6
| | | | | | - this should fix PR13780 llvm-svn: 163370
* PR9023: A template template parameter whose template parameter list contains anRichard Smith2012-09-0712-152/+607
| | | | | | | | | | | | | unexpanded parameter pack is a pack expansion. Thus, as with a non-type template parameter which is a pack expansion, it needs to be expanded early into a fixed list of template parameters. Since the expanded list of template parameters is not itself a parameter pack, it is permitted to appear before the end of the template parameter list, so also remove that restriction (for both template template parameter pack expansions and non-type template parameter pack expansions). llvm-svn: 163369
* The Mips standalone assembler aliased instruction support.Jack Carter2012-09-073-0/+47
| | | | | | | | | | | | | | The assembler can alias one instruction into another based on the operands. For example the jump instruction "J" takes and immediate operand, but if the operand is a register the assembler will change it into a jump register "JR" instruction. These changes are in the instruction td file. Test cases included Contributer: Vladimir Medic llvm-svn: 163368
* [analyzer] Fail gracefully when the dynamic type is outside the hierarchy.Jordan Rose2012-09-072-1/+41
| | | | | | | | | | | | | | | | | | | With some particularly evil casts, we can get an object whose dynamic type is not actually a subclass of its static type. In this case, we won't even find the statically-resolved method as a devirtualization candidate. Rather than assert that this situation cannot occur, we now simply check that the dynamic type is not an ancestor or descendent of the static type, and leave it at that. This error actually occurred analyzing LLVM: CallEventManager uses a BumpPtrAllocator to allocate a concrete subclass of CallEvent (FunctionCall), but then casts it to the actual subclass requested (such as ObjCMethodCall) to perform the constructor. Yet another crash in PR13763. llvm-svn: 163367
* Ensure that the ShouldStopHere plans get called even when doing "virtual" steps.Jim Ingham2012-09-072-95/+113
| | | | llvm-svn: 163366
* For now, treat breakpoint hits like regular stops when calculation ↵Jim Ingham2012-09-071-5/+6
| | | | | | InlinedStackDepth. llvm-svn: 163365
OpenPOWER on IntegriCloud