#
81978014 |
| 09-Jun-2016 |
Olivier Goffart <ogoffart@woboq.com> |
CIndex: add support for static_assert
Differential Revision: http://reviews.llvm.org/D18080
llvm-svn: 272273
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
#
301bc21f |
| 19-May-2016 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Make Sema::getPrintingPolicy less ridiculously expensive. This used to perform an identifier table lookup, *and* copy the LangOptions (including various std::vector<std::string>s). Twice. We call thi
Make Sema::getPrintingPolicy less ridiculously expensive. This used to perform an identifier table lookup, *and* copy the LangOptions (including various std::vector<std::string>s). Twice. We call this function once each time we start parsing a declaration specifier sequence, and once for each call to Sema::Diag.
This reduces the compile time for a sample .c file from the linux kernel by 20%.
llvm-svn: 270009
show more ...
|
#
5c716175 |
| 13-May-2016 |
Yaron Keren <yaron.keren@gmail.com> |
Prune four superfluous ExternalSemaSource.h includes and one forward declaration in Sema.h where ExternalSemaSource.h was already included due to ExternalSemaSource:: member uses.
llvm-svn: 269423
|
#
45d41326 |
| 11-May-2016 |
Andrey Bokhanko <andreybokhanko@gmail.com> |
[MSVC] Implementation of __unaligned as a proper type qualifier
This patch implements __unaligned (MS extension) as a proper type qualifier (before that, it was implemented as an ignored attribute).
[MSVC] Implementation of __unaligned as a proper type qualifier
This patch implements __unaligned (MS extension) as a proper type qualifier (before that, it was implemented as an ignored attribute).
It also fixes PR27367 and PR27666.
Differential Revision: http://reviews.llvm.org/D20103
llvm-svn: 269220
show more ...
|
#
2801d32c |
| 06-May-2016 |
Nico Weber <nicolasweber@gmx.de> |
Revert r268727, it caused PR27666.
llvm-svn: 268736
|
#
ba0d7540 |
| 06-May-2016 |
Andrey Bokhanko <andreybokhanko@gmail.com> |
[MSVC] Implementation of __unaligned as a proper type qualifier
This patch implements __unaligned (MS extension) as a proper type qualifier (before that, it was implemented as an ignored attribute).
[MSVC] Implementation of __unaligned as a proper type qualifier
This patch implements __unaligned (MS extension) as a proper type qualifier (before that, it was implemented as an ignored attribute).
It also fixes PR27367.
Differential Revision: http://reviews.llvm.org/D19654
llvm-svn: 268727
show more ...
|
#
917fc9d7 |
| 15-Apr-2016 |
Nico Weber <nicolasweber@gmx.de> |
Revert r266415, it broke parsing SDK headers (PR27367).
llvm-svn: 266431
|
#
f7fa6348 |
| 15-Apr-2016 |
Andrey Bokhanko <andreybokhanko@gmail.com> |
[MSVC Compat] Implementation of __unaligned (MS extension) as a type qualifier
This patch implements __unaligned as a type qualifier; before that, it was modeled as an attribute. Proper mangling of
[MSVC Compat] Implementation of __unaligned (MS extension) as a type qualifier
This patch implements __unaligned as a type qualifier; before that, it was modeled as an attribute. Proper mangling of __unaligned is implemented as well. Some OpenCL code/tests are tangenially affected, as they relied on existing number and sizes of type qualifiers.
Differential Revision: http://reviews.llvm.org/D18596
llvm-svn: 266415
show more ...
|
Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3 |
|
#
72dae62b |
| 18-Feb-2016 |
Benjamin Kramer <benny.kra@googlemail.com> |
[Parse] Code complete expressions in bracket declarators.
Currently we return no results when completing inside of the brackets in a 'char foo[]' declaration. Let the generic expression completion c
[Parse] Code complete expressions in bracket declarators.
Currently we return no results when completing inside of the brackets in a 'char foo[]' declaration. Let the generic expression completion code handle it instead. We could get fancier here (e.g. filter non-constant expressions in contexts where VLAs are not allowed), but it's a strict improvement over the existing version.
llvm-svn: 261217
show more ...
|
Revision tags: llvmorg-3.8.0-rc2 |
|
#
5b786407 |
| 28-Jan-2016 |
Manman Ren <manman.ren@gmail.com> |
Class Property: class property and instance property can have the same name.
Add "enum ObjCPropertyQueryKind" to a few APIs that used to only take the name of the property: ObjCPropertyDecl::findPro
Class Property: class property and instance property can have the same name.
Add "enum ObjCPropertyQueryKind" to a few APIs that used to only take the name of the property: ObjCPropertyDecl::findPropertyDecl, ObjCContainerDecl::FindPropertyDeclaration, ObjCInterfaceDecl::FindPropertyVisibleInPrimaryClass, ObjCImplDecl::FindPropertyImplDecl, and Sema::ActOnPropertyImplDecl.
ObjCPropertyQueryKind currently has 3 values: OBJC_PR_query_unknown, OBJC_PR_query_instance, OBJC_PR_query_class
This extra parameter specifies that we are looking for an instance property with the given name, or a class property with the given name, or any property with the given name (if both exist, the instance property will be returned).
rdar://23891898
llvm-svn: 259070
show more ...
|
#
a7a8b1f2 |
| 26-Jan-2016 |
Manman Ren <manman.ren@gmail.com> |
Use instance_properties instead of properties. NFC.
All current properties are instance properties.
This is the second patch in a series of patches to support class properties in addition to instan
Use instance_properties instead of properties. NFC.
All current properties are instance properties.
This is the second patch in a series of patches to support class properties in addition to instance properties in objective-c.
rdar://23891898
llvm-svn: 258824
show more ...
|
Revision tags: llvmorg-3.8.0-rc1 |
|
#
f2005d3d |
| 29-Dec-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Model NamespaceAliasDecls as having their nominated namespace as an underlying declaration. This fixes an issue where we would reject (due to a claimed ambiguity) a case where lookup finds multiple N
Model NamespaceAliasDecls as having their nominated namespace as an underlying declaration. This fixes an issue where we would reject (due to a claimed ambiguity) a case where lookup finds multiple NamespaceAliasDecls from different scopes that nominate the same namespace.
The C++ standard doesn't make it clear that such a case is in fact valid (which I'm working on fixing), but there are no relevant rules that distinguish using declarations and namespace alias declarations here, so it makes sense to treat them the same way.
llvm-svn: 256601
show more ...
|
#
883dd332 |
| 24-Dec-2015 |
Craig Topper <craig.topper@gmail.com> |
[Sema] ArrayRef-ize ParseObjCStringLiteral and CodeCompleteObjCProtocolReferences. NFC
llvm-svn: 256397
|
#
db0ac557 |
| 18-Dec-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Split RequireCompleteType into a function that actually requires that the type is complete (with an error produced if not) and a function that merely queries whether the type is complete. Either way
Split RequireCompleteType into a function that actually requires that the type is complete (with an error produced if not) and a function that merely queries whether the type is complete. Either way we'll trigger instantiation if necessary, but only the former will diagnose and recover from missing module imports.
The intent of this change is to prevent a class of bugs where code would call RequireCompleteType(..., 0) and then ignore the result. With modules, we must check the return value and use it to determine whether the definition of the type is visible.
This also fixes a debug info quality issue: calls to isCompleteType do not trigger the emission of debug information for a type in limited-debug-info mode. This allows us to avoid emitting debug information for type definitions in more cases where we believe it is safe to do so.
llvm-svn: 256049
show more ...
|
Revision tags: llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1 |
|
#
12126260 |
| 15-Nov-2015 |
Craig Topper <craig.topper@gmail.com> |
[Sema] Use getLangOpts in Sema instead of Preprocessor. Call getTargetInfo on the AST context instead of Preprocessor. NFC
llvm-svn: 253175
|
#
8f3b187e |
| 15-Nov-2015 |
Sergey Kalinichev <kalinichev.so.0@gmail.com> |
[libclang] Visit TypeAliasTemplateDecl
This makes TypeAliasTemplateDecl accessible via LibClang and python bindings
Differential Revision: http://reviews.llvm.org/D13844
llvm-svn: 253166
|
#
460ce58f |
| 22-Oct-2015 |
John McCall <rjmccall@apple.com> |
Define weak and __weak to mean ARC-style weak references, even in MRC.
Previously, __weak was silently accepted and ignored in MRC mode. That makes this a potentially source-breaking change that we
Define weak and __weak to mean ARC-style weak references, even in MRC.
Previously, __weak was silently accepted and ignored in MRC mode. That makes this a potentially source-breaking change that we have to roll out cautiously. Accordingly, for the time being, actual support for __weak references in MRC is experimental, and the compiler will reject attempts to actually form such references. The intent is to eventually enable the feature by default in all non-GC modes. (It is, of course, incompatible with ObjC GC's interpretation of __weak.)
If you like, you can enable this feature with -Xclang -fobjc-weak but like any -Xclang option, this option may be removed at any point, e.g. if/when it is eventually enabled by default.
This patch also enables the use of the ARC __unsafe_unretained qualifier in MRC. Unlike __weak, this is being enabled immediately. Since variables are essentially __unsafe_unretained by default in MRC, the only practical uses are (1) communication and (2) changing the default behavior of by-value block capture.
As an implementation matter, this means that the ObjC ownership qualifiers may appear in any ObjC language mode, and so this patch removes a number of checks for getLangOpts().ObjCAutoRefCount that were guarding the processing of these qualifiers. I don't expect this to be a significant drain on performance; it may even be faster to just check for these qualifiers directly on a type (since it's probably in a register anyway) than to do N dependent loads to grab the LangOptions.
rdar://9674298
llvm-svn: 251041
show more ...
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2 |
|
#
f0917ab7 |
| 24-Jul-2015 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[code-completion] Strip outer nullability annotations when completing method implementations.
The outer nullability is transferred from the declaration to the implementation so including them is red
[code-completion] Strip outer nullability annotations when completing method implementations.
The outer nullability is transferred from the declaration to the implementation so including them is redundant. The inner ones are not transferred so they are kept to match the exact types. When we transfer the inner ones as well adding them in the implementation will become redundant and we should strip those as well.
rdar://21737451
llvm-svn: 243119
show more ...
|
Revision tags: llvmorg-3.7.0-rc1 |
|
#
a4f8df0b |
| 09-Jul-2015 |
Benjamin Kramer <benny.kra@googlemail.com> |
[CodeCompletion] Don't crash on member inits of templated constructors.
Also fixes a crash (on invalid) member functions with a colon initializer. PR23948.
llvm-svn: 241811
|
#
9b7b3e90 |
| 07-Jul-2015 |
Douglas Gregor <dgregor@apple.com> |
[libclang] Replace ObjC generic parameters when code-completing method implementations.
rdar://20643768
llvm-svn: 241559
|
#
4c850f3a |
| 07-Jul-2015 |
Douglas Gregor <dgregor@apple.com> |
[libclang] Fix code-completion of block parameters that are marked with nullability specifier.
rdar://20755276
llvm-svn: 241558
|
#
c3425b1f |
| 07-Jul-2015 |
Douglas Gregor <dgregor@apple.com> |
[libclang] Replace ObjC generic parameters in code-completion results.
rdar://19369529
llvm-svn: 241557
|
#
85f3f951 |
| 07-Jul-2015 |
Douglas Gregor <dgregor@apple.com> |
Parsing, semantic analysis, and AST for Objective-C type parameters.
Produce type parameter declarations for Objective-C type parameters, and attach lists of type parameters to Objective-C classes,
Parsing, semantic analysis, and AST for Objective-C type parameters.
Produce type parameter declarations for Objective-C type parameters, and attach lists of type parameters to Objective-C classes, categories, forward declarations, and extensions as appropriate. Perform semantic analysis of type bounds for type parameters, both in isolation and across classes/categories/extensions to ensure consistency.
Also handle (de-)serialization of Objective-C type parameter lists, along with sundry other things one must do to add a new declaration to Clang.
Note that Objective-C type parameters are typedef name declarations, like typedefs and C++11 type aliases, in support of type erasure.
Part of rdar://problem/6294649.
llvm-svn: 241541
show more ...
|
#
aea7afdc |
| 24-Jun-2015 |
Douglas Gregor <dgregor@apple.com> |
Replace __double_underscored type nullability qualifiers with _Uppercase_underscored
Addresses a conflict with glibc's __nonnull macro by renaming the type nullability qualifiers as follows:
__no
Replace __double_underscored type nullability qualifiers with _Uppercase_underscored
Addresses a conflict with glibc's __nonnull macro by renaming the type nullability qualifiers as follows:
__nonnull -> _Nonnull __nullable -> _Nullable __null_unspecified -> _Null_unspecified
This is the major part of rdar://problem/21530726, but does not yet provide the Darwin-specific behavior for the old names.
llvm-svn: 240596
show more ...
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
#
ab9db510 |
| 22-Jun-2015 |
Alexander Kornienko <alexfh@google.com> |
Revert r240270 ("Fixed/added namespace ending comments using clang-tidy").
llvm-svn: 240353
|