aboutsummaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
2011-04-30Update API.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130588 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Guard in USRGenerator::GenLoc() against null Decl* from invalid code.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130541 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Enhance clang_getCXTUResourceUsage() to report the sizes of the memory ↵Ted Kremenek
buffers used by PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130460 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Enhance clang_getCXTUResourceUsage() to report how much memory is used by ↵Ted Kremenek
SourceManager's memory buffers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130433 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Enhance clang_getCXTUResourceUsage() to report the amount of memory used by ↵Ted Kremenek
ASTContext's side tables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130383 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Enhance clang_getCXTUResourceUsage() to report the amount of memory used by ↵Ted Kremenek
SourceManager's content cache allocator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130380 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Parsing/AST support for Structured Exception HandlingJohn Wiegley
Patch authored by Sohail Somani. Provide parsing and AST support for Windows structured exception handling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130366 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-28Implementation of Embarcadero array type traitsJohn Wiegley
Patch authored by John Wiegley. These are array type traits used for parsing code that employs certain features of the Embarcadero C++ compiler: __array_rank(T) and __array_extent(T, Dim). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130351 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-27Update regex in scan-build for parsing statistics.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130347 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-27Update scan-build to '-analyzer-checker debug.Stats' instead of the old ↵Ted Kremenek
'-analyzer-stats' -cc1 argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130320 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26Make yet another placeholder type, this one marking that an expression is a ↵John McCall
bound member function, i.e. something of the form 'x.f' where 'f' is a non-static member function. Diagnose this in the general case. Some of the new diagnostics are probably worse than the old ones, but we now get this right much more universally, and there's certainly room for improvement in the diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130239 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25t/clang/expr-traitsJohn Wiegley
Patch authored by David Abrahams. These two expression traits (__is_lvalue_expr, __is_rvalue_expr) are used for parsing code that employs certain features of the Embarcadero C++ compiler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130122 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-22Teach libclang to be more careful around BlockDecls, and don't assumeDouglas Gregor
that a TypeSourceInfo is always available, like we do everywhere else in libclang. Fixes <rdar://problem/9311140>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130034 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-22Add -fdelayed-template-parsing option. Using this option all templated ↵Francois Pichet
function definitions are parsed at the end of the translation unit only if it is required by an actual instantiation. As such all the symbols of the TU are available during name lookup. Using this flag is necessary for compatibility with Microsoft template code. This also provides some parsing speed improvement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130022 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-21Wire up the -ftest-coverage and -fprofile-arcs flags to .gcno file emission (atNick Lewycky
compile time) and .gcda emission (at runtime). --coverage enables both. This does not yet add the profile_rt library to the link step if -fprofile-arcs is enabled when linking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129956 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-20When translating a Clang source range into a libclang source range,Douglas Gregor
adjust the a ending macro location to the end of the instantiation location before adjusting it to the end of the token. Fixes <rdar://problem/9021561>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129872 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-20Rename 'CXTUMemoryUsage…' to 'CXTUResourceUsage…'.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129857 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-20Teach SourceManager::getSLocEntry() that it can fail due to problemsDouglas Gregor
during deserialization from a precompiled header, and update all of its callers to note when this problem occurs and recover (more) gracefully. Fixes <rdar://problem/9119249>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129839 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-19Add missing break statements.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129750 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18Report memory usage for global code completion results in CXTUMemoryUsage.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129733 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18Unbreak the MSVC build: Don't mix variable declarations and statements in a ↵Francois Pichet
.c file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129732 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-18Add libclang API to query how much memory is used by a CXTranslationUnit. ↵Ted Kremenek
This is a WIP. Currently we report the amount used for expressions, types, identifiers, and selectors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129730 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15Support for C++11 (non-template) alias declarations.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129567 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15C1X: implement generic selectionsPeter Collingbourne
As an extension, generic selection support has been added for all supported languages. The syntax is the same as for C1X. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129554 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-14Add support for C++0x's range-based for loops, as specified by the C++11 ↵Richard Smith
draft standard (N3291). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129541 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-14Harden Clang's cursor visitation logic against NULL declaration,Douglas Gregor
statement, and expression pointers. While these shouldn't happen, it's better to be safe in libclang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129539 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-13Add Objective-C++ files to those accepted by ccc-analyzer.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129475 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-12Provide options to explicitly enable/disable checkers in scan-build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129393 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-12Enable C++ static analysis support in ccc-analyzer.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129392 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-10libclang output name is now libclang. This solves a name collisionOscar Fuentes
when building with Visual Studio. `clang.dll' and `clang.exe' would have the same `clang.ilk' and `clang.pdb'. On a serial build those files would be overwritten as clang.exe/clang.dll are created. On a parallel build there is a risk of both files being written at the same time. On that case VS fails. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129239 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-07Driver: Sketch driver support for a CC_LOG_DIAGNOSTICS options, similar to theDaniel Dunbar
existing CC_PRINT_OPTIONS and CC_PRINT_HEADERS, which can be used to transparently capture the compiler diagnostics from a build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129082 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-07Basic, untested implementation for an "unknown any" type requested by LLDB.John McCall
The idea is that you can create a VarDecl with an unknown type, or a FunctionDecl with an unknown return type, and it will still be valid to access that object as long as you explicitly cast it at every use. I'm still going back and forth about how I want to test this effectively, but I wanted to go ahead and provide a skeletal implementation for the LLDB folks' benefit and because it also improves some diagnostic goodness for placeholder expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129065 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Filter our experimental checks in scan-build's checker listing.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128865 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-01Don't store reports when scan-build's build command matches /autogen/ (same ↵Ted Kremenek
as configure). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128723 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-28Frontend/cc1as: Add support for -L.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128432 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-23switch a few Driver APIs to use llvm::ArrayRef, cleaning up code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128142 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-23Fix crash in clang_getInstantiationLoc() when ↵Ted Kremenek
SourceManager::getInstantiationLoc() can return a SourceLocatin with an invalid FileID on invalid code. Fixes <rdar://problem/9164623>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128139 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-23Implement a new 'availability' attribute, that allows one to specifyDouglas Gregor
which versions of an OS provide a certain facility. For example, void foo() __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,obsoleted=10.6))); says that the function "foo" was introduced in 10.2, deprecated in 10.4, and completely obsoleted in 10.6. This attribute ties in with the deployment targets (e.g., -mmacosx-version-min=10.1 specifies that we want to deploy back to Mac OS X 10.1). There are several concrete behaviors that this attribute enables, as illustrated with the function foo() above: - If we choose a deployment target >= Mac OS X 10.4, uses of "foo" will result in a deprecation warning, as if we had placed attribute((deprecated)) on it (but with a better diagnostic) - If we choose a deployment target >= Mac OS X 10.6, uses of "foo" will result in an "unavailable" warning (in C)/error (in C++), as if we had placed attribute((unavailable)) on it - If we choose a deployment target prior to 10.2, foo() is weak-imported (if it is a kind of entity that can be weak imported), as if we had placed the weak_import attribute on it. Naturally, there can be multiple availability attributes on a declaration, for different platforms; only the current platform matters when checking availability attributes. The only platforms this attribute currently works for are "ios" and "macosx", since we already have -mxxxx-version-min flags for them and we have experience there with macro tricks translating down to the deprecated/unavailable/weak_import attributes. The end goal is to open this up to other platforms, and even extension to other "platforms" that are really libraries (say, through a #pragma clang define_system), but that hasn't yet been designed and we may want to shake out more issues with this narrower problem first. Addresses <rdar://problem/6690412>. As a drive-by bug-fix, if an entity is both deprecated and unavailable, we only emit the "unavailable" diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128127 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-22Hopefully fix VS build by not using std::vector::data().Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128105 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-22Rework crash recovery cleanup in ASTUnit and CIndex to recover more memory ↵Ted Kremenek
during a Sema crash (we have just a handful of leaks left) and to use the simplified cleanup registration API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128059 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21scan-build: only display analyzer intra-file progress when in "Verbose" mode.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128015 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21Improve crash recovery cleanup to recovery CompilerInstances during crash ↵Ted Kremenek
recovery. This was a huge resource "root" during crashes. This change requires making a bunch of fundamental Clang structures (optionally) reference counted to allow correct ownership semantics of these objects (e.g., ASTContext) to play out between an active ASTUnit and CompilerInstance object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128011 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-21Pass in the TargetMachine parameter to the inst printer.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127987 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-20In clang_parseTranslationUnit_Impl,p ut the source file after ↵Argyrios Kyrtzidis
command_line_args otherwise if '-x' flag is present it will be unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127971 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-18Add libclang hook 'clang_toggleCrashRecovery()', which provides a mechanism ↵Ted Kremenek
for a client to enable/disable CrashRecovery within libclang function calls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127920 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-18Run all functional logic of clang_annotateTokens() within a ↵Ted Kremenek
CrashRecoveryContext. Fixes <rdar://problem/9121698>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127919 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-18Correctly store and keep track of the FileSystemOptions in ASTUnit and in ↵Anders Carlsson
clang_codeCompleteAt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127890 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-16When libclang visits a translation unit via clang_visitChildren(),Douglas Gregor
walk the preprocessing record *before* walking the declarations, so they we pretend that we actually respect the phases of translation. We still walk the preprocessing record after the declarations when performing token annotation or finding the cursor at a location, since those routines depend on those semantics. Fixes <rdar://problem/9137195>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127776 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-16Compress argument processing in ccc-analyzer. No functionality change.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127758 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-16Refactor program name logic. Extend it to infer the target triple fromJoerg Sonnenberger
the program name, if it includes it as proper prefix. This makes calling clang with -ccc-host-triple x86_64-linux the same as calling it with the name x86_64-linux-clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127753 91177308-0d34-0410-b5e6-96231b3b80d8