Rafael Espindola
d87f8d76e0
Update for LLVM api change.
...
llvm-svn: 216585
2014-08-27 20:03:29 +00:00
Argyrios Kyrtzidis
a2a1e53085
[libclang] Fixup the cursor spelling range for C++ destructors, operator overloads, and conversion functions.
...
Patch by Craig Tenenbaum!
llvm-svn: 216480
2014-08-26 20:23:26 +00:00
Alexander Musman
3aaab669c8
[OPENMP] Extract common superclass from all the loop directives. No functional changes (having common superclass is convenient for future loop directives CodeGen implementation)
...
llvm-svn: 215975
2014-08-19 11:27:13 +00:00
Argyrios Kyrtzidis
ac3997eb52
[libclang] Introduce clang_File_isEqual for comparing CXFile handles.
...
llvm-svn: 215796
2014-08-16 00:26:19 +00:00
David Blaikie
6f7382ddd1
std::unique_ptr-ify the result of ASTUnit::LoadFromASTFile
...
llvm-svn: 215320
2014-08-10 19:08:04 +00:00
Eli Bendersky
9b07147fc9
Expose the CUDA shared attribute to the C API.
...
Similar to r209767, which exposed other CUDA-related attributes.
Patch by Rob Springer.
llvm-svn: 215208
2014-08-08 14:59:00 +00:00
Eli Bendersky
7975959569
Add IR Mangler for more stable mangling.
...
llvm-svn: 214520
2014-08-01 15:01:10 +00:00
Eli Bendersky
44a206f829
Exposes a C API to name mangling for a given cursor.
...
Inspired by https://gist.github.com/tritao/2766291 , and was previously discussed
on cfe-dev: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-June/037577.html
Adding testing capability via c-index-test.
llvm-svn: 214410
2014-07-31 18:04:56 +00:00
Alexey Bataev
82bad8b026
[OPENMP] Initial parsing and sema analysis for clause 'seq_cst' of 'atomic' directive.
...
llvm-svn: 213846
2014-07-24 08:55:34 +00:00
Alexey Bataev
459dec0ca2
[OPENMP] Initial parsing and sema analysis for clause 'capture' in 'atomic' directive.
...
llvm-svn: 213842
2014-07-24 06:46:57 +00:00
Alexey Bataev
67a4f22f12
[OPENMP] Initial parsing and sema analysis for 'update' clause of 'atomic' directive.
...
llvm-svn: 213735
2014-07-23 10:25:33 +00:00
Alexey Bataev
dea4761c06
[OPENMP] Initial parsing an sema analysis for 'write' clause of 'atomic' directive.
...
llvm-svn: 213728
2014-07-23 07:46:59 +00:00
Alexey Bataev
f98b00c33e
[OPENMP] Initial parsing and sema analysis for 'read' clause in 'atomic' directive.
...
llvm-svn: 213717
2014-07-23 02:27:21 +00:00
Alexey Bataev
0162e459ef
[OPENMP] Initial parsing and sema analysis for 'atomic' directive.
...
llvm-svn: 213639
2014-07-22 10:10:35 +00:00
Alexey Bataev
9fb6e647e7
[OPENMP] Initial parsing and sema analysis for 'ordered' directive.
...
llvm-svn: 213616
2014-07-22 06:45:04 +00:00
Alexey Bataev
6125da9258
[OPENMP] Initial parsing and sema analysis for 'flush' directive.
...
llvm-svn: 213512
2014-07-21 11:26:11 +00:00
Alexander Musman
d9ed09f7a5
[OPENMP] Parsing/Sema of the OpenMP directive 'critical'.
...
llvm-svn: 213510
2014-07-21 09:42:05 +00:00
Alexey Bataev
2df347ad96
[OPENMP] Initial parsing and sema analysis for 'taskwait' directive.
...
llvm-svn: 213363
2014-07-18 10:17:07 +00:00
Alexey Bataev
4d1dfeabc9
[OPENMP] Initial parsing and sema analysis for 'barrier' directive.
...
llvm-svn: 213360
2014-07-18 09:11:51 +00:00
Alexey Bataev
68446b7253
[OPENMP] Initial parsing and sema analysis of 'taskyield' directive.
...
llvm-svn: 213355
2014-07-18 07:47:19 +00:00
Alexey Bataev
74ba3a5880
[OPENMP] Initial parsing and sema analysis of 'mergeable' clause.
...
llvm-svn: 213262
2014-07-17 12:47:03 +00:00
Alexey Bataev
7aea99a310
[OPENMP] Initial support for parsing and sema analysis of 'untied' clause.
...
llvm-svn: 213257
2014-07-17 12:19:31 +00:00
Alexander Musman
80c2289a03
[OPENMP] Parsing/Sema analysis of directive 'master'
...
llvm-svn: 213237
2014-07-17 08:54:58 +00:00
Alexey Bataev
3778b60176
[OPENMP] Initial parsing and sema analysis for 'final' clause.
...
llvm-svn: 213232
2014-07-17 07:32:53 +00:00
Alexey Bataev
9c2e8ee72f
[OPENMP] Parsing and sema analysis for 'omp task' directive.
...
llvm-svn: 212804
2014-07-11 11:25:16 +00:00
Alexey Bataev
84d0b3efee
[OPENMP] Parsing and sema analysis for 'omp parallel sections' directive.
...
llvm-svn: 212516
2014-07-08 08:12:03 +00:00
Alp Toker
5c53298c1e
libclang: pass return code out argument by reference
...
r212427 formalized the message-passing pattern by making these argument
structures const. This commit changes output arguments to get passed by
reference so we can eliminate mutable fields.
llvm-svn: 212497
2014-07-07 22:42:03 +00:00
Alexey Bataev
4acb859fbd
[OPENMP] Added initial support for 'omp parallel for'.
...
llvm-svn: 212453
2014-07-07 13:01:15 +00:00
Alp Toker
9d85b18f91
libclang: refactor handling of unsaved_files
...
Consolidate CXUnsavedFile argument handling in API functions to support a wider
cleanup of various file remapping schemes in the frontend.
llvm-svn: 212427
2014-07-07 01:23:14 +00:00
Nico Weber
9b982078e9
Add an AST node for __leave statements, hook it up.
...
Codegen is still missing (and I won't work on that), but __leave is now
as implemented as __try and friends.
llvm-svn: 212425
2014-07-07 00:12:30 +00:00
Alp Toker
1a86ad21d1
libclang: make darwin pthread hacks conditional on LLVM_ENABLE_THREADS
...
Although these aren't strictly related to LLVM's core threading, it's
reasonable to avoid pthread usage in clang when building with
LLVM_ENABLE_THREADS disabled.
llvm-svn: 212395
2014-07-06 06:24:00 +00:00
Alp Toker
f994cef836
Track IntrusiveRefCntPtr::get() changes from LLVM r212366
...
llvm-svn: 212369
2014-07-05 03:08:06 +00:00
David Blaikie
66cc07b4f7
Remove 'const' from MemoryBuffers used through the SourceManager
...
This removes a const_cast added in r211884 that occurred due to an
inconsistency in how MemoryBuffers are handled between some parts of
clang and LLVM.
MemoryBuffers are immutable and the general convention in the LLVM
project is to omit const from immutable types as it's simply
redundant/verbose (see llvm::Type, for example). While this change
doesn't remove "const" from /every/ MemoryBuffer, it at least makes this
chain of ownership/usage consistent.
llvm-svn: 211915
2014-06-27 17:40:03 +00:00
Chandler Carruth
6666074876
Fix a bug in my previous patch by restoring the behavior that the fatal
...
error handler is only registered once.
To avoid the use of std::call_once (the obvious way to do this) I've
wrapped everything up into a managed static and done the work in
a constructor. Silly, but it should be effective.
Some out-of-tree libclang users reported this to me, and I've asked them
to put together a test case which exhibits this behavior, but I wanted
to fix things ASAP since the nature of the fix is straight forward.
llvm-svn: 211905
2014-06-27 16:37:27 +00:00
Chandler Carruth
37ad2582d6
This fixes libclang to cope with the now compile-time multithreaded
...
selection re-enabled in r211900 in LLVM.
The approach (unlike r211121) doesn't rely on std::mutex or
std::call_once to avoid breaknig cygwin bots.
llvm-svn: 211901
2014-06-27 15:14:39 +00:00
Alexey Bataev
bae9a793fd
[OPENMP] Parsing and sema analysis for 'copyprivate' clause.
...
llvm-svn: 211886
2014-06-27 10:37:06 +00:00
Alexey Bataev
d1e40fbfe1
[OPENMP] Initial parsing and sema analysis for 'single' directive.
...
llvm-svn: 211774
2014-06-26 12:05:45 +00:00
Alexey Bataev
1e0498a92d
[OPENMP] Initial parsing and sema analysis for 'section' directive.
...
llvm-svn: 211767
2014-06-26 08:21:58 +00:00
Alexey Bataev
d3f8dd2d15
[OPENMP] Initial support for 'sections' directive.
...
llvm-svn: 211685
2014-06-25 11:44:49 +00:00
NAKAMURA Takumi
8068b6a2fb
Revert r211121 (and r211285), "Change libclang initialization to use std::call_once instead of"
...
It broke mingw builder and cygwin-clang stage2, possibly lack of tls in <mutex>.
llvm-svn: 211593
2014-06-24 13:50:01 +00:00
Alexey Bataev
236070f20d
[OPENMP] Initial support for 'nowait' clause.
...
llvm-svn: 211352
2014-06-20 11:19:47 +00:00
Alexey Bataev
142e1fc9ea
[OPENMP] Initial support for 'ordered' clause.
...
llvm-svn: 211347
2014-06-20 09:44:06 +00:00
Alexey Bataev
56dafe87c2
[OPENMP] Initial support for 'schedule' clause.
...
llvm-svn: 211342
2014-06-20 07:16:17 +00:00
Zachary Turner
10364ca123
Don't call llvm_start_multithreaded() during init. As of LLVM
...
revision r211277, this function is essentially a no-op.
llvm-svn: 211285
2014-06-19 18:03:56 +00:00
Alexey Bataev
f29276edb7
[OPENMP] Initial support for '#pragma omp for' (fixed incompatibility with MSVC).
...
llvm-svn: 211140
2014-06-18 04:14:57 +00:00
Zachary Turner
f68823ba3f
Change libclang initialization to use std::call_once instead of
...
hand rolled once-initialization, and rename the mutex to be more
descriptive of its actual purpose.
llvm-svn: 211121
2014-06-17 19:57:15 +00:00
Rafael Espindola
a566efbec9
Revert "[OPENMP] Initial support for '#pragma omp for'."
...
This reverts commit r211096. Looks like it broke the msvc build:
SemaOpenMP.cpp(140) : error C4519: default template arguments are only allowed on a class template
llvm-svn: 211113
2014-06-17 17:20:53 +00:00
Alexey Bataev
c77dd5257a
[OPENMP] Initial support for '#pragma omp for'.
...
llvm-svn: 211096
2014-06-17 11:49:22 +00:00
Alexey Bataev
c5e025831b
[OPENMP] Initial support of 'reduction' clause
...
llvm-svn: 211007
2014-06-16 07:08:35 +00:00
Zachary Turner
18532316f3
Revert "Clang changes to support LLVM removal of runtime multithreading"
...
This reverts r210601.
llvm-svn: 210604
2014-06-10 23:17:11 +00:00
Zachary Turner
475a76d93a
Clang changes to support LLVM removal of runtime multithreading
...
support (llvm revision r210600).
Reviewers: rnk
Differential Revision: http://reviews.llvm.org/D4077
llvm-svn: 210601
2014-06-10 23:02:10 +00:00
Craig Topper
69186e731f
[C++11] Use 'nullptr'. Tools edition.
...
llvm-svn: 210422
2014-06-08 08:38:04 +00:00
Alexander Musman
1bb328cca5
[OPENMP] Parsing/Sema for OMPLasprivateClause.
...
Parsing this clause, allowing it on directive ‘omp simd’ and semantic checks.
llvm-svn: 210184
2014-06-04 13:06:39 +00:00
Alp Toker
1d257e1d0a
Remove the last remaining llvm/Config/config.h includes
...
This corrects long-standing misuses of LLVM's internal config.h.
In most cases the public llvm-config.h header was intended and we can now
remove the old hacks thanks to LLVM r210144.
The config.h header is private, won't be installed and should no longer be
included by clang or other modules.
llvm-svn: 210145
2014-06-04 03:28:55 +00:00
Alexander Musman
f0d76e7dc3
Parsing/Sema for OMPAlignedClause.
...
llvm-svn: 209816
2014-05-29 14:36:25 +00:00
Eli Bendersky
2581e66e7a
Expose CUDA function attributes to the C interface.
...
Until now all CUDA-specific attributes were represented with
CXCursor_UnexposedAttr; now they are actually implemented, including the Python
bindings.
llvm-svn: 209767
2014-05-28 19:29:58 +00:00
Alexander Musman
8bd31e69a4
Parsing/Sema for OMPCollapseClause.
...
Actual usage in Sema for collapsing loops will in some future patch.
llvm-svn: 209660
2014-05-27 15:12:19 +00:00
Alp Toker
2d57cea256
Provide and use a safe Token::getRawIdentifier() accessor
...
llvm-svn: 209061
2014-05-17 04:53:25 +00:00
Argyrios Kyrtzidis
884337f427
[libclang] Introduce clang_Module_isSystem(), which returns non-zero if the given CXModule is a system one.
...
llvm-svn: 208846
2014-05-15 04:44:25 +00:00
Argyrios Kyrtzidis
f6d49c36b2
[liblang] Introduce clang_getModuleForFile, which given a CXFile header file, returns the module that contains it, if one exists.
...
llvm-svn: 208822
2014-05-14 23:14:37 +00:00
Alexey Bataev
bcbadb65ab
[OPENMP] 'proc_bind' clause support - Parsing and sema analysis for OpenMP clause 'proc_bind'
...
llvm-svn: 208060
2014-05-06 06:04:14 +00:00
Joey Gouly
81228382cf
[libclang] Add attribute support for 'pure', 'const' and 'noduplicate'.
...
This bumps CINDEX_VERSION_MINOR up (to 26).
llvm-svn: 207767
2014-05-01 15:41:58 +00:00
Alp Toker
59c6bc5882
libclang: split out the documentation comment API
...
It's possible that the "comment AST" may be replaced or split out in the
midterm, any anyway this makes the headers easier to read.
Developers don't currently need to include "clang-c/Documentation.h" explicitly
and there's no macro to test for availability yet.
The raw comment and brief comment accessors have been kept in Index.h though
brief support may also move here as a separate proposal.
This is not a deprecation, just a gentle separation of concerns as we look to
simplify the built-in representation of comment nodes and support external
comment processors.
llvm-svn: 207392
2014-04-28 02:39:27 +00:00
Argyrios Kyrtzidis
edfe07fca0
Simplify leak fix of r207076, by just disposing the previous CXString.
...
llvm-svn: 207081
2014-04-24 06:05:40 +00:00
Nico Weber
aacf0313a5
Fix two leaks found by LSan.
...
A CursorPlatformAvailability can have several "unavailable" attributes, don't
leak all but the first. I'm not sure if there can be several "deprecate"ds too,
but add the same logic there to keep the two code paths looking the same.
llvm-svn: 207076
2014-04-24 05:16:45 +00:00
Ben Langmuir
749323fadb
Attempt to fix null ASTContext in ASTUnit error path
...
We don't need the ASTContext for the diagnostics, only the language
options, which we can get from the compiler invocation. It worries me
how many categorically different states the ASTUnit class can be in
depending on how it is being constructed/used.
llvm-svn: 206909
2014-04-22 17:40:12 +00:00
Alexander Musman
8dba66412b
[OPENMP] parsing 'linear' clause (for directive 'omp simd')
...
Differential Revision: http://reviews.llvm.org/D3272
llvm-svn: 206891
2014-04-22 13:09:42 +00:00
Dmitri Gribenko
e570ede5d1
libclang: add clang_CXXMethod_isConst API that allows to determine if a C++
...
member function or member function template is declared 'const'
Patch by Kevin Funk with testcase updates by me.
llvm-svn: 205714
2014-04-07 14:59:13 +00:00
Alexey Bataev
d48bcd8a46
[OPENMP] Implemented 'copyin' clause
...
llvm-svn: 205164
2014-03-31 03:36:38 +00:00
Alexey Bataev
62c87d2509
[OPENMP] parsing of clause 'safelen' (for directive 'omp simd')
...
llvm-svn: 204428
2014-03-21 04:51:18 +00:00
Aaron Ballman
535bbcccb1
[C++11] Replacing DeclStmt iterators decl_begin() and decl_end() with iterator_range decls(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203947
2014-03-14 17:01:24 +00:00
Aaron Ballman
2205d2a56a
[C++11] Replacing OMPThreadPrivateDecl and OMPClause iterators varlist_begin() and varlist_end() with iterator_range varlists(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203937
2014-03-14 15:55:35 +00:00
Aaron Ballman
0ad78303de
[C++11] Replacing CXXRecordDecl iterators init_begin() and init_end() with iterator_range inits(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203819
2014-03-13 17:34:31 +00:00
Aaron Ballman
574705ed7f
[C++11] Replacing CXXRecordDecl iterators bases_begin() and bases_end() with iterator_range bases(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203803
2014-03-13 15:41:46 +00:00
Dmitri Gribenko
340dd5193d
Use vector<T>::data() to simplify code
...
llvm-svn: 203665
2014-03-12 15:35:53 +00:00
Aaron Ballman
b97112e4bd
[C++11] Replacing Decl iterators attr_begin() and attr_end() with iterator_range attrs(). Updating all of the usages of the iterators with range-based for loops.
...
This is a reapplication of r203236 with modifications to the definition of attrs() and following the new style guidelines on auto usage.
llvm-svn: 203362
2014-03-08 22:19:01 +00:00
Benjamin Kramer
4cadf292a5
[C++11] Revert uses of lambdas with array_pod_sort.
...
Looks like GCC implements the lambda->function pointer conversion differently.
llvm-svn: 203293
2014-03-07 21:51:58 +00:00
Benjamin Kramer
15ae783e14
[C++11] Convert sort predicates into lambdas.
...
No functionality change.
llvm-svn: 203289
2014-03-07 21:35:40 +00:00
Ahmed Charles
b89843299a
Replace OwningPtr with std::unique_ptr.
...
This compiles cleanly with lldb/lld/clang-tools-extra/llvm.
llvm-svn: 203279
2014-03-07 20:03:18 +00:00
Aaron Ballman
629afaefe0
[C++11] Replacing DeclBase iterators decls_begin() and decls_end() with iterator_range decls(). The same is true for the noload versions of these APIs. Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203278
2014-03-07 19:56:05 +00:00
Ahmed Charles
9a16beb8bc
Change OwningPtr::take() to OwningPtr::release().
...
This is a precursor to moving to std::unique_ptr.
llvm-svn: 203275
2014-03-07 19:33:25 +00:00
Aaron Ballman
43b68bebe7
[C++11] Replacing ObjCMethodDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203255
2014-03-07 17:50:17 +00:00
Aaron Ballman
7dce1a840c
Fully reverting r203236 -- it seems the only bots that are happy are the MSVC bots.
...
llvm-svn: 203237
2014-03-07 13:13:38 +00:00
Aaron Ballman
690829696c
[C++11] Replacing iterators attr_begin() and attr_end() with iterator_range attrs(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203236
2014-03-07 12:50:00 +00:00
Alexey Bataev
568a833f68
[OPENMP] Clause 'num_threads'
...
llvm-svn: 203087
2014-03-06 06:15:19 +00:00
Argyrios Kyrtzidis
3227d86f1b
[libclang] Have clang_getCursorSpelling() return the string for a CXCursor_ObjCStringLiteral or CXCursor_StringLiteral cursor.
...
rdar://16206459
llvm-svn: 202745
2014-03-03 19:40:52 +00:00
Benjamin Kramer
867ea1d426
[C++11] Replace llvm::tie with std::tie.
...
llvm-svn: 202639
2014-03-02 13:01:17 +00:00
Benjamin Kramer
bbdd7640e8
[C++11] Replace verbose functors with succinct lambdas
...
No functionality change.
llvm-svn: 202590
2014-03-01 14:48:57 +00:00
Alexey Bataev
1b59ab5683
[OPENMP] First changes for Parsing and Sema for 'omp simd' directive support
...
llvm-svn: 202360
2014-02-27 08:29:12 +00:00
Dmitri Gribenko
8850cdad34
libclang: ensure clang_createTranslationUnit2 always initializes *TU
...
llvm-svn: 201657
2014-02-19 10:24:00 +00:00
Saleem Abdulrasool
909dce5fe2
CIndex: initialise TU
...
TU is not guaranteed to be initialised in all cases. In particular if CIdx or
ast_filename is NULL (or if &TU is NULL), then clang_createTranslationUnit2 will
not initialise the out parameter out_TU. This is followed by an assertion check
which may perform a branch based on unitialised memory.
Caught by scan-build.
llvm-svn: 201628
2014-02-19 02:56:55 +00:00
Dmitri Gribenko
1bf8d9107b
libclang: fix a bug in processing invalid arguments, introduced in r201249
...
Recommit r201346, reverted in r201373.
llvm-svn: 201578
2014-02-18 15:20:02 +00:00
Juergen Ributzka
c67c93d031
Revert "libclang: fix a bug in processing invalid arguments, introduced in r201249,"
...
Reverting commit (201346) for now, because it is breaking our internal builds.
llvm-svn: 201373
2014-02-13 23:34:54 +00:00
Dmitri Gribenko
fbe5672746
libclang: fix a bug in processing invalid arguments, introduced in r201249,
...
pointed out by Daniel Jasper in r201329
llvm-svn: 201346
2014-02-13 16:51:38 +00:00
Daniel Jasper
a238b17e76
Remove assert added in r201249.
...
This triggers on one of our internal tests.
Dmitri:
I do not understand this part of the codebase well enough to locate the
underlying cause easily. If the correct fix is not obvious, I can try to
debug the problem further or try to come up with reduced test case.
llvm-svn: 201329
2014-02-13 14:24:14 +00:00
Alexey Bataev
aadd52e5cc
[OPENMP] 'if' clause support (no CodeGen support)
...
llvm-svn: 201297
2014-02-13 05:29:23 +00:00
Reid Kleckner
6eaf05a4fd
Really fix unused variable warnings in CIndex.
...
llvm-svn: 201285
2014-02-13 01:19:59 +00:00
Reid Kleckner
fd48fc6d33
Silence unused variable warning in CIndex.cpp with NDEBUG
...
llvm-svn: 201276
2014-02-12 23:56:20 +00:00
Dmitri Gribenko
ea4d1c32fb
libclang: report error code for bad PCH files
...
This commit improves libclang to report the error condition when
CXTranslationUnit can not be created because of a stale PCH file. This allows
the caller, for example, to rebuild the PCH file and retry the request.
There two are APIs in libclang that return a CXTranslationUnit and don't
support reporting detailed errors (the only error condition is a NULL result).
For these APIs, a second, superior, version is introduced --
clang_createTranslationUnit2 and clang_parseTranslationUnit2. These functions
return a CXTranslationUnit indirectly and also return an error code. Old
functions are still supported and are nothing more than convenience wrappers
that ignore extended error codes.
As a cleanup, this commit also categorizes some libclang errors in the
functions I had to modify anyway.
llvm-svn: 201249
2014-02-12 19:12:37 +00:00
Dmitri Gribenko
852d622e5e
Fix a typo in the function name that I just introduced (r201155)
...
llvm-svn: 201156
2014-02-11 15:02:48 +00:00