summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* Allow vector types in pseudo-destructor expressions. Fixes PR13798.Douglas Gregor2012-09-102-1/+13
| | | | llvm-svn: 163514
* Workaround for MacOSX build failure with gcc <= 4.4Alexander Kornienko2012-09-101-6/+6
| | | | | | | | | | | | | | | | Summary: A better solution to http://llvm.org/bugs/show_bug.cgi?id=13777 Named namespace + more unique name to make ODR violations unlikely. Reviewers: chandlerc, doug.gregor, klimek Reviewed By: doug.gregor CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D38 llvm-svn: 163513
* Revert "Revert Ted's r163489 and r163490, due to breakage."Ted Kremenek2012-09-102-2788/+2911
| | | | | | | | | I need to see how this breaks on other platforms when I fix the issue that Benjamin Kramer pointed out. This includes r163489 and r163490, plus a two line change. llvm-svn: 163512
* Make helper functions static.Benjamin Kramer2012-09-102-5/+5
| | | | llvm-svn: 163505
* Wrong crtbegin/crtend pair used for PIE on Android.Evgeniy Stepanov2012-09-102-2/+23
| | | | | | | | Android uses the same flavour of crt*.o for PIE and non-PIE executables, and a different one for DSOs. GNU/Linux, on the other hand, uses one set of crt*.o for non-PIE executables, and another for both PIE executables and DSOs. llvm-svn: 163500
* Revert Ted's r163489 and r163490, due to breakage.NAKAMURA Takumi2012-09-102-2911/+2788
| | | | | | | r163489, "Take another crack at stabilizing the emission order of analyzer" r163490, "Use isBeforeInTranslationUnitThan() instead of operator<." llvm-svn: 163497
* MIPS: Use -march=arch option to select either generic MIPS ISA,Simon Atanasyan2012-09-103-56/+48
| | | | | | | | or the name of a particular processor. The patch reviewed by Douglas Gregor. llvm-svn: 163492
* Use isBeforeInTranslationUnitThan() instead of operator<.Ted Kremenek2012-09-101-7/+7
| | | | llvm-svn: 163490
* Take another crack at stabilizing the emission order of analyzerTed Kremenek2012-09-102-2788/+2911
| | | | | | | | | | | | | | diagnostics without using FoldingSetNodeIDs. This is done by doing a complete recursive comparison of the PathDiagnostics. Note that the previous method of comparing FoldingSetNodeIDs did not end up relying on unstable things such as pointer addresses, so I suspect this may still have some issues on various buildbots because I'm not sure if the true source of non-determinism has been eliminated. The tests pass for me, so the only way to know is to commit this change and see what happens. llvm-svn: 163489
* Have PathDiagnosticPiece::getString() return a StringRef insteadTed Kremenek2012-09-101-1/+1
| | | | | | of a std::string. llvm-svn: 163488
* Indent the "message" key in analyzer plist output.Ted Kremenek2012-09-101-0/+1
| | | | llvm-svn: 163487
* Add handy script for updating plist FileCheck expected output forTed Kremenek2012-09-101-0/+51
| | | | | | analyzer tests. llvm-svn: 163486
* RawCommentList: don't copy the whole new RawComment to LastComment each time.Dmitri Gribenko2012-09-092-17/+15
| | | | | | We just need a single SourceLocation for previous comment end. llvm-svn: 163482
* Remove dead method ProgramState::MarshalState().Ted Kremenek2012-09-092-15/+0
| | | | llvm-svn: 163479
* Added missing const.Abramo Bagnara2012-09-092-2/+2
| | | | llvm-svn: 163477
* Fixed support for disabled wchar_t and added an appropriate test.Abramo Bagnara2012-09-092-3/+10
| | | | llvm-svn: 163476
* clang/test/Sema/format-strings-scanf.c: Relax a couple of expressions with ↵NAKAMURA Takumi2012-09-081-2/+2
| | | | | | | | | expected-warning-re to let matched for Win32 targets. - format specifies type 'wchar_t **' (aka 'int **') but the argument has type 'float *' - format specifies type 'wchar_t **' (aka 'unsigned short **') but the argument has type 'float *' llvm-svn: 163468
* Add some ARM EABI preprocessor builtins testsAnton Korobeynikov2012-09-081-0/+209
| | | | llvm-svn: 163467
* Do not construct StringRef from NULL argument.Anton Korobeynikov2012-09-081-1/+1
| | | | llvm-svn: 163465
* Provide some ACLE C defines. This should fix PR13796Anton Korobeynikov2012-09-081-4/+19
| | | | llvm-svn: 163464
* Try disabling the FileCheck part of the retain-release.m test to see if it ↵Ted Kremenek2012-09-081-2/+4
| | | | | | fixes the buildbots. llvm-svn: 163462
* Fix bug in BugReporter::RemoveUneededCalls() where "prunable"Ted Kremenek2012-09-086-6/+901
| | | | | | | PathDiagnosticEventPieces were *always* pruned. Instead, they are suppose to only be pruned if the entire call gets pruned. llvm-svn: 163460
* When a bad UTF-8 encoding or bogus escape sequence is encountered in aRichard Smith2012-09-088-80/+167
| | | | | | | string literal, produce a diagnostic pointing at the erroneous character range, not at the start of the literal. llvm-svn: 163459
* This test does not require --exact-match from FileCheck.Ted Kremenek2012-09-081-1/+1
| | | | llvm-svn: 163456
* Attempt (again) to stabilize the order of the emission of diagnosticsTed Kremenek2012-09-0810-12595/+35618
| | | | | | | of the analyzer by using the FullProfile() of a PathDiagnostic for ordering them. llvm-svn: 163455
* Format strings: suggest %lld instead of %qd and %Ld with -Wformat-non-iso.Jordan Rose2012-09-085-60/+60
| | | | | | | As a corollary to the previous commit, even when an extension is available, we can still offer a fixit to the standard modifier. llvm-svn: 163453
* Format strings: %Ld isn't available on Darwin or Windows.Jordan Rose2012-09-0810-60/+151
| | | | | | | | | This seems to be a GNU libc extension; we offer a fixit to %lld on these platforms. <rdar://problem/11518237> llvm-svn: 163452
* -fcatch-undefined-behavior: Factor emission of the creation of, and branch to,Richard Smith2012-09-087-121/+84
| | | | | | | | | the trap BB out of the individual checks and into a common function, to prepare for making this code call into a runtime library. Rename the existing EmitCheck to EmitTypeCheck to clarify it and to move it out of the way of the new EmitCheck. llvm-svn: 163451
* [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
* [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
* 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
* 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
* Add plist output for retain-release.m in addition to -verify checking.Ted Kremenek2012-09-071-2/+21887
| | | | llvm-svn: 163418
* 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
OpenPOWER on IntegriCloud