| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
flexible array member, so long as the flexibility array member is
either not initialized or is initialized with an empty initializer
list. Fixes <rdar://problem/8540437>.
llvm-svn: 116647
|
| |
|
|
|
|
|
|
|
| |
find a copy constructor/assignment operator used
in getter/setter synthesis. This removes an unintended
diagnostics and makes objc++ consistant with objective-c.
// rdar: //8550657.
llvm-svn: 116631
|
| |
|
|
| |
llvm-svn: 116624
|
| |
|
|
|
|
|
|
|
| |
we did was an acceptable lookup. If it is, then we can re-use that
lookup result. If it isn't, we have to perform the lookup again. This
is almost surely the cause behind the mysterious typo.m failures on
some builders; we were getting the wrong lookup results returned.
llvm-svn: 116586
|
| |
|
|
|
|
|
| |
typo correction prefers "super" over other, equivalent completions. I
believe this will fix the regression on the buildbot.
llvm-svn: 116574
|
| |
|
|
|
|
| |
as the class itself. Fixes PR7082.
llvm-svn: 116573
|
| |
|
|
| |
llvm-svn: 116570
|
| |
|
|
|
|
| |
ambiguous context.
llvm-svn: 116567
|
| |
|
|
|
|
| |
initialized. Fixes PR7076.
llvm-svn: 116553
|
| |
|
|
|
|
| |
types, from Alp Toker! Fixes PR8344.
llvm-svn: 116549
|
| |
|
|
| |
llvm-svn: 116529
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
identifiers to determine good typo-correction candidates. Once we've
identified those candidates, we perform name lookup on each of them
and the consider the results.
This optimization makes typo correction > 2x faster on a benchmark
example using a single typo (NSstring) in a tiny file that includes
Cocoa.h from a precompiled header, since we are deserializing far less
information now during typo correction.
There is a semantic change here, which is interesting. The presence of
a similarly-named entity that is not visible can now affect typo
correction. This is both good (you won't get weird corrections if the
thing you wanted isn't in scope) and bad (you won't get good
corrections if there is a similarly-named-but-completely-unrelated
thing). Time will tell whether it was a good choice or not.
llvm-svn: 116528
|
| |
|
|
| |
llvm-svn: 116527
|
| |
|
|
| |
llvm-svn: 116519
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
solely based on the names it sees, rather than actual declarations it
gets. In essence, we determine the set of names that are "close
enough" to the typo'd name. Then, we perform name lookup for each of
those names, filtering out those that aren't actually visible, and
typo-correct from the remaining results.
Overall, there isn't much of a change in the behavior of typo
correction here. The only test-suite change comes from the fact that
we make good on our promise to require that the user type 3 characters
for each 1 character corrected.
The real intent behind this change is to set the stage for an
optimization to typo correction (so that we don't need to deserialize
all declarations in a translation unit) and future work in finding
missing qualification ("'vector' isn't in scope; did you mean
'std::vector'?). Plus, the code is cleaner this way.
llvm-svn: 116511
|
| |
|
|
|
|
|
|
| |
should contain actual redeclarations, not implicits.
As a bonus, now we don't deserialize it unless we need it.
llvm-svn: 116504
|
| |
|
|
|
|
|
| |
'super' as receiver of property or a setter/getter
methods. //rdar: //8525788
llvm-svn: 116483
|
| |
|
|
| |
llvm-svn: 116470
|
| |
|
|
|
|
| |
not a decl.
llvm-svn: 116469
|
| |
|
|
|
|
| |
in a base class. Fixes PR8168.
llvm-svn: 116448
|
| |
|
|
|
|
|
|
| |
members. Provide a hard error when the qualification doesn't match the
current class type, or a warning + Fix-it if it does match the current
class type. Fixes PR8159.
llvm-svn: 116445
|
| |
|
|
| |
llvm-svn: 116436
|
| |
|
|
|
|
|
|
|
| |
that the class type into which the pointer points be complete, even
though the standard requires it. GCC/EDG do not require a complete
type here, so we're calling this a problem with the standard. Fixes
PR8328.
llvm-svn: 116429
|
| |
|
|
|
|
|
|
|
|
|
| |
unnamed or local types within that type. This bit is cached along with
the linkage of a type, so that it can be recomputed (e.g., when we see
that a typedef has given a name to an anonymous declaration).
Use this bit when checking C++03 [temp.arg.type]p2, so that we don't
walk template argument types repeatedly.
llvm-svn: 116413
|
| |
|
|
|
|
|
| |
SFINAE context, where we weren't getting the right diagnostic argument
count. I blame DiagnosticBuilder's weirdness. Fixes PR8372.
llvm-svn: 116411
|
| |
|
|
| |
llvm-svn: 116408
|
| |
|
|
|
|
| |
declaration, because we'll need it later. Hopefully fixed self-host.
llvm-svn: 116399
|
| |
|
|
|
|
|
|
| |
Fixes a crash and diagnoses the error condition of an unqualified
friend which doesn't resolve to something. I'm still not certain how
this is useful.
llvm-svn: 116393
|
| |
|
|
|
|
|
| |
actually walk the template argument type to find any unnamed/local
types within it. Fixes PR6784.
llvm-svn: 116382
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that are suppressed during template argument deduction. This change
queues diagnostics computed during template argument deduction. Then,
if the resulting function template specialization or partial
specialization is chosen by overload resolution or partial ordering
(respectively), we will emit the queued diagnostics at that point.
This addresses most of PR6784. However, the check for unnamed/local
template arguments (which existed before this change) is still only
skin-deep, and needs to be extended to look deeper into types. It must
be improved to finish PR6784.
llvm-svn: 116373
|
| |
|
|
|
|
| |
This is tested by anon-union.exp in gdb testsuite.
llvm-svn: 116371
|
| |
|
|
|
|
|
|
| |
of templated-scope friends by marking them invalid and white-listing all
accesses until such time as we implement them. Fixes a crash, this time
without a broken test case.
llvm-svn: 116364
|
| |
|
|
| |
llvm-svn: 116336
|
| |
|
|
|
|
|
| |
deduction and the final substitution, but not while substituting the
explicit template arguments. Fixes rdar://problem/8537391
llvm-svn: 116332
|
| |
|
|
|
|
|
|
|
|
| |
argument deduction, make sure to check the correctness of deduced template
type arguments (which we had previously skipped) along with other
kinds of template arguments. This fixes part of PR6784, but we're
still swallowing the extension warning about unnamed/local template
arguments.
llvm-svn: 116327
|
| |
|
|
|
|
|
|
|
| |
has not yet been parsed, note that the default argument hasn't been
parsed and keep track of all of the instantiations of that function
parameter. When its default argument does get parsed, imbue the
instantiations with that default argument. Fixes PR8245.
llvm-svn: 116324
|
| |
|
|
| |
llvm-svn: 116317
|
| |
|
|
| |
llvm-svn: 116300
|
| |
|
|
|
|
| |
require them to have complete types.
llvm-svn: 116297
|
| |
|
|
| |
llvm-svn: 116289
|
| |
|
|
| |
llvm-svn: 116287
|
| |
|
|
|
|
|
| |
i.e. expressions with an internally-convenient type which should not be
appearing in generally valid, complete ASTs.
llvm-svn: 116281
|
| |
|
|
|
|
| |
libclang does not support out-of-process code completion.
llvm-svn: 116253
|
| |
|
|
|
|
|
|
|
|
| |
clang_codeCompleteAt(). This uncovered a few issues with the latter:
- ASTUnit wasn't saving/restoring diagnostic state appropriately between
reparses and code completions.
- "Overload" completions weren't being passed through to the client
llvm-svn: 116241
|
| |
|
|
|
|
|
|
|
|
|
| |
properties.
1. Generates the AST for lexical info. of accessing
getter/setter methods using dot-syntax notation.
This fixes //rdar: //8528170.
2. Modifes rewriter to handle the AST putout in 1.
3. Supportes in rewriter ObjCImplicitSetterGetter ASTs.
llvm-svn: 116237
|
| |
|
|
| |
llvm-svn: 116166
|
| |
|
|
|
|
| |
by Pierre Habouzit!
llvm-svn: 116165
|
| |
|
|
|
|
|
|
| |
messages.
Store pointer and length of the message in DelayedDiagnostic and hide the gory union details.
llvm-svn: 116153
|
| |
|
|
| |
llvm-svn: 116144
|
| |
|
|
|
|
| |
bit by me).
llvm-svn: 116122
|