| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
corresponding @interface, provide a note showing which interface we're
referring to. This note has the fix-it hint on it.
Also, don't automatically apply fix-it hints for notes. They're meant
to express fix-its that would change semantics.
llvm-svn: 92870
|
| |
|
|
|
|
| |
ASTContext. Fixes <rdar://problem/7495428>.
llvm-svn: 92867
|
| |
|
|
| |
llvm-svn: 92866
|
| |
|
|
| |
llvm-svn: 92862
|
| |
|
|
|
|
|
| |
continuation classes and its original declaration
is imported from a protocol. This fixes radar 7509234.
llvm-svn: 92856
|
| |
|
|
|
|
| |
virtual function has a body inlined in the class
llvm-svn: 92855
|
| |
|
|
|
|
|
|
| |
result for a nested class whose first non-pure virtual member function
has an inline body. Previously, we were checking for the key function
before we had seen the (delayed) inline body.
llvm-svn: 92839
|
| |
|
|
|
|
|
|
|
| |
as parts of overload sets. Also, refer to constructors as 'constructors'
rather than functions.
Adjust a lot of tests.
llvm-svn: 92832
|
| |
|
|
|
|
|
|
|
|
|
|
| |
for -Wsign-compare and -Wconversion, and use that coordinated logic to drive
both diagnostics. The new logic works more transparently with implicit
conversions, conditional operators, etc., as well as bringing -Wconversion's
ability to deal with pseudo-closed operations (e.g. arithmetic on shorts) to
-Wsign-compare.
Fixes PRs 5887, 5937, 5938, and 5939.
llvm-svn: 92823
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deterministic and work properly with templates. Once a class that
needs a vtable has been defined, we now do one if two things:
- If the class has no key function, we place the class on a list of
classes whose virtual functions will need to be "marked" at the
end of the translation unit. The delay until the end of the
translation unit is needed because we might see template
specializations of these virtual functions.
- If the class has a key function, we do nothing; when the key
function is defined, the class will be placed on the
aforementioned list.
At the end of the translation unit, we "mark" all of the virtual
functions of the classes on the list as used, possibly causing
template instantiation and other classes to be added to the
list. This gets LLVM's lib/Support/CommandLine.cpp compiling again.
llvm-svn: 92821
|
| |
|
|
|
|
| |
encountered a fatal error. On some files that are woefully wrong (missing headers) this can cause a 3x slowdown in some cases when parsing the file. It makes sense not to perform typo correction in this case because after a fatal error diagnostics will either be suppressed or not really make any sense.
llvm-svn: 92809
|
| |
|
|
|
|
| |
for a 'readonly' property. Fixes radar 7427072.
llvm-svn: 92808
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- All classes can have a key function; templates don't change that.
non-template classes when computing the key function.
- We always mark all of the virtual member functions of class
template instantiations.
- The vtable for an instantiation of a class template has weak
linkage.
We could probably use available_externally linkage for vtables of
classes instantiated by explicit instantiation declarations (extern
templates), but GCC doesn't do this and I'm not 100% that the ABI
permits it.
llvm-svn: 92753
|
| |
|
|
| |
llvm-svn: 92677
|
| |
|
|
| |
llvm-svn: 92676
|
| |
|
|
|
|
| |
with the format attribute.
llvm-svn: 92553
|
| |
|
|
|
|
|
| |
overlap between this and -Wsign-compare, which is why I want them in the same
place.
llvm-svn: 92543
|
| |
|
|
| |
llvm-svn: 92541
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
assembly code. This avoids changing the bahvior when normal asm("")
statements are used.
The type of code affected would be:
void* t4(void) { __asm mov eax, fs:[0x10] }
I hope people like this version, if not, let me know.
llvm-svn: 92531
|
| |
|
|
| |
llvm-svn: 92526
|
| |
|
|
|
|
|
| |
whose operands are non-negative integer constant expressions. This comes up
in LLVM in a few places.
llvm-svn: 92525
|
| |
|
|
|
|
| |
types. Fixes APFloat.cpp compilation failure.
llvm-svn: 92523
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
interface, suggest correction of typos. For example, given:
@interface NSString
@end
@implementation NSstring
@end
we'll warn with:
t.m:4:19: warning: cannot find interface declaration for 'NSstring';
did you mean 'NSString'?
@implementation NSstring
^
However, since this is just a warning, we don't provide a fix-it
hint. Good idea, Ted!
llvm-svn: 92488
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
constructs:
- Instance variable lookup ("foo->ivar" and, in instance methods, "ivar")
- Property name lookup ("foo.prop")
- Superclasses
- Various places where a class name is required
- Protocol names (e.g., id<proto>)
This seems to cover many of the common places where typos could occur.
llvm-svn: 92449
|
| |
|
|
|
|
| |
coverage.
llvm-svn: 92433
|
| |
|
|
| |
llvm-svn: 92429
|
| |
|
|
| |
llvm-svn: 92428
|
| |
|
|
| |
llvm-svn: 92424
|
| |
|
|
|
|
| |
parents of out-of-line function contexts
llvm-svn: 92397
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
class), provide a suggestion for the type or class found. However,
since we can't recover properly in this case, don't provide a fix-it
hint. Example:
test/FixIt/typo.m:8:3: error: use of undeclared identifier 'NSstring';
did you
mean 'NSString'?
NSstring *str = @"A string";
...
^
1 diagnostic generated.
llvm-svn: 92379
|
| |
|
|
|
|
|
|
|
|
| |
test/FixIt/typo.c:19:4: error: field designator 'bunds' does not refer to any
field in type 'struct Window'; did you mean 'bounds'?
.bunds.
^~~~~
bounds
llvm-svn: 92376
|
| |
|
|
| |
llvm-svn: 92367
|
| |
|
|
|
|
| |
covariant. Fixes PR5920.
llvm-svn: 92365
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
test/FixIt/typo.cpp:41:15: error: initializer 'base' does not name a non-static
data member or base class; did you mean the base class 'Base'?
Derived() : base(),
^~~~
Base
test/FixIt/typo.cpp:42:15: error: initializer 'ember' does not name a non-static
data member or base class; did you mean the member 'member'?
ember() { }
^~~~~
member
llvm-svn: 92355
|
| |
|
|
|
|
|
|
|
|
| |
typo.cpp:18:1: error: use of undeclared identifier 'other_std'; did
you mean 'otherstd'?
other_std::strng str1;
^~~~~~~~~
otherstd
llvm-svn: 92350
|
| |
|
|
|
|
|
|
|
|
| |
typo.cpp:27:8: error: no template named 'basic_sting' in namespace 'std';
did you mean 'basic_string'?
std::basic_sting<char> b2;
~~~~~^~~~~~~~~~~
basic_string
llvm-svn: 92348
|
| |
|
|
|
|
| |
s.fnd("hello")
llvm-svn: 92345
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
typo.cpp:22:10: error: use of undeclared identifier 'radious'; did
you mean 'radius'?
return radious * pi;
^~~~~~~
radius
This was super-easy, since we already had decent recovery by looking
for names in dependent base classes.
llvm-svn: 92341
|
| |
|
|
|
|
|
| |
not emitting a follow-on error about 'int', which the user
never wrote. PR5924.
llvm-svn: 92339
|
| |
|
|
|
|
|
|
| |
attach the appropriate attributes to it. I don't think
this manifests as any real change though, we're still
not getting the right LLVM IR attributes out of codegen.
llvm-svn: 92316
|
| |
|
|
|
|
| |
C++2.13.2p2: "A wide-character literal has type wchar_t"
llvm-svn: 92313
|
| |
|
|
| |
llvm-svn: 92310
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tring str2;
we produce the following diagnostic + fix-it:
typo.cpp:15:1: error: unknown type name 'tring'; did you mean 'string'?
tring str2;
^~~~~
string
To make this really useful, we'll need to introduce typo correction in
many more places (wherever we do name lookup), and implement
declaration-vs-expression heuristics that cope with typos
better. However, for now this will handle the simple cases where we
already get good "unknown type name" diagnostics.
The LookupVisibleDecls functions are intended to be used by code
completion as well as typo correction; that refactoring will happen
later.
llvm-svn: 92308
|
| |
|
|
| |
llvm-svn: 92307
|
| |
|
|
|
|
|
|
|
|
|
|
| |
QualType to get CVR-qualifiers through array types, and switches the primary
comparison methods to use it. This may allow simplifying some of the callers of
getUnqualifiedArrayType.
Also fix the normalizing of CV-qualification during template deduction to
normalize through arrays and allow a more qualified deduced array type. This
fixes PR5911.
llvm-svn: 92289
|
| |
|
|
|
|
| |
the AST lest we run into some crazy canonicalization bug like PR5874.
llvm-svn: 92283
|
| |
|
|
|
|
|
|
| |
CV-qualifiers. Remove an error expectation from the 'good' set of const-cast
test cases. With this patch, the final non-template test case from PR5542
passes. (It's the same as the one already in const-cast.cpp.)
llvm-svn: 92257
|
| |
|
|
|
|
|
|
|
|
| |
more or less cv-qualified than another during implicit conversion and overload
resolution ([basic.type.qualifier] p5). Factors the logic out of template
deduction and into the ASTContext so it can be shared.
This fixes several aspects of PR5542, but not all of them.
llvm-svn: 92248
|
| |
|
|
| |
llvm-svn: 92246
|
| |
|
|
|
|
|
|
|
|
| |
address resolution. This fixes PR5751.
Also, while we're here, remove logic from ADL which mistakenly included the
definition namespaces of overloaded and/or templated functions whose name or
address is used as an argument.
llvm-svn: 92245
|