summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* PR13479: If we see the definition of an out-of-line destructor in C++11, beRichard Smith2012-07-302-8/+38
| | | | | | | | sure to update the exception specification on the declaration as well as the definition. If we're building in -fno-exceptions mode, nothing else will trigger it to be updated. llvm-svn: 161008
* Inline MachineRegisterInfo::hasOneUseAndrew Trick2012-07-302-8/+6
| | | | llvm-svn: 161007
* Extend the InstVisitor to visit the specialized classes wrappingChandler Carruth2012-07-301-7/+46
| | | | | | | | CallInst for intrinsics. This allows users of the InstVisitor that would like to special case certain very common intrinsics to do so naturally in keeping with the type hierarchy's utility classes. llvm-svn: 161006
* [analyzer] Perform post-call checks for all inlined calls.Jordan Rose2012-07-305-33/+136
| | | | | | | | | | | | | Previously, we were only checking the origin expressions of inlined calls. Checkers using the generic postCall and older postObjCMessage callbacks were ignored. Now that we have CallEventManager, it is much easier to create a CallEvent generically when exiting an inlined function, which we can then use for post-call checks. No test case because we don't (yet) have any checkers that depend on this behavior (which is why it hadn't been fixed before now). llvm-svn: 161005
* Avoid looking at stale data in verifyAnalysis().Jakob Stoklund Olesen2012-07-301-1/+4
| | | | llvm-svn: 161004
* Allow traces to enter nested loops.Jakob Stoklund Olesen2012-07-301-14/+29
| | | | | | | | | | | This lets traces include the final iteration of a nested loop above the center block, and the first iteration of a nested loop below the center block. We still don't allow traces to contain backedges, and traces are truncated where they would leave a loop, as seen from the center block. llvm-svn: 161003
* Keep empty assembly macro argument values in the middle of the list.Jim Grosbach2012-07-302-2/+20
| | | | | | | | | | | | | | | | | | | Empty macro arguments at the end of the list should be as-if not specified at all, but those in the middle of the list need to be kept so as not to screw up the positional numbering. E.g.: .macro foo foo_-bash___: nop .endm foo 1, 2, 3, 4 foo 1, , 3, 4 Should create two labels, "foo_1_2_3_4" and "foo_1__3_4". rdar://11948769 llvm-svn: 161002
* Move the SmallVector unit tests to be type-parameterized so that we canChandler Carruth2012-07-302-152/+193
| | | | | | | | | | | | | | | | | | | | test more than a single instantiation of SmallVector. Add testing for 0, 1, 2, and 4 element sized "small" buffers. These appear to be essentially untested in the unit tests until now. Fix several tests to be robust in the face of a '0' small buffer. As a consequence of this size buffer, the growth patterns are actually observable in the test -- yes this means that many tests never caused a grow to occur before. For some tests I've merely added a reserve call to normalize behavior. For others, the growth is actually interesting, and so I captured the fact that growth would occur and adjusted the assertions to not assume how rapidly growth occured. Also update the specialization for a '0' small buffer length to have all the same interface points as the normal small vector. llvm-svn: 161001
* Don't set the thread when adopting selected execution context entries, and ↵Greg Clayton2012-07-301-11/+17
| | | | | | use the "lldb_private::StateIsStoppedState(StateType, bool)" function to tell if the state is stopped. llvm-svn: 161000
* Extend the ',' versus ';' diagnostic for -Wvexing-parse to cover the ↵Richard Smith2012-07-302-31/+37
| | | | | | with-arguments case as well as the no-arguments case. llvm-svn: 160999
* Improvements to vexing-parse warnings. Make the no-parameters case moreRichard Smith2012-07-3018-119/+186
| | | | | | | | | | | | | accurate by asking the parser whether there was an ambiguity rather than trying to reverse-engineer it from the DeclSpec. Make the with-parameters case have better diagnostics by using semantic information to drive the warning, improving the diagnostics and adding a fixit. Patch by Nikola Smiljanic. Some minor changes by me to suppress diagnostics for declarations of the form 'T (*x)(...)', which seem to have a very high false positive rate, and to reduce indentation in 'warnAboutAmbiguousFunction'. llvm-svn: 160998
* Clarify invalidation strategy in comment.Jakob Stoklund Olesen2012-07-301-0/+6
| | | | llvm-svn: 160997
* Fix grammar-o. Fixes PR13482!Nick Lewycky2012-07-301-1/+1
| | | | llvm-svn: 160996
* Assert that all trace candidate blocks have been visited by the PO.Jakob Stoklund Olesen2012-07-301-11/+6
| | | | | | | | | | When computing a trace, all the candidates for pred/succ must have been visited. Filter out back-edges first, though. The PO traversal ignores them. Thanks to Andy for spotting this in review. llvm-svn: 160995
* Hook into PassManager's analysis verification.Jakob Stoklund Olesen2012-07-303-7/+4
| | | | | | | By overriding Pass::verifyAnalysis(), the pass contents will be verified by the pass manager. llvm-svn: 160994
* objective-c arc: ARC IRGen correctly assumes resultFariborz Jahanian2012-07-307-11/+48
| | | | | | | | | | type of generated call to super dealloc is 'void' and asserts if user's dealloc is not of 'void type. This rule must be enforced in clang front-end (with a fixit) if this is not the case, instead of asserting in CodeGen. // rdar://11987838 llvm-svn: 160993
* [analyzer] Very simple ObjC instance method inliningAnna Zaks2012-07-307-43/+156
| | | | | | | | | - Retrieves the type of the object/receiver from the state. - Binds self during stack setup. - Only explores the path on which the method is inlined (no bifurcation to explore the path on which the method is not inlined). llvm-svn: 160991
* [analyzer] fixup for adding of the "dynamic" ipa optionAnna Zaks2012-07-301-1/+2
| | | | llvm-svn: 160990
* Mark ObjCInterfaceDecl::lookupPrivateMethod as const.Anna Zaks2012-07-302-2/+3
| | | | llvm-svn: 160989
* [analyzer] Add -analyzer-ipa=dynamic option for inlining dynamicallyAnna Zaks2012-07-303-2/+24
| | | | | | | | dispatched methods. Disabled by default for now. llvm-svn: 160988
* Consider address spaces for hashing and CSEing DAG nodes. Otherwise two ↵Pete Cooper2012-07-302-0/+38
| | | | | | loads from different x86 segments but the same address would get CSEd llvm-svn: 160987
* [analyzer] Only allow CallEvents to be created by CallEventManager.Jordan Rose2012-07-309-167/+237
| | | | | | | | | | This ensures that it is valid to reference-count any CallEvents, and we won't accidentally try to reclaim a CallEvent that lives on the stack. It also hides an ugly switch statement for handling CallExprs! There should be no functionality change here. llvm-svn: 160986
* [analyzer] Remove declaration of refactored evalObjCMessage method.Jordan Rose2012-07-301-4/+0
| | | | | | No functionality change. llvm-svn: 160985
* Do not warn on correct use of the '%n' format specifier.Matt Beaumont-Gay2012-07-303-27/+6
| | | | | | | | While '%n' can be used for evil in an attacker-controlled format string, there isn't any acute danger in using it in a literal format string with an argument of the appropriate type. llvm-svn: 160984
* [analyzer] Introduce a CallEventManager to keep a pool of CallEvents.Jordan Rose2012-07-303-28/+158
| | | | | | | | | | | | | | | | | | | | This allows us to get around the C++ "virtual constructor" problem when we'd like to create a CallEvent from an ExplodedNode, an inlined StackFrameContext, or another CallEvent. The solution has three parts: - CallEventManager uses a BumpPtrAllocator to allocate CallEvent-sized memory blocks. It also keeps a cache of freed CallEvents for reuse. - CallEvents all have protected copy constructors, along with cloneTo() methods that use placement new to copy into CallEventManager-managed memory, vtables intact. - CallEvents owned by CallEventManager are now wrapped in an IntrusiveRefCntPtr. Going forwards, it's probably a good idea to create ALL CallEvents through the CallEventManager, so that we don't accidentally try to reclaim a stack-allocated CallEvent. All of this machinery is currently unused but will be put into use shortly. llvm-svn: 160983
* PR13467: Fix mach-o writer to handle case of zero stubs. Renumber ↵Nick Kledzik2012-07-303-8/+11
| | | | | | TestingHelpers kind values llvm-svn: 160982
* Typo.Eric Christopher2012-07-301-1/+1
| | | | llvm-svn: 160981
* Move comment from member operator() to class.Dmitri Gribenko2012-07-301-2/+2
| | | | llvm-svn: 160980
* Make glibc and its developers happy. Circumvent the lack of strlcat in glibc.Filipe Cabecinhas2012-07-301-1/+3
| | | | llvm-svn: 160979
* Fix a bug in ARMMachObjectWriter::RecordRelocation() in ARMMachObjectWriter.cppKevin Enderby2012-07-302-2/+53
| | | | | | | | | where the other_half of the movt and movw relocation entries needs to get set and only with the 16 bits of the other half. rdar://10038370 llvm-svn: 160978
* Add MachineInstr::isTransient().Jakob Stoklund Olesen2012-07-302-23/+25
| | | | | | | | | | | This is a cleaned up version of the isFree() function in MachineTraceMetrics.cpp. Transient instructions are very unlikely to produce any code in the final output. Either because they get eliminated by RegisterCoalescing, or because they are pseudo-instructions like labels and debug values. llvm-svn: 160977
* Add MachineTraceMetrics::verify().Jakob Stoklund Olesen2012-07-303-11/+55
| | | | | | | This function verifies the consistency of cached data in the MachineTraceMetrics analysis. llvm-svn: 160976
* Comment parser: don't crash on a completely empty \param followed by a blockDmitri Gribenko2012-07-302-2/+8
| | | | | | command llvm-svn: 160975
* c-index-test: remove dead store. Found by Clang static analyzer!Dmitri Gribenko2012-07-301-1/+0
| | | | llvm-svn: 160974
* Lexer: remove dead stores. Found by Clang static analyzer!Dmitri Gribenko2012-07-301-5/+2
| | | | llvm-svn: 160973
* Comment dumper: silence a warning by not casting away constDmitri Gribenko2012-07-301-1/+1
| | | | llvm-svn: 160972
* Add missing include for Linux buildbotDmitri Gribenko2012-07-301-0/+2
| | | | llvm-svn: 160971
* Add an assert to ParamCommandComment::getParamIndex() -- it should not beDmitri Gribenko2012-07-302-4/+12
| | | | | | called unless index is valid. llvm-svn: 160970
* Verify that the CFG hasn't changed during invalidate().Jakob Stoklund Olesen2012-07-301-2/+12
| | | | | | | The MachineTraceMetrics analysis must be invalidated before modifying the CFG. This will catch some of the violations of that rule. llvm-svn: 160969
* Add MachineBasicBlock::isPredecessor().Jakob Stoklund Olesen2012-07-302-2/+9
| | | | | | | | A->isPredecessor(B) is the same as B->isSuccessor(A), but it can tolerate a B that is null or dangling. This shouldn't happen normally, but it it useful for verification code. llvm-svn: 160968
* Despite my pathological distrust of spin locks, the number just don't lie. ↵Howard Hinnant2012-07-301-2/+13
| | | | | | I've put a small spin in __sp_mut::lock() on std::mutex::try_lock(), which is testing quite well. In my experience, putting in a yield for every failed iteration is also a major performance booster. This change makes one of the performance tests I was using (a highly contended one) run about 20 times faster. llvm-svn: 160967
* Make -Wformat check the argument type for %n.Hans Wennborg2012-07-305-8/+26
| | | | | | | This makes Clang check that the corresponding argument for "%n" in a format string is a pointer to int. llvm-svn: 160966
* Comment parser: add one more testDmitri Gribenko2012-07-301-4/+23
| | | | llvm-svn: 160965
* Update source location in test.Benjamin Kramer2012-07-301-3/+2
| | | | llvm-svn: 160964
* Fixed ePathTypePythonDir for Linux and FreeBSD (at least). This works for ↵Filipe Cabecinhas2012-07-301-3/+7
| | | | | | non-installed compilations. I will test further. llvm-svn: 160963
* Use the location of the copy assignment when diagnosing classes that are ↵Benjamin Kramer2012-07-302-4/+19
| | | | | | nontrivial because of it. llvm-svn: 160962
* Fix ambiguity detection in GetBestOverloadCandidateSimple.Benjamin Kramer2012-07-302-2/+13
| | | | | | | | | | When performing the simplistic overload resolution for single-argument methods, don't check the best overload for ambiguity with itself when the best overload doesn't happen to be the first one. Fixes PR13480. llvm-svn: 160961
* Updated statusHoward Hinnant2012-07-301-6/+0
| | | | llvm-svn: 160959
* Fix dynamic object linker for ARM GNUEABIHF.Jiangning Liu2012-07-302-2/+21
| | | | llvm-svn: 160958
* [ASan] fix cmake build warningAlexey Samsonov2012-07-301-1/+1
| | | | llvm-svn: 160957
OpenPOWER on IntegriCloud