| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
That stuff can be added later on if we need them.
Also add some const goodness.
llvm-svn: 144446
|
| |
|
|
|
|
| |
character, and change the creation of the FixIT's string to again just rely on this string (instead of duplicating it when calling createCXString).
llvm-svn: 144389
|
| |
|
|
|
|
|
|
| |
terminator on fixit.
FixIts might be exposed as C string via clang_getCString(), though the zero terminator is not allocated in CXLoadedDiagnosticSetImpl::makeString.
llvm-svn: 144379
|
| |
|
|
|
|
|
|
| |
Cut down the number of callbacks to more generic ones. Clients can check
an enum to find out what kind of declaration it is and they can call functions
to get more specific information than the generic provided info.
llvm-svn: 144343
|
| |
|
|
|
|
|
|
| |
via the libclang API.
I've tested it on simple cases and it works. Test cases to follow as well as a few tweaks.
llvm-svn: 144269
|
| |
|
|
| |
llvm-svn: 144116
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
property references to use a new PseudoObjectExpr
expression which pairs a syntactic form of the expression
with a set of semantic expressions implementing it.
This should significantly reduce the complexity required
elsewhere in the compiler to deal with these kinds of
expressions (e.g. IR generation's special l-value kind,
the static analyzer's Message abstraction), at the lower
cost of specifically dealing with the odd AST structure
of these expressions. It should also greatly simplify
efforts to implement similar language features in the
future, most notably Managed C++'s properties and indexed
properties.
Most of the effort here is in dealing with the various
clients of the AST. I've gone ahead and simplified the
ObjC rewriter's use of properties; other clients, like
IR-gen and the static analyzer, have all the old
complexity *and* all the new complexity, at least
temporarily. Many thanks to Ted for writing and advising
on the necessary changes to the static analyzer.
I've xfailed a small diagnostics regression in the static
analyzer at Ted's request.
llvm-svn: 143867
|
| |
|
|
| |
llvm-svn: 143639
|
| |
|
|
| |
llvm-svn: 143637
|
| |
|
|
|
|
|
|
|
|
|
| |
that function
always returning a null file/line/column.
Also add at least one use of clang_getExpansionLocation inside c-index-test that would have
made the tests to catch that.
llvm-svn: 143606
|
| |
|
|
|
|
|
|
| |
region and
use it for clang_getCursor.
llvm-svn: 143605
|
| |
|
|
| |
llvm-svn: 143508
|
| |
|
|
|
|
|
|
|
|
| |
or ivar
it contains give it a USR based on its semantic context, which is the interface.
This follows what we already did for objc methods. rdar://10371669
llvm-svn: 143464
|
| |
|
|
|
|
|
|
|
| |
that it retains source location information for the type. Aside from
general goodness (being able to walk the types described in that
information), we now have a proper representation for dependent
delegating constructors. Fixes PR10457 (for real).
llvm-svn: 143410
|
| |
|
|
|
|
|
|
| |
implementation if the lowest bit of ptr_data[0] is not 0. This
is prep for work on serialized diagnostics.
llvm-svn: 143373
|
| |
|
|
|
|
| |
CXSourceLocations and CXSourceRanges into a separate file.
llvm-svn: 143370
|
| |
|
|
|
|
|
|
| |
implementation backing a CXDiagnostic. This allows CXStoredDiagnostic
to be just one possible implementation of a CXDiagnostic.
llvm-svn: 143368
|
| |
|
|
| |
llvm-svn: 143337
|
| |
|
|
|
|
| |
so the c-index-test one can be enabled without affecting libclang.
llvm-svn: 143288
|
| |
|
|
|
|
| |
clang_reparseTranslationUnit.
llvm-svn: 143242
|
| |
|
|
|
|
| |
silence warnings).
llvm-svn: 143193
|
| |
|
|
|
|
|
|
|
|
| |
statements. As noted in the documentation for the AST node, the
semantics of __if_exists/__if_not_exists are somewhat different from
the way Visual C++ implements them, because our parsed-template
representation can't accommodate VC++ semantics without serious
contortions. Hopefully this implementation is "good enough".
llvm-svn: 142901
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deserializing
preprocessed entities that are #included in the range that we are interested.
This is useful when we are interested in preprocessed entities of a specific file, e.g
when we are annotating tokens. There is also an optimization where we cache the last
result of PreprocessingRecord::getPreprocessedEntitiesInRange and we re-use it if
there is a call with the same range as before.
rdar://10313365
llvm-svn: 142887
|
| |
|
|
| |
llvm-svn: 142433
|
| |
|
|
|
|
| |
clang_getExpansionLocation.
llvm-svn: 142430
|
| |
|
|
| |
llvm-svn: 142420
|
| |
|
|
|
|
|
|
|
| |
the class
don't use unique USRs for them, otherwise we fail to associate @implementation methods
with the methods in extensions.
llvm-svn: 142361
|
| |
|
|
| |
llvm-svn: 142355
|
| |
|
|
| |
llvm-svn: 142353
|
| |
|
|
| |
llvm-svn: 142292
|
| |
|
|
|
|
|
|
|
| |
more of the work involved in indexing a translation unit and simplifies client
implementations.
Only C/ObjC for now, C++ (and comments) to come.
llvm-svn: 142233
|
| |
|
|
|
|
|
|
| |
casts in ARC.
No semantic analysis yet.
llvm-svn: 142208
|
| |
|
|
|
|
| |
Lack of half FP was a regression compared to llvm-gcc.
llvm-svn: 142016
|
| |
|
|
|
|
|
|
| |
of a pointer.
Passing a pointer was a bad idea as it collides with the overload for void*.
llvm-svn: 141971
|
| |
|
|
|
|
| |
retrieve annotations from completion string.
llvm-svn: 141953
|
| |
|
|
|
|
| |
attributes are found, propagate them to subsequent declarations.
llvm-svn: 141861
|
| |
|
|
| |
llvm-svn: 141770
|
| |
|
|
| |
llvm-svn: 141769
|
| |
|
|
| |
llvm-svn: 141632
|
| |
|
|
|
|
|
|
|
| |
completion context, in case we end up having no code-completion
callback. Individual instances of this problem are always bugs that
need to be fixed, but it's better to make sure we have initialized
data here.
llvm-svn: 141598
|
| |
|
|
| |
llvm-svn: 141583
|
| |
|
|
|
|
|
| |
for better self-documenting code, since the semantics
are subtly different from getDefinition().
llvm-svn: 141355
|
| |
|
|
|
|
|
|
| |
committed at the moment to help support C++0x <atomic>, but it should be a solid base for implementing the full specification of C1x _Atomic.
Thanks to Jeffrey Yasskin for the thorough review!
llvm-svn: 141330
|
| |
|
|
|
|
|
|
| |
and a callback and finds all identifier references of the cursor in the file.
rdar://7948304
llvm-svn: 141277
|
| |
|
|
|
|
|
| |
a cxcursor::getOverriddenCursors C++ function, because SmallVectors
are groovier that malloc'ing buffers.
llvm-svn: 141276
|
| |
|
|
|
|
| |
from Manuel Holtgrewe!
llvm-svn: 141200
|
| |
|
|
|
|
|
|
| |
-Add the location of the class name to all objc container decls, not just ObjCInterfaceDecl.
-Make objc decls consistent with the rest of the NamedDecls and have getLocation() point to the
class name, not the location of '@'.
llvm-svn: 141061
|
| |
|
|
|
|
|
|
| |
public:/private:/protected: specifiers.
Patch by Paolo Capriotti!
llvm-svn: 140864
|
| |
|
|
| |
llvm-svn: 140706
|
| |
|
|
|
|
|
| |
'bool' rather than '_Bool' within types, to make things a bit more
readable. Fixes <rdar://problem/10063263>.
llvm-svn: 140650
|