| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
introduce it into the clangIndex library.
It is a general goodness for libclang itself to mostly be a wrapper of functionality provided by the libraries.
llvm-svn: 260760
|
|
|
|
|
|
| |
the ObjC implementation decl.
llvm-svn: 260253
|
|
|
|
|
|
|
|
| |
getter/setter methods be the implementation decl.
Matches the behavior of other ObjC methods.
llvm-svn: 260250
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Use clang-tidy to simplify boolean conditional return statements.
Reviewers: alexfh
Subscribers: alexfh, chfast, cfe-commits
Patch by Richard Thomson!
Differential Revision: http://reviews.llvm.org/D10024
llvm-svn: 256498
|
|
|
|
| |
llvm-svn: 210422
|
|
|
|
|
|
| |
iterator_range bases(). Updating all of the usages of the iterators with range-based for loops.
llvm-svn: 203803
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
MSVC bots.
llvm-svn: 203237
|
|
|
|
|
|
| |
attrs(). Updating all of the usages of the iterators with range-based for loops.
llvm-svn: 203236
|
|
|
|
|
|
| |
This is a private class member so the fix shouldn't impact external projects.
llvm-svn: 195985
|
|
|
|
|
|
|
| |
There are about 30 removed in this patch, generated by a new FixIt I haven't
got round to submitting yet.
llvm-svn: 195814
|
|
|
|
|
|
| |
QualType with a SourceLocation stashed alongside.
llvm-svn: 193803
|
|
|
|
|
|
|
|
|
| |
into a separate "parse an attribute that takes a type argument" codepath. This
results in both codepaths being a lot cleaner and simpler, and fixes some bugs
where the type argument handling bled into the expression argument handling and
caused us to both accept invalid and reject valid attribute arguments.
llvm-svn: 193731
|
|
|
|
|
|
| |
Every other function in Redeclarable.h was using Decl instead of Declaration.
llvm-svn: 192900
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Let me tell you a tale...
Within some twisted maze of debug info I've ended up implementing an
insane man's Include What You Use device. When the debugger emits debug
info it really shouldn't, I find out why & then realize the code could
be improved too.
In this instance CIndexDiagnostics.cpp had a lot more debug info with
Clang than GCC. Upon inspection a major culprit was all the debug info
describing clang::Sema. This was emitted because clang::Sema is
befriended by DiagnosticEngine which was rightly required, but GCC
doesn't emit debug info for friends so it never emitted anything for
Clang. Clang does emit debug info for friends (will be fixed/changed to
reduce debug info size).
But why didn't Clang just emit a declaration of Sema if this entire TU
didn't require a definition?
1) Diagnostic.h did the right thing, only using a declaration of Sema
and not including Sema.h at all.
2) Some other dependency of CIndexDiagnostics.cpp didn't do the right
thing. ASTUnit.h, only needing a declaration, still included Sema.h
(hence this commit which removes that include and adds the necessary
includes to the cpp files that were relying on this)
3) -flimit-debug-info didn't save us because of
EnterExpressionEvaluationContext, defined inline in Sema.h which fires
the "requiresCompleteType" check/flag (since it uses nested types from
Sema and calls Sema member functions) and thus, if debug info is ever
emitted for the type, the whole type is emitted and not just a
declaration.
Improving -flimit-debug-info to account for this would be... hard.
Modifying the code so that's not 'required to be complete' might be
possible, but probably only by moving EnterExpressionEvaluationContext
either into Sema, or out of Sema.h. That might be a bit too much of a
contortion to be bothered with.
Also, this is only one of the cases where emitting debug info for
friends caused us to emit a lot more debug info (this change reduces
Clang's DWO size by 0.93%, dropping friends entirely reduces debug info
by 3.2%) - I haven't hunted down the other cases, but I assume they
might be similar (Sema or something like it). IWYU or a similar tool
might help us reduce build times a bit, but analyzing debug info to find
these differences isn't worthwhile. I'll take the 3.2% win, provide this
small improvement to the code itself, and move on.
llvm-svn: 190715
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
references thereto.
Patch by Tong Shen!
llvm-svn: 179585
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The TypeLoc hierarchy used the llvm::cast machinery to perform undefined
behavior by casting pointers/references to TypeLoc objects to derived types
and then using the derived copy constructors (or even returning pointers to
derived types that actually point to the original TypeLoc object).
Some context is in this thread:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056804.html
Though it's spread over a few months which can be hard to read in the mail
archive.
llvm-svn: 175462
|
|
|
|
|
|
| |
into a getter cxtu::getASTUnit(TU)
llvm-svn: 173585
|
|
|
|
|
|
| |
Use const_cast<> to avoid a cast-away-const error.
llvm-svn: 172565
|
|
|
|
| |
llvm-svn: 172373
|
|
|
|
|
|
|
| |
No testcase because this did not affect correctness: a declaration can only be
ClassTemplateDecl or a FunctionTemplateDecl, not both.
llvm-svn: 170565
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that were already parsed in the same "indexing session".
An indexing session is defined as using the same CXIndexAction object
for multiple clang_indexSourceFile calls.
Passing CXIndexOpt_SkipParsedBodiesInSession as an indexing option will
enable the mode where we try to skip bodies that were already parsed in
another translation unit.
If a function's body was skipped, the "flags" field in the CXIdxDeclInfo
structure will have "CXIdxDeclFlag_Skipped" bit was set.
llvm-svn: 169539
|
|
|
|
|
|
| |
Completely automated with sort_includes.py
llvm-svn: 169240
|
|
|
|
| |
llvm-svn: 166913
|
|
|
|
|
|
| |
imports.
llvm-svn: 166161
|
|
|
|
|
|
| |
importedASTFile indexing callback.
llvm-svn: 165281
|
|
|
|
| |
llvm-svn: 165161
|
|
|
|
|
|
| |
imports via ImportDecls.
llvm-svn: 165160
|
|
|
|
|
|
| |
info about imported modules.
llvm-svn: 165020
|
|
|
|
|
|
| |
rdar://12257073
llvm-svn: 163563
|
|
|
|
| |
llvm-svn: 163032
|
|
|
|
|
|
| |
instead of aliasing to "struct" which had some incorrect behaviour. Patch by David Robins.
llvm-svn: 163013
|
|
|
|
|
|
|
|
|
| |
When indexing a property with a getter/setter with attributes, the allocated memory
for AttrListInfo could get released before its destructor is run.
Fixes rdar://11113442.
llvm-svn: 153792
|
|
|
|
|
|
|
|
|
|
| |
make sure to record the source location of the ivar name.
[libclang] When indexing @synthesized objc methods, report the @implementation
as the lexical container.
Fixes rdar://10905472
llvm-svn: 151635
|
|
|
|
|
|
|
|
| |
the getter/setter objc method entities that the property is associated with.
rdar://10244558
llvm-svn: 151634
|
|
|
|
|
|
|
| |
well as improving the RecursiveASTVisitor's walk of lambda
expressions.
llvm-svn: 150549
|
|
|
|
|
|
| |
opt-in indexing option.
llvm-svn: 150517
|
|
|
|
|
|
| |
More cleanup after r149799.
llvm-svn: 150380
|
|
|
|
| |
llvm-svn: 150267
|
|
|
|
|
|
| |
of bases in C++ classes. rdar://10768707
llvm-svn: 150048
|
|
|
|
| |
llvm-svn: 150007
|
|
|
|
|
|
| |
process removed some naming ambiguities.
llvm-svn: 149870
|
|
|
|
|
|
|
|
|
| |
@implementation I(cat)
suppress subsequent references to 'I'.
rdar://10568103
llvm-svn: 148730
|
|
|
|
|
|
|
|
|
| |
without C++-specific features.
Use it to set the language to C++ when indexing non-C-like structs.
rdar://10732579
llvm-svn: 148708
|
|
|
|
| |
llvm-svn: 148524
|
|
|
|
| |
llvm-svn: 148319
|
|
|
|
|
|
|
|
|
|
|
|
| |
we have a redeclarable type, and only use the new virtual versions
(getPreviousDeclImpl() and getMostRecentDeclImpl()) when we don't have
that type information. This keeps us from penalizing users with strict
type information (and is the moral equivalent of a "final" method).
Plus, settle on the names getPreviousDecl() and getMostRecentDecl()
throughout.
llvm-svn: 148187
|
|
|
|
|
|
| |
index parameters.
llvm-svn: 148169
|