| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
chains. The previous implementation relied heavily on the declaration
chain being stored as a (circular) linked list on disk, as it is in
memory. However, when deserializing from multiple modules, the
different chains could get mixed up, leading to broken declaration chains.
The new solution keeps track of the first and last declarations in the
chain for each module file. When we load a declaration, we search all
of the module files for redeclarations of that declaration, then
splice together all of the lists into a coherent whole (along with any
redeclarations that were actually parsed).
As a drive-by fix, (de-)serialize the redeclaration chains of
TypedefNameDecls, which had somehow gotten missed previously. Add a
test of this serialization.
This new scheme creates a redeclaration table that is fairly large in
the PCH file (on the order of 400k for Cocoa.h's 12MB PCH file). The
table is mmap'd in and searched via a binary search, but it's still
quite large. A future tweak will eliminate entries for declarations
that have no redeclarations anywhere, and should
drastically reduce the size of this table.
llvm-svn: 146841
|
|
|
|
|
|
| |
check whether any previous declarations of the class were visible.
llvm-svn: 146680
|
|
|
|
|
|
|
| |
is not visible, look for any previous declarations of that entity that
might be visible.
llvm-svn: 146563
|
|
|
|
|
|
|
|
|
|
| |
function dependent context because it interferes with the "lookup into dependent bases of class templates" feature.
Basically typo correction will try to offer a correction instead of looking into type dependent base classes.
I found this problem while parsing Microsoft ATL code with clang.
llvm-svn: 145772
|
|
|
|
| |
llvm-svn: 145700
|
|
|
|
|
|
|
|
| |
unknown specialization, treat this the same way as if the name were
not found in the current instantiation. No actual functionality
change, since apparently nothing depends on this.
llvm-svn: 142862
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
available, but not accessible from the current code completion context.
llvm-svn: 141278
|
|
|
|
| |
llvm-svn: 139252
|
|
|
|
|
|
|
|
|
|
| |
synthesis. This new feature is currently placed under
-fobjc-default-synthesize-properties option
and is off by default pending further testing.
It will become the default feature soon.
// rdar://8843851
llvm-svn: 138913
|
|
|
|
|
|
|
|
|
| |
This makes the code duplication of implicit special member handling even worse,
but the cleanup will have to come later. For now, this works.
Follow-up with tests for explicit defaulting and enabling the __has_feature
flag to come.
llvm-svn: 138821
|
|
|
|
|
|
|
|
|
|
| |
, such as list of forward @class decls, in a DeclGroup
node. Deal with its consequence throught clang. This
is in preparation for more Sema work ahead. // rdar://8843851.
Feel free to reverse if it breaks something important
and I am unavailable.
llvm-svn: 138709
|
|
|
|
|
|
|
|
| |
Change TypoCorrection to store a set of NamedDecls instead of a single
NamedDecl. Also add initial support for performing function overload
resolution to Sema::DiagnoseEmptyLookup.
llvm-svn: 136807
|
|
|
|
|
|
|
|
| |
LLVM.h imports
them into the clang namespace.
llvm-svn: 135852
|
|
|
|
|
|
| |
ShadowMapEntry was.
llvm-svn: 135368
|
|
|
|
|
|
|
| |
implicit ivar accesses to go through the 'self' variable
rather than the real 'self' for the method. // rdar://9730771
llvm-svn: 134992
|
|
|
|
|
|
|
| |
It would be cool if we could do overload resolution to suggest
the right function, but at least this fixes the crashing.
llvm-svn: 134976
|
|
|
|
| |
llvm-svn: 134403
|
|
|
|
|
|
|
| |
"_Bool" (depending on dialect), but not both, since they have the same
edit distance from "Bool".
llvm-svn: 134263
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to the same declaration when correcting typos. This is done by
essentially sorting the corrections as they're added.
Original patch by Kaelyn Uhrain, but modified for style and correctness
by accounting for more than just the textual spelling.
This still is a bit of a WIP hack to make this deterministic. Kaelyn
(and myself) are working on a more principled solution going forward.
llvm-svn: 134038
|
|
|
|
|
|
|
|
|
|
| |
up several places where we never expect to have NULL pointers to assert
early.
This fixes a valgrind error within CorrectTypo, but not the
non-determinism.
llvm-svn: 134032
|
|
|
|
|
|
| |
don't rely on the existence of a copy constructor.
llvm-svn: 134009
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vector<int>
to
std::vector<int>
Patch by Kaelyn Uhrain, with minor tweaks + PCH support from me. Fixes
PR5776/<rdar://problem/8652971>.
Thanks Kaelyn!
llvm-svn: 134007
|
|
|
|
| |
llvm-svn: 133790
|
|
|
|
|
|
|
|
|
|
|
|
| |
conventions. I then discovered a typo in the using declaration bit in
LookupSpecialMember. This led to discovering [namespace.udecl]p15, which
clang implements incorrectly. Thus I've added a comment and implemented
the code consistently with the rest of clang - that is incorrectly.
And because I don't want to include tests of something incorrect, I've
ripped the test out.
llvm-svn: 133784
|
|
|
|
| |
llvm-svn: 133671
|
|
|
|
|
|
| |
implicit move tests.
llvm-svn: 133655
|
|
|
|
| |
llvm-svn: 133604
|
|
|
|
|
|
|
|
|
| |
FunctionTemplateDecl. I'm not quite sure what else it could be, though,
and would appreciate some insight.
This ought to fix the broken builds
llvm-svn: 133600
|
|
|
|
|
|
|
| |
lookup. Previously, it was breaking self-host, but it's been a week and
a half and I can't reproduce, so I need to see if it's still failing.
llvm-svn: 133581
|
|
|
|
|
|
| |
to study it.
llvm-svn: 132843
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I believe, upon, careful review, that this code causes us to incorrectly
handle exception specifications of copy assignment operators in C++03
mode. However, we currently do not seem to properly implement the subtle
distinction between copying of members and bases made by implicit copy
constructors and assignment operators in C++03 - namely that they are
limited in their overload selection - in all cases. As such, I feel that
committing this code is correct pending a careful review of our
implementation of these semantics.
llvm-svn: 132841
|
|
|
|
| |
llvm-svn: 132835
|
|
|
|
|
|
|
|
| |
isn't yet used for the less controlled environments of initialization.
Also a few random text fixups.
llvm-svn: 132833
|
|
|
|
| |
llvm-svn: 132700
|
|
|
|
|
|
| |
the self-host failures and Chandler's concerns.
llvm-svn: 132622
|
|
|
|
|
|
| |
suggested by Chandler.
llvm-svn: 132593
|
|
|
|
|
|
|
| |
destructors are implemented but other special members are on the way,
which is where the real benefits of this will be visible.
llvm-svn: 132572
|
|
|
|
|
|
|
|
| |
Yes, I'm aware that the diagnostics are awful.
Tests to follow.
llvm-svn: 131203
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
hasTrivialDefaultConstructor() really really means it now.
Also implement a fun standards bug regarding aggregates. Doug, if you'd
like, I can un-implement that bug if you think it is truly a defect.
The bug is that non-special-member constructors are never considered
user-provided, so the following is an aggregate:
struct foo {
foo(int);
};
It's kind of bad, but the solution isn't obvious - should
struct foo {
foo (int) = delete;
};
be an aggregate or not?
Lastly, add a missing initialization to FunctionDecl.
llvm-svn: 131101
|
|
|
|
|
|
|
|
|
|
|
|
| |
provides proper support for. This was caught by
-Wundefined-reinterpret-cast, and I think a reasonable case for it to
warn on.
Also use is<...> instead of dyn_cast<...> when the result isn't needed.
This whole thing should probably switch to using UsuallyTinyPtrVector.
llvm-svn: 130707
|
|
|
|
| |
llvm-svn: 130054
|
|
|
|
|
|
| |
draft standard (N3291).
llvm-svn: 129541
|
|
|
|
|
|
| |
even if an identifier could resolve to a builtin.
llvm-svn: 129438
|
|
|
|
|
|
| |
Objective-C pointer type. Fixes <rdar://problem/9142559>.
llvm-svn: 129339
|
|
|
|
|
|
| |
ExtProtoInfo.", this time with the missing header.
llvm-svn: 127118
|
|
|
|
|
|
|
|
| |
ExtProtoInfo."
It seems missing "clang/Basic/ExceptionSpecificationType.h".
llvm-svn: 127115
|
|
|
|
| |
llvm-svn: 127112
|
|
|
|
| |
llvm-svn: 127094
|