aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2012-08-07Remove some unintended changes from my last patch.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161369 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Make sure when we get the replacement type for a template argumentEric Christopher
that we attach the lost qualifiers. Fixes rdar://11882155 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161368 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Handle null suffixes in GetTemporaryPath (PCH files don't have suffixes).Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161367 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06objective-c: Implement gcc's -Wdirect-ivar-access option.Fariborz Jahanian
// rdar://6505197 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161362 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment parsing: fix crash on \tparam followed immediately by another blockDmitri Gribenko
command, for example: \tparam\brief. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161361 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Dynamic type info - propagate through implicit casts.Anna Zaks
I currently have a bit of redundancy with the cast kind switch statement inside the ImplicitCast callback, but I might be adding more casts going forward. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161358 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Add a checker to manage dynamic type propagation.Anna Zaks
Instead of sprinkling dynamic type info propagation throughout ExprEngine, the added checker would add the more precise type information on known APIs (Ex: ObjC alloc, new) and propagate the type info in other cases (ex: ObjC init method, casts (the second is not implemented yet)). Add handling of ObjC alloc, new and init to the checker. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161357 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Refactor checks for unevaluated contexts into a common utility function.David Blaikie
The one caller that's surrounded by nearby code manipulating the underlying evaluation context list is left unmodified for readability. Review by Sean Silva and Richard Smith. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161355 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment AST: DeclInfo: collapse a bunch of boolean flags into an enum.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161352 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Improve arrow locations for PseudoObjectExprs.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161350 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Ignore OS X 10.8's annotations for NSMakeCollectable.Jordan Rose
The frameworks correctly use the 'cf_consumed' and 'ns_returns_retained' attributes for NSMakeCollectable, but we can model the behavior under garbage collection more precisely than that. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161349 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06For global record types, the self reference checker was called twice, resultingRichard Trieu
in duplicate -Wuninitialized warnings. Change so that only the check in TryConstructorInitialization() will be used and a single warning be emitted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161345 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[ms-inline asm] Pass Tokens to Sema and store them in the AST. No functionalChad Rosier
change intended. No test case as there's no real way to test at this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161342 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment parser and sema: remove useless return valuesDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161331 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment diagnostics: warn on duplicate \brief and \return commands.Dmitri Gribenko
Doxygen manual claims that multiple \brief or \returns commands will be merged together, but actual behavior is different (second \brief command becomes a part of a discussion, second \returns becomes a "Returns: blah" paragraph on its own). Anyway, it seems to be a bad idea to use multiple \brief or \returns commands in a single command. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161325 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment diagnostics: \return in void function: specialize diagnostic text forDmitri Gribenko
ObjC methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161324 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06PR13529: Don't crash if the driver sees an unused input file when running asRichard Smith
'clang-cpp'. For now, the test uses "REQUIRES: shell" to determine if the host system supports "ln -s", which it uses to create a 'clang-cpp' symlink. This is a bit hacky and should likely be directly supported by lit.cfg. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161317 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06PR13499: Don't try to check whether 'override' has been validly applied untilRichard Smith
we know whether the function is virtual. But check it as soon as we do know; in some cases we don't need to wait for an instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161316 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06PR13527: don't assert if a function is explicitly defaulted when it's alreadyRichard Smith
been defined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161315 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-05Add __builtin_readcyclecounter() to produce the @llvm.readcyclecounter() ↵Hal Finkel
intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161310 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04Simplify code, no functionality change.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161303 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04[analyzer] Malloc: remove assert since is not valid as of r161248Anna Zaks
We can be in the situation where we did not track the symbol before realloc was called on it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161294 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04objective-C string literal has no side-effect,Fariborz Jahanian
resulting in issuance of unused static variable warning now. // rdar://10777111 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161291 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04[analyzer] Use a more robust check for null in CallAndMessageChecker.Jordan Rose
This should fix the failing test on the buildbot as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161290 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04[analyzer] Don't assume values bound to references are automatically non-null.Jordan Rose
While there is no such thing as a "null reference" in the C++ standard, many implementations of references (including Clang's) do not actually check that the location bound to them is non-null. Thus unlike a regular null dereference, this will not cause a problem at runtime until the reference is actually used. In order to catch these cases, we need to not prune out paths on which the input pointer is null. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161288 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04Fix the name of this variable.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161287 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04Update comment to accurately reflect what should happen.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161286 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] Update initializer assertion for delegating constructors.Jordan Rose
Like base constructors, delegating constructors require no further processing in the CFGInitializer node. Also, add PrettyStackTraceLoc to the initializer and destructor logic so we can get better stack traces in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161283 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] When a symbol is null, we should track its constraints.Jordan Rose
Because of this, we would previously emit NO path notes when a parameter is constrained to null (because there are no stores). Now we show where we made the assumption, which is much more useful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161280 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] Flatten path diagnostics for text output like we do for HTML.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161279 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] Track null/uninitialized C++ objects used in method calls.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161278 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] Provide useful PathDiagnosticLocations for CallEnter/Exit events.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161277 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] FindLastStoreBRVisitor was not actually finding stores.Jordan Rose
The visitor walks back through the ExplodedGraph as expected, but it wasn't actually keeping track of when a value was assigned. This meant that it only worked when the value was assigned when the variable was defined. Tests in the next commit (dependent on another change). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161276 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Enhance getImplicitObjectArgument to look through ->*.Jordan Rose
This only applies in the case where ->* is not overloaded, since it specifically looks for BinaryOperator and not CXXOperatorCallExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161275 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Make property synthesis the default on Windows.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161266 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] Fixup: remove the extra whitespaceAnna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161265 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] ObjC Inlining: Start tracking dynamic type info in the GDMAnna Zaks
In the following code, find the type of the symbolic receiver by following it and updating the dynamic type info in the state when we cast the symbol from id to MyClass *. MyClass *a = [[self alloc] init]; return 5/[a testSelf]; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161264 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Comment diagnostics: warn if \returns is used in a non-function comment or ifDmitri Gribenko
the function returns void. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161261 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Fix crash if a literal operator template's template parameter pack is not a ↵Richard Smith
non-type template parameter pack. Patch by Andy Gibbs! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161260 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] Fix a typo. Thanks Jordan.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161249 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03[analyzer] Malloc: track non-allocated but freed memoryAnna Zaks
There is no reason why we should not track the memory which was not allocated in the current function, but was freed there. This would allow to catch more use-after-free and double free with no/limited IPA. Also fix a realloc issue which surfaced as the result of this patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161248 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Fix line endings.Michael Han
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161245 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Flesh out test for defaulted key functions a bit more.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161243 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Fix failed to generate vtables in certain cases.Benjamin Kramer
By C++ standard, the vtable should be generated if the first non-inline virtual function is defined in the TU. Current version of clang doesn't generate vtable if the first virtual function is defaulted, because the key function is regarded as the defaulted function. Patch by Li Kan! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161236 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-03Comment AST: convert a huge if -- else if statement on Decl's type into aDmitri Gribenko
switch. Thanks Sean Silva for suggestion! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161225 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02[analyzer] Solve another source of non-determinism in the diagnosticAnna Zaks
engine. The code that was supposed to split the tie in a deterministic way is not deterministic. Most likely one of the profile methods uses a pointer. After this change we do finally get the consistent diagnostic output. Testing this requires running the analyzer on large code bases and diffing the results. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161224 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02Comments AST: refactor DeclInfo to use an enum for decl kind instead ofDmitri Gribenko
separate flags. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161217 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02[driver] Lipo can handle the lto-bc type.Chad Rosier
rdar://12000401 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161216 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02Comments: handle template paramter documentation in alias-declarationDmitri Gribenko
templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161215 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02[analyzer] Add a simple check for initializing reference variables with null.Jordan Rose
There's still more work to be done here; this doesn't catch reference parameters or return values. But it's a step in the right direction. Part of <rdar://problem/11212286>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161214 91177308-0d34-0410-b5e6-96231b3b80d8