- Jul 02, 2012
-
-
Douglas Gregor authored
template instantiation. I wasn't able to reproduce this down to anything small enough to put in our test suite, but it's "obviously" okay to set the invalid bit earlier and precludes a known-broken-but-not-marked-broken class from being used elsewhere. llvm-svn: 159584
-
David Blaikie authored
This member became unused in r159559. llvm-svn: 159581
-
Abramo Bagnara authored
llvm-svn: 159579
-
Ted Kremenek authored
we are encountering some scalability issues with memory usage. The appropriate long term fix is to make the analysis more scalable, but this will at least prevent the analyzer swapping when analyzing very large functions. llvm-svn: 159578
-
Ted Kremenek authored
in the call graph had been inlined but for whatever reason we did not inline some of its callees. Also, fix a related traversal bug where we meant to do a BFS of the callgraph but instead were doing a DFS. llvm-svn: 159577
-
Douglas Gregor authored
the stack too often with 1024. Fixes <rdar://problem/11678534>. llvm-svn: 159573
-
Jordan Rose authored
llvm-svn: 159563
-
Jordan Rose authored
llvm-svn: 159562
-
Jordan Rose authored
llvm-svn: 159561
-
Jordan Rose authored
llvm-svn: 159560
-
Jordan Rose authored
The preObjCMessage and postObjCMessage callbacks now take an ObjCMethodCall argument, which can represent an explicit message send (ObjCMessageSend) or an implicit message generated by a property access (ObjCPropertyAccess). llvm-svn: 159559
-
Jordan Rose authored
Previously, the CallEvent subclass ObjCMessageInvocation was just a wrapper around the existing ObjCMessage abstraction (over message sends and property accesses). Now, we have abstract CallEvent ObjCMethodCall with subclasses ObjCMessageSend and ObjCPropertyAccess. In addition to removing yet another wrapper object, this should make it easy to add a ObjCSubscriptAccess call event soon. llvm-svn: 159558
-
Jordan Rose authored
This involved refactoring some common pointer-escapes code onto CallEvent, then having MallocChecker use those callbacks for whether or not to consider a pointer's /ownership/ as escaping. This still needs to be pinned down, and probably we want to make the new argumentsMayEscape() function a little more discerning (content invalidation vs. ownership/metadata invalidation), but this is a good improvement. As a bonus, also remove CallOrObjCMessage from the source completely. llvm-svn: 159557
-
Jordan Rose authored
Both of these got uglier rather than cleaner because we don't have preCall and postCall yet; properly wrapping a CallExpr in a CallEvent requires doing a bit of deconstruction on the callee. Even when we have preCall and postCall we may want to expose the current CallEvent to pre/postStmt<CallExpr>. llvm-svn: 159556
-
Jordan Rose authored
This ended allowing quite a bit of cleanup, and some minor changes. - CallEvent makes it easy to use hasNonZeroCallbackArg more aggressively, which we check in order to avoid false positives with callbacks that might release the object. - In order to support this for functions which consume their arguments, there are two new ArgEffects: DecRefAndStopTracking and DecRefMsgAndStopTracking. These act just like StopTracking, except that if the object only had a return count of +1 it's now considered released instead (so we still get use-after-free messages). - On the plus side, we no longer have to special-case +[NSObject performSelector:withObject:afterDelay:] and friends. - The use of IdentifierInfos in the method summary cache is now hidden; only the ObjCInterfaceDecl gets passed around most of the time. - Since we cache all "simple" summaries and check every function call, there is no real benefit to having NULL stand in for default summaries anymore. - Whitespace, unused methods, etc. Even more simplification to come when we get check::postCall and can unify all these other post* checks. llvm-svn: 159555
-
Jordan Rose authored
This is intended to replace CallOrObjCMessage, and is eventually intended to be used for anything that cares more about /what/ is being called than /how/ it's being called. For example, inlining destructors should be the same as inlining blocks, and checking __attribute__((nonnull)) should apply to the allocator calls generated by operator new. llvm-svn: 159554
-
Argyrios Kyrtzidis authored
coming from an AST file are registered for serialization. A static data member instantiation of in a chained PCH could be missed when serializing decls; the result was that when emitting the visible decls map of its DeclContext, we would use a DeclID that was not actually emitted, leading to crashes or hangs. Fix this by making sure such decls are always registered for serialization. Also introduce extra sanity checks to make sure we don't register new declarations or types after we have serialized the types/decls block. rdar://11728990 llvm-svn: 159550
-
Richard Smith authored
llvm-svn: 159549
-
Dmitri Gribenko authored
attached to a declaration in the completion string. Since extracting comments isn't free, a new code completion option is introduced. A new code completion option that enables including brief comments into CodeCompletionString should be a, err, code completion option. But because ASTUnit caches global declarations during parsing before even completion consumer is created, the option is duplicated as a translation unit option (in both libclang and ASTUnit, like the option to cache code completion results). llvm-svn: 159539
-
Craig Topper authored
llvm-svn: 159515
-
- Jul 01, 2012
-
-
Meador Inge authored
For some targets a structure named __va_list_tag is built to help define the __builtin_va_list type. However, __va_list_tag was not being treated as a predefined type thus causing problems when serializing the AST. This commit fixes that oversight by adding the necessary support to treat __va_list_tag as a predefined type. llvm-svn: 159508
-
- Jun 30, 2012
-
-
Jordan Rose authored
This behaves like the existing GNU __alignof and C++11 alignof keywords; most of the patch is simply adding the third token spelling to various places. llvm-svn: 159494
-
Fariborz Jahanian authored
with argument type of size 0. // rdar://11777609 PR13229. llvm-svn: 159477
-
Fariborz Jahanian authored
when an argument type size is 0. // rdar://11777609, PR13229 llvm-svn: 159472
-
David Blaikie authored
In future changes we should: * use __builtin_trap rather than derefing 'random' volatile pointers. * avoid dumping temporary files into /tmp when running tests, instead preferring a location that is properly cleaned up by lit. Review by Chandler Carruth. llvm-svn: 159469
-
- Jun 29, 2012
-
-
Kaelyn Uhrain authored
keywords when doing type correction. llvm-svn: 159464
-
Richard Trieu authored
is selected. This will allow more flexibility when converting diagnostics to use template type diffing. Also updated the internal manual and test cases for correctly keeping the bold attribute and for tree printing. llvm-svn: 159463
-
Ted Kremenek authored
Jordan Rose corrected me that this actually isn't needed. llvm-svn: 159462
-
Ted Kremenek authored
The solution is a bit inefficient: it creates N checkers, one for each check, and each check does a dispatch on the function name. This is redundant, but we can fix this once we have the proper ability to enable/disable subchecks. Fixes <rdar://problem/11780180>. llvm-svn: 159459
-
Richard Trieu authored
initialized with the next to last element to silence the warning. llvm-svn: 159458
-
Fariborz Jahanian authored
correctly for blocks and function pointer arguments in the written constructor. // rdar://11359268 llvm-svn: 159456
-
Fariborz Jahanian authored
platforms declare memset in rewritten code instead. llvm-svn: 159454
-
Fariborz Jahanian authored
but apparently I did not. llvm-svn: 159452
-
Fariborz Jahanian authored
to produce quotes instead of adding qoute to the test. llvm-svn: 159450
-
Douglas Gregor authored
llvm-svn: 159448
-
Douglas Gregor authored
from Filipe Cabecinhas! llvm-svn: 159446
-
Fariborz Jahanian authored
entry point which requires nil check before calling objc_msgSend_stret. // rdar://11359268 - wip. llvm-svn: 159445
-
Dmitri Gribenko authored
Factor out a check for block commands (that implicitly start a new paragraph) into a separate function. llvm-svn: 159444
-
David Blaikie authored
Reviewed by Doug Gregor. llvm-svn: 159442
-
Nico Weber authored
No functionality change. llvm-svn: 159436
-