aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-07-02Fix subtle bug in AnalysisConsumer where we would not analyze functions ↵Ted Kremenek
whose parent 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159577 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02Switch from using a lit.cfg-generator variable to the real variable inChandler Carruth
the standalone mode. We've changed scoping and sequencing of variables being defined and that cause this to start to be unset breaking some cmake users. Thanks to Jordan Rose for the report. The fix also makes the condition on the preceding line much more sensible. =D git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159576 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02Reduce default template instantiation depth to 512; we're blowing outDouglas Gregor
the stack too often with 1024. Fixes <rdar://problem/11678534>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159573 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Convert existing checkers to use check::preCall and check::postCall.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159563 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Add generic preCall and postCall checks.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159562 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Convert CXXConstructExpr over to use CallEvent for evaluation.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159561 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Use CallEvent for inlining and call default-evaluation.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159560 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Finish replacing ObjCMessage with ObjCMethodDecl and friends.Jordan Rose
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159559 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Begin replacing ObjCMessage with ObjCMethodCall and friends.Jordan Rose
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159558 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Move the last bits of CallOrObjCMessage over to CallEvent.Jordan Rose
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159557 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Convert CallAndMessageChecker and ObjCSelfInitChecker to CallEvent.Jordan Rose
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>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159556 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Convert RetainCountChecker to use CallEvent as much as possible.Jordan Rose
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159555 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[analyzer] Add a new abstraction over all types of calls: CallEventJordan Rose
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159554 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[PCH] Make sure that all newly introduced visible decls in a DeclContextArgyrios Kyrtzidis
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159550 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02A ':' after an enum-specifier at class scope is a bitfield, not a typo for a ↵Richard Smith
';'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159549 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02Add a new libclang completion API to get brief documentation comment that isDmitri Gribenko
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). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159539 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02[asan] update docs: mention MacOS 10.7 and correct the ifdef sample for ↵Kostya Serebryany
__has_feature git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159521 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02Documentation cleanup: reformatting/fixing up file comments so that they haveJames Dennett
\file and \brief markup and appear in Doxygen's summaries (and eventually at http://clang.llvm.org/doxygen/files.html). Fixed up another couple of minor glitches in the docs at the same time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159517 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02Rename tzcnt intrinsics to match gcc.Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159515 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-02Additional testing for fixes in r158289 and r158290 to allow implicitly-declaredRichard Smith
constructors for non-literal types to be constexpr in some circumstances. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159513 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-01PR13189: va_list broken with precompiled headersMeador Inge
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159508 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-01c-index-test/Makefile: Tweak USEDLIBS for cygwin. cygclang.dll is not linked ↵NAKAMURA Takumi
to c-index-test yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159499 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30Add support for the C11 _Alignof keyword.Jordan Rose
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159494 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30[libclang] Make implementation filename match the header's name for ↵Arnaud A. de Grandmaison
CXCompilationDatabase git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159493 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30[cindex.py] Fix commentsArnaud A. de Grandmaison
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159492 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30[libclang] Fix autoconf library dependencies for tooling supportArnaud A. de Grandmaison
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159490 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30c-index-test.c: Fix missing semicolon(s).NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159486 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30[cindex.py] add CompilationDatabase supportArnaud A. de Grandmaison
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159485 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30[libclang] add CompilationDatabase supportArnaud A. de Grandmaison
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159484 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30Switch Clang to use the new common LLVM CMake infrastructure for addingChandler Carruth
lit testsuites. This sinks all management of the aggregate lit runs into the LLVM CMake files, making Clang only responsible for declaring its own testsuite. In the process we fix numerous "bugs" where the proper method of invoking lit has changed over time, and the old system encoded several broken artifacts of this in ABIs and compatibility tests. It also switches to 'check-clang' for the canonical name of the test suite, although 'clang-test' remains as an alias. The situation when Clang is being built in standalone mode is little changed. It replicates just enough of the lit setup to cope with the oddities of being run outside of an LLVM build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159483 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30Add a missing argument index, wordsmith a little, and 80(ish) columnsMatt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159478 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30blocks: fixes a crash when encoding block typeFariborz Jahanian
with argument type of size 0. // rdar://11777609 PR13229. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159477 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-30test/Driver/crash-report.c: Mark it as XFAIL on win32 hosts, for now. ↵NAKAMURA Takumi
Investigating. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159476 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29Remove dependency on string.hFariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159475 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29Unbreak the test from r159469.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159474 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29Fix typos from r159463 and update tests. Added Matt Beaumont-Gay's suggestionRichard Trieu
to improve wording of a diagnostic message. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159473 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29objective-c IRGen: fixes a crash when method type is being mangledFariborz Jahanian
when an argument type size is 0. // rdar://11777609, PR13229 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159472 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29Use -frewrite-includes for crash reports.David Blaikie
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159469 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29In Sema::ClassifyName, try to avoid nonsensical corrections toKaelyn Uhrain
keywords when doing type correction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159464 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29Update the %diff modifer to have an alternate string print when a template treeRichard Trieu
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159463 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29Revert "Tweak insecureAPI analyzer checks to have the ability to be ↵Ted Kremenek
individually disabled." Jordan Rose corrected me that this actually isn't needed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159462 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29Tweak insecureAPI analyzer checks to have the ability to be individually ↵Ted Kremenek
disabled. 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>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159459 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29Add a fix-it hint note to -Wunique-enum to suggest that the last element getsRichard Trieu
initialized with the next to last element to silence the warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159458 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29objective-c modern translator: synthesize argument typeFariborz Jahanian
correctly for blocks and function pointer arguments in the written constructor. // rdar://11359268 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159456 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29modern objc translator: string.h is unavailable on some non-OSXFariborz Jahanian
platforms declare memset in rewritten code instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159454 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29fix a typo in my last commit. I thought I recompiled,Fariborz Jahanian
but apparently I did not. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159452 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29objc diagnostic: pass IdentifierInfo* to the diagnostic systemFariborz Jahanian
to produce quotes instead of adding qoute to the test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159450 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29std::nullptr_t support in MS headers, from João Matos.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159448 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29Patch for handling C99 veriadic macros when using precompiled headers,Douglas Gregor
from Filipe Cabecinhas! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159446 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-29objective-c modern translator: Translation into objc_msgSend_stretFariborz Jahanian
entry point which requires nil check before calling objc_msgSend_stret. // rdar://11359268 - wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159445 91177308-0d34-0410-b5e6-96231b3b80d8