summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang
Commit message (Collapse)AuthorAgeFilesLines
...
* Added source locs for angled parentheses in class/var template partial specs.Enea Zaffanella2013-08-102-5/+8
| | | | llvm-svn: 188134
* Add clang_Location_isFromMainFile() to libclang.Stefanus Du Toit2013-08-082-0/+12
| | | | | | | | Also bump the minor version number and update libclang.exports. Reviewed by: Dmitri Gribenko, Doug Gregor llvm-svn: 187994
* Started implementing variable templates. Top level declarations should be ↵Larisse Voufo2013-08-062-1/+99
| | | | | | fully supported, up to some limitations documented as FIXMEs or TODO. Static data member templates work very partially. Static data member templates of class templates need particular attention... llvm-svn: 187762
* Assume UniqueID is zero for invalid PPRegion to fix uninitialized reads ↵Alexey Samsonov2013-08-021-1/+1
| | | | | | reported by MSan llvm-svn: 187647
* Use llvm::sys::fs::UniqueID for windows and unix.Rafael Espindola2013-08-012-27/+25
| | | | | | | | | | | | | | | | | | | This unifies the unix and windows versions of FileManager::UniqueDirContainer and FileManager::UniqueFileContainer by using UniqueID. We cannot just replace "struct stat" with llvm::sys::fs::file_status, since we want to be able to construct fake ones, and file_status has different members on unix and windows. What the patch does is: * Record only the information that clang is actually using. * Use llvm::sys::fs::status instead of stat and fstat. * Use llvm::sys::fs::UniqueID * Delete the old windows versions of UniqueDirContainer and UniqueFileContainer since the "unix" one now works on windows too. llvm-svn: 187619
* [libclang] Expose the rest of the array types.Argyrios Kyrtzidis2013-07-231-0/+24
| | | | | | Patch by Che-Liang Chiou! llvm-svn: 186967
* OpenMP: basic support for #pragma omp parallelAlexey Bataev2013-07-193-0/+102
| | | | llvm-svn: 186647
* Use SmallVectorImpl::reverse_iterator instead of SmallVector to avoid ↵Craig Topper2013-07-081-1/+1
| | | | | | specifying the vector size. llvm-svn: 185784
* [libclang] Add the new function to libclang.exportsArgyrios Kyrtzidis2013-07-051-0/+1
| | | | llvm-svn: 185725
* [libclang] Introduce clang_Cursor_isObjCOptional, which returns whether the ↵Argyrios Kyrtzidis2013-07-051-0/+13
| | | | | | | | declaration was affected by "@optional" rdar://14348525. llvm-svn: 185722
* Use SmallVectorImpl instead of SmallVector for iterators and references to ↵Craig Topper2013-07-043-6/+6
| | | | | | avoid specifying the vector size unnecessarily. llvm-svn: 185610
* Following the modification introduced in llvm by commit 185311Sylvestre Ledru2013-07-011-2/+2
| | | | | | | | | | | | | | | | | | The build system is currently miss-identifying GNU/kFreeBSD as FreeBSD. This kind of simplification is sometimes useful, but in general it's not correct. As GNU/kFreeBSD is an hybrid system, for kernel-related issues we want to match the build definitions used for FreeBSD, whereas for userland-related issues we want to match the definitions used for other systems with Glibc. The current modification adjusts the build system so that they can be distinguished, and explicitly adds GNU/kFreeBSD to the build checks in which it belongs. Fixes bug #16445. Patch by Robert Millan in the context of Debian. llvm-svn: 185312
* Bug fix: Make RecursiveASTVisitor<T>::TraverseLambdaExpr callJames Dennett2013-06-301-0/+2
| | | | | | | WalkUpFromLambdaExpr, so that the Visit* functions are called on that AST node. llvm-svn: 185277
* Don't use PathV1.h in CIndexCodeCompletion.cpp.Rafael Espindola2013-06-261-3/+3
| | | | llvm-svn: 184940
* [AST] Introduce a new DecayedType sugar nodeReid Kleckner2013-06-242-0/+12
| | | | | | | | | | | | | | The goal of this sugar node is to be able to look at an arbitrary FunctionType and tell if any of the parameters were decayed from an array or function type. Ultimately this is necessary to implement Microsoft's C++ name mangling scheme, which mangles decayed arrays differently from normal pointers. Reviewers: rsmith Differential Revision: http://llvm-reviews.chandlerc.com/D1014 llvm-svn: 184763
* Add some invalid-decl checks to clang_Type_getOffsetOf.Matt Beaumont-Gay2013-06-241-1/+3
| | | | | | | print-size-type.cpp was checking for specific record layout output for invalid decls; I've removed the checks but left the records as tests for not crashing. llvm-svn: 184751
* Comment parsing: allow "\param ..." to describe variadic argumentsDmitri Gribenko2013-06-241-16/+36
| | | | | | | | Original patch by Fariborz Jahanian; extended by me. Fixes rdar://14124644 llvm-svn: 184688
* Comment parsing: followup to r184610: allow multiple \returnsDmitri Gribenko2013-06-221-2/+2
| | | | | | | | | Remove unneeded member in CommentSema, add a test for the XML schema (the schema already allowed multiple paragraphs in <ResultDiscussion>, but there were no tests for that), fix HTML generation (it is not allowed to have <p> inside <dl>). llvm-svn: 184652
* [document parsing]: Allow multiple adjacent \return and the likeFariborz Jahanian2013-06-211-8/+13
| | | | | | | commands. Render them properly in XML output. // rdar://14207725 llvm-svn: 184610
* Simplify a loop in ProcessCodeCompleteResults(). Pointed out by David BlaikieDmitri Gribenko2013-06-181-6/+6
| | | | llvm-svn: 184169
* ArrayRef'ize CodeCompletionContext::getNumSelIdents()Dmitri Gribenko2013-06-181-8/+6
| | | | llvm-svn: 184168
* [Driver] Refactor clang driver to use LLVM's Option libraryReid Kleckner2013-06-141-1/+1
| | | | | | | | | | | | | | | | | | The big changes are: - Deleting Driver/(Arg|Opt)* - Rewriting includes to llvm/Option/ and re-sorting - 'using namespace llvm::opt' in clang::driver - Fixing the autoconf build by adding option everywhere As discussed in the review, this change includes using directives in header files. I'll make follow up changes to remove those in favor of name specifiers. Reviewers: espindola Differential Revision: http://llvm-reviews.chandlerc.com/D975 llvm-svn: 183989
* Use the sys::ExecuteAndWait that takes StringRefs.Rafael Espindola2013-06-131-0/+1
| | | | | | Also don't depend on Program.h including PathV1.h. llvm-svn: 183935
* libclang: Remove clang::RemapFiles, it's dead code.Benjamin Kramer2013-06-132-73/+0
| | | | llvm-svn: 183902
* libclang: Port CIndexer::getClangResourcesPath to PathV2. No functionality ↵Benjamin Kramer2013-06-132-16/+14
| | | | | | change. llvm-svn: 183901
* PR12086, PR15117Richard Smith2013-06-122-0/+2
| | | | | | | | | | | | | | | | | | | Introduce CXXStdInitializerListExpr node, representing the implicit construction of a std::initializer_list<T> object from its underlying array. The AST representation of such an expression goes from an InitListExpr with a flag set, to a CXXStdInitializerListExpr containing a MaterializeTemporaryExpr containing an InitListExpr (possibly wrapped in a CXXBindTemporaryExpr). This more detailed representation has several advantages, the most important of which is that the new MaterializeTemporaryExpr allows us to directly model lifetime extension of the underlying temporary array. Using that, this patch *drastically* simplifies the IR generation of this construct, provides IR generation support for nested global initializer_list objects, fixes several bugs where the destructors for the underlying array would accidentally not get invoked, and provides constant expression evaluation support for std::initializer_list objects. llvm-svn: 183872
* Include PathV1.h in files that use it.Rafael Espindola2013-06-111-0/+1
| | | | | | This is preparation for replacing Path.h with PathV2.h. llvm-svn: 183781
* [libclang] CMake: add an option to control building libclang as a static ↵Argyrios Kyrtzidis2013-06-061-1/+4
| | | | | | | | library (off by default) This avoids building libclang twice by default. llvm-svn: 183437
* [libclang] When annotating tokens, don't override a property annotation with ↵Argyrios Kyrtzidis2013-06-041-0/+5
| | | | | | | | a getter/setter method annotation. rdar://13764549 llvm-svn: 183242
* [libclang] When indexing a @synthesize, don't consider that it defines a ↵Argyrios Kyrtzidis2013-05-291-2/+13
| | | | | | | | getter/setter if one is already defined by the user. Fixes rdar://13925258 llvm-svn: 182895
* Fix linkage computation for derived types in inline functions.Rafael Espindola2013-05-252-1/+3
| | | | | | | | | | | | | | | | | John noticed that the fix for pr15930 (r181981) didn't handle indirect uses of local types. For example, a pointer to local struct, or a function that returns it. One way to implement this would be to recursively look for local types. This would look a lot like the linkage computation itself for types. To avoid code duplication and utilize the existing linkage cache, this patch just makes the computation of "type with no linkage but externally visible because it is from an inline function" part of the linkage computation itself. llvm-svn: 182711
* [libclang] Add logging for clang_createTranslationUnit.Argyrios Kyrtzidis2013-05-241-1/+5
| | | | llvm-svn: 182682
* libclang: add a function to check whether a member function is pure virtualDmitri Gribenko2013-05-172-0/+15
| | | | | | Patch by Seth Fowler. llvm-svn: 182139
* First pass of semantic analysis for init-captures: check the initializer, buildRichard Smith2013-05-162-3/+6
| | | | | | | | | | | | | a FieldDecl from it, and propagate both into the closure type and the LambdaExpr. You can't do much useful with them yet -- you can't use them within the body of the lambda, because we don't have a representation for "the this of the lambda, not the this of the enclosing context". We also don't have support or a representation for a nested capture of an init-capture yet, which was intended to work despite not being allowed by the current standard wording. llvm-svn: 181985
* Provide operator<< for stream output of DeclarationNamesDavid Blaikie2013-05-141-3/+2
| | | | | | | | | | | ASTDumper was already trying to do this & instead got an implicit bool conversion by surprise (thus printing out 0 or 1 instead of the name of the declaration). To avoid that issue & simplify call sites, simply make it the normal/expected operator<<(raw_ostream&, ...) overload & simplify all the existing call sites. (bonus: this function doesn't need to be a member or friend, it's just using public API in DeclarationName) llvm-svn: 181832
* Cleanup handling of UniqueExternalLinkage.Rafael Espindola2013-05-133-3/+4
| | | | | | | | | | | | | This patch renames getLinkage to getLinkageInternal. Only code that needs to handle UniqueExternalLinkage specially should call this. Linkage, as defined in the c++ standard, is provided by getFormalLinkage. It maps UniqueExternalLinkage to ExternalLinkage. Most places in the compiler actually want isExternallyVisible, which handles UniqueExternalLinkage as internal. llvm-svn: 181677
* [libclang] Add a null check in CursorVisitor::visitPreprocessedEntities.Argyrios Kyrtzidis2013-05-071-0/+3
| | | | | | rdar://13680583 llvm-svn: 181352
* Have the RecursiveASTVisitor traverse the type source info of an objc class ↵Argyrios Kyrtzidis2013-05-062-4/+4
| | | | | | message. llvm-svn: 181237
* Remove DiagnosticConsumer::clone(), a bad idea that is now unused.Douglas Gregor2013-05-031-6/+1
| | | | llvm-svn: 181070
* [Preprocessor] For the MacroExpands preprocessor callback, also pass the ↵Argyrios Kyrtzidis2013-05-031-1/+1
| | | | | | | | MacroArgs object that provides information about the argument tokens for a function macro. llvm-svn: 181065
* Remove redundant flag.Bill Wendling2013-05-021-1/+1
| | | | llvm-svn: 180968
* We don't want FP elimination when doing an Apple-style build.Bill Wendling2013-05-021-1/+1
| | | | llvm-svn: 180950
* [libclang] Introduce clang_Module_getASTFile function that returns the ↵Argyrios Kyrtzidis2013-04-262-0/+8
| | | | | | | | module file where a module object came from. rdar://13743084 llvm-svn: 180643
* Fix typo in comparison in clang_CXCursorSet_contains().Ted Kremenek2013-04-241-1/+1
| | | | | | | | | | Fixes PR 10124. Patch by Jens Kilian. Thanks to Nikola Smiljanic for following up. llvm-svn: 180177
* Revert "Remove CXCursorSet and related APIs. There are no known clients."Ted Kremenek2013-04-242-0/+70
| | | | | | Apparently there are... llvm-svn: 180176
* Remove CXCursorSet and related APIs. There are no known clients.Ted Kremenek2013-04-242-70/+0
| | | | llvm-svn: 180174
* [libclang] Introduce a CXCursor_ObjCSelfExpr cursor, which is the equivalent ↵Argyrios Kyrtzidis2013-04-232-1/+17
| | | | | | | | of CXCursor_CXXThisExpr for C++ code. rdar://13717006 llvm-svn: 180127
* C++1y: Allow aggregates to have default initializers.Richard Smith2013-04-202-0/+2
| | | | | | | | | | | Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in CXXCtorInitializers and in InitListExprs to represent a default initializer. There's an additional complication here: because the default initializer can refer to the initialized object via its 'this' pointer, we need to make sure that 'this' points to the right thing within the evaluation. llvm-svn: 179958
* [libclang] Introduce clang_Cursor_isVariadic, which returns non-zero if the ↵Argyrios Kyrtzidis2013-04-182-0/+14
| | | | | | | | given cursor is a variadic function or method. rdar://13667150 llvm-svn: 179819
* [libclang] Introduce clang_Cursor_getObjCDeclQualifiers, to query for 'ObjC ↵Argyrios Kyrtzidis2013-04-182-0/+25
| | | | | | | | | | Qualifiers' written next to the return and parameter types in an ObjC method declarations. rdar://13676977 llvm-svn: 179816
OpenPOWER on IntegriCloud