#
df14b3a8 |
| 11-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Initial implementation of __atomic_* (everything except __atomic_is_lock_free).
llvm-svn: 141632
|
#
cddafd39 |
| 06-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Introduce clang_findReferencesInFile which accepts a cursor, a file, and a callback and finds all identifier references of the cursor in the file.
rdar://7948304
llvm-svn: 141277
|
#
3b947f72 |
| 06-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Move the bulk of clang_getOverriddenCursors into a cxcursor::getOverriddenCursors C++ function, because SmallVectors are groovier that malloc'ing buffers.
llvm-svn: 141276
|
#
4c362d53 |
| 05-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Expose more statement, expression, and declaration kinds in libclang, from Manuel Holtgrewe!
llvm-svn: 141200
|
#
a1bcb6ad |
| 27-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
MSVC is stuck in the 80s.
llvm-svn: 140597
|
#
d6e9fa55 |
| 27-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Introduce clang_Cursor_isNull and clang_Cursor_getTranslationUnit functions.
llvm-svn: 140587
|
#
4cdfcae7 |
| 26-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't map a file:line:col triplet that is inside the preamble range to a "loaded" location of the precompiled preamble.
Instead, handle specially locations of preprocessed entities: -When looking up
Don't map a file:line:col triplet that is inside the preamble range to a "loaded" location of the precompiled preamble.
Instead, handle specially locations of preprocessed entities: -When looking up for preprocessed entities, map main file locations inside the preamble range to a preamble loaded location. -When getting the source range of a preprocessing cursor, map preamble loaded locations back to main file locations.
Fixes rdar://10175093 & http://llvm.org/PR10999
llvm-svn: 140519
show more ...
|
#
2cb4e3c5 |
| 13-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] -Allow cursor visitation of an attribute using its source range -Add C++ 'final' and 'override' attributes as cursor kinds -Simplify the logic that marks 'final' and 'override' attributes
[libclang] -Allow cursor visitation of an attribute using its source range -Add C++ 'final' and 'override' attributes as cursor kinds -Simplify the logic that marks 'final' and 'override' attributes as tokens.
llvm-svn: 139609
show more ...
|
#
349c403b |
| 10-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch a C-style cast over to a const_cast. No functionality change
llvm-svn: 137218
|
#
3f35bb2d |
| 04-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Add a new libclang API to return a CXCompletionString for an arbitrary cursor, from Connor Wakamo! Addresses <rdar://problem/9087798>.
llvm-svn: 136911
|
#
7c454bb8 |
| 15-Jul-2011 |
John McCall <rjmccall@apple.com> |
Create a new expression node, SubstNonTypeTemplateParmExpr, to represent a fully-substituted non-type template parameter. This should improve source fidelity, as well as being generically useful for
Create a new expression node, SubstNonTypeTemplateParmExpr, to represent a fully-substituted non-type template parameter. This should improve source fidelity, as well as being generically useful for diagnostics and such.
llvm-svn: 135243
show more ...
|
#
9e4704ab |
| 14-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Update all of the libclang code corresponding to the preprocessor MacroInstantiation -> MacroExpansion rename. Internally, everything is switched.
Introduce a new cursor kind enum with the new name,
Update all of the libclang code corresponding to the preprocessor MacroInstantiation -> MacroExpansion rename. Internally, everything is switched.
Introduce a new cursor kind enum with the new name, but retain the old name as an alias so that we don't break backwards compatibility.
Also update the debug printing routine to use 'macro expansions' as its explicitly not guaranteed to be stable, and mechanically switch the test cases over to that.
llvm-svn: 135140
show more ...
|
#
a88a2218 |
| 14-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move the rest of the preprocessor terminology from 'instantiate' and variants to 'expand'. This changed a couple of public APIs, including one public type "MacroInstantiation" which is now "MacroExpa
Move the rest of the preprocessor terminology from 'instantiate' and variants to 'expand'. This changed a couple of public APIs, including one public type "MacroInstantiation" which is now "MacroExpansion". The rest of the codebase was updated to reflect this, especially the libclang code. Two of the C++ (and thus easily changed) libclang APIs were updated as well because they pertained directly to the old MacroInstantiation class.
No functionality changed.
llvm-svn: 135139
show more ...
|
#
8bb2ecf3 |
| 29-Jun-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Introduce cxcursor::getCursorParentDecl(CXCursor Cursor) and use it at the appropriate place in CIndex.cpp No functionality change.
llvm-svn: 134104
|
#
fe31481f |
| 21-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new AST node describing reference binding to temporaries.
MaterializeTemporaryExpr captures a reference binding to a temporary value, making explicit that the temporary value (a prvalue)
Introduce a new AST node describing reference binding to temporaries.
MaterializeTemporaryExpr captures a reference binding to a temporary value, making explicit that the temporary value (a prvalue) needs to be materialized into memory so that its address can be used. The intended AST invariant here is that a reference will always bind to a glvalue, and MaterializeTemporaryExpr will be used to convert prvalues into glvalues for that binding to happen. For example, given
const int& r = 1.0;
The initializer of "r" will be a MaterializeTemporaryExpr whose subexpression is an implicit conversion from the double literal "1.0" to an integer value.
IR generation benefits most from this new node, since it was previously guessing (badly) when to materialize temporaries for the purposes of reference binding. There are likely more refactoring and cleanups we could perform there, but the introduction of MaterializeTemporaryExpr fixes PR9565, a case where IR generation would effectively bind a const reference directly to a bitfield in a struct. Addresses <rdar://problem/9552231>.
llvm-svn: 133521
show more ...
|
#
31168b07 |
| 15-Jun-2011 |
John McCall <rjmccall@apple.com> |
Automatic Reference Counting.
Language-design credit goes to a lot of people, but I particularly want to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation c
Automatic Reference Counting.
Language-design credit goes to a lot of people, but I particularly want to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself, in no particular order.
llvm-svn: 133103
show more ...
|
#
55808c10 |
| 04-Jun-2011 |
Tanya Lattner <tonic@nondot.org> |
Add support for builtin astype: __builtin_astype(): Used to reinterpreted as another data type of the same size using for both scalar and vector data types. Added test case.
llvm-svn: 132612
|
#
1c0675e1 |
| 28-Apr-2011 |
John Wiegley <johnw@boostpro.com> |
Parsing/AST support for Structured Exception Handling
Patch authored by Sohail Somani.
Provide parsing and AST support for Windows structured exception handling.
llvm-svn: 130366
|
#
6242b6a6 |
| 28-Apr-2011 |
John Wiegley <johnw@boostpro.com> |
Implementation of Embarcadero array type traits
Patch authored by John Wiegley.
These are array type traits used for parsing code that employs certain features of the Embarcadero C++ compiler: __ar
Implementation of Embarcadero array type traits
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).
llvm-svn: 130351
show more ...
|
#
f9f6584e |
| 25-Apr-2011 |
John Wiegley <johnw@boostpro.com> |
t/clang/expr-traits
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++
t/clang/expr-traits
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.
llvm-svn: 130122
show more ...
|
#
91147596 |
| 15-Apr-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
C1X: implement generic selections
As an extension, generic selection support has been added for all supported languages. The syntax is the same as for C1X.
llvm-svn: 129554
|
#
02e85f3b |
| 14-Apr-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add support for C++0x's range-based for loops, as specified by the C++11 draft standard (N3291).
llvm-svn: 129541
|
Revision tags: llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2 |
|
#
e190dee7 |
| 11-Mar-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Add support for the OpenCL vec_step operator, by generalising and extending the existing support for sizeof and alignof. Original patch by Guy Benyei.
llvm-svn: 127475
|
Revision tags: llvmorg-2.9.0-rc1 |
|
#
c07a0c7e |
| 17-Feb-2011 |
John McCall <rjmccall@apple.com> |
Change the representation of GNU ?: expressions to use a different expression class and to bind the shared value using OpaqueValueExpr. This fixes an unnoticed problem with deserialization of these
Change the representation of GNU ?: expressions to use a different expression class and to bind the shared value using OpaqueValueExpr. This fixes an unnoticed problem with deserialization of these expressions where the deserialized form would lose the vital pointer-equality trait; or rather, it fixes it because this patch also does the right thing for deserializing OVEs.
Change OVEs to not be a "temporary object" in the sense that copy elision is permitted.
This new representation is not totally unawkward to work with, but I think that's really part and parcel with the semantics we're modelling here. In particular, it's much easier to fix things like the copy elision bug and to make the CFG look right.
I've tried to update the analyzer to deal with this in at least some obvious cases, and I think we get a much better CFG out, but the printing of OpaqueValueExprs probably needs some work.
llvm-svn: 125744
show more ...
|
#
41f85462 |
| 09-Feb-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
AST, Sema, Serialization: add CUDAKernelCallExpr and related semantic actions
llvm-svn: 125217
|