| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
bound to not have side effects(!). Add constant-folding support for expressions
of void type, to ensure that we can still fold ((void)0, 1) as an array bound.
llvm-svn: 146000
|
| |
|
|
|
|
|
| |
methods with these attributes are sent to receivers
of 'id' type too. // rdar://10459930
llvm-svn: 145999
|
| |
|
|
|
|
|
| |
A mistyped function call becomes an inmplicit function declaration in C.
Suggest typo correction when one can be found.
llvm-svn: 145930
|
| |
|
|
|
|
| |
Fixes PR2709.
llvm-svn: 145928
|
| |
|
|
|
|
|
|
|
|
| |
in the following code:
void test4(bool (&x)(void)) {
while (x);
}
llvm-svn: 145918
|
| |
|
|
|
|
| |
PR11484.
llvm-svn: 145874
|
| |
|
|
|
|
| |
attributes don't match its declaration. // rdar://10529259.
llvm-svn: 145872
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
methods) to bool. E.g.
void foo() {}
if (f) { ... // <- Warns here.
}
Only applies to non-weak functions, and does not apply if the function address
is taken explicitly with the addr-of operator.
llvm-svn: 145849
|
| |
|
|
| |
llvm-svn: 145785
|
| |
|
|
|
|
| |
Function or array lvalue conversions happens.
llvm-svn: 145782
|
| |
|
|
|
|
|
| |
a class is marked 'final', from Alberto Ganesh Barbati! Fixes
PR11462.
llvm-svn: 145775
|
| |
|
|
|
|
|
| |
inferred from return types. All the return statements have to agree about the type.
// rdar://10466373
llvm-svn: 145774
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
initializer lists.
llvm-svn: 145769
|
| |
|
|
|
|
|
| |
implicit ImportDecl in the translation unit to record the presence of
the import.
llvm-svn: 145727
|
| |
|
|
|
|
|
|
| |
__import_module__ std.vector;
in the AST.
llvm-svn: 145725
|
| |
|
|
|
|
| |
lib/Analysis to lib/Sema which is cyclical.
llvm-svn: 145724
|
| |
|
|
| |
llvm-svn: 145700
|
| |
|
|
|
|
|
|
| |
For example, the warning for printf("%zu", 42.0);
changes from "conversion specifies type 'unsigned long'" to "conversion
specifies type 'size_t' (aka 'unsigned long')"
llvm-svn: 145697
|
| |
|
|
|
|
|
|
| |
within module maps, which will (eventually) be used to re-export a
module from another module. There are still some pieces missing,
however.
llvm-svn: 145665
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
(sub)module, all of the names may be hidden, just the macro names may
be exposed (for example, after the preprocessor has seen the import of
the module but the parser has not), or all of the names may be
exposed. Importing a module makes its names, and the names in any of
its non-explicit submodules, visible to name lookup (transitively).
This commit only introduces the notion of name visible and marks
modules and submodules as visible when they are imported. The actual
name-hiding logic in the AST reader will follow (along with test cases).
llvm-svn: 145586
|
| |
|
|
|
|
| |
typo-correct to ourselves.
llvm-svn: 145583
|
| |
|
|
|
|
|
| |
force the unknown any type to "id" so that the message send can be
completed without requiring a case. Fixes <rdar://problem/10506646>.
llvm-svn: 145552
|
| |
|
|
|
|
|
|
| |
retain-cycle checking in -Warc-retain-cycles. This commonly
is hit by users using NSOperationQueue. Fixes <rdar://problem/10465721>.
llvm-svn: 145548
|
| |
|
|
|
|
|
|
|
| |
explicit template specializations (which represent actual functions somebody wrote).
Along the way, refactor some other code which similarly cares about whether or
not they are looking at a template instantiation.
llvm-svn: 145547
|
| |
|
|
|
|
|
|
|
| |
library, since modules cut across all of the libraries. Rename
serialization::Module to serialization::ModuleFile to side-step the
annoying naming conflict. Prune a bunch of ModuleMap.h includes that
are no longer needed (most files only needed the Module type).
llvm-svn: 145538
|
| |
|
|
|
|
| |
instantiations may produce different unreachable code results, and it is very difficult for us to prove that ALL instantiations of a template have specific unreachable code. If we come up with a better solution, then we can revisit this, but this approach will at least greatly reduce the noise of this warning for code that makes use of templates.
llvm-svn: 145520
|
| |
|
|
|
|
|
|
|
| |
really bad way to go about this, but I'm not sure there's a better
choice without substantial changes to TreeTransform --- most
notably, preserving implicit semantic nodes instead of discarding
and rebuilding them.
llvm-svn: 145480
|
| |
|
|
|
|
|
| |
top-level module name to a module path (e.g., std.vector). We're still
missing a number of pieces for this actually to do something.
llvm-svn: 145462
|
| |
|
|
|
|
|
|
|
|
| |
for some cast expressions.
Original commit message:
Removed useless ImplicitCast nodes in explicit cstyle and static casts
llvm-svn: 145447
|
| |
|
|
|
|
| |
a 1-length character array.
llvm-svn: 145445
|
| |
|
|
|
|
| |
following cast will never fail.
llvm-svn: 145441
|
| |
|
|
| |
llvm-svn: 145421
|
| |
|
|
|
|
| |
// rdar://10453342
llvm-svn: 145358
|
| |
|
|
|
|
|
|
| |
when computing the exception specification of a copy or move constructor,
ignore non-static data member initializers. Fixes PR11418 /
<rdar://problem/10478642>.
llvm-svn: 145269
|
| |
|
|
| |
llvm-svn: 145266
|
| |
|
|
|
|
|
| |
whose enum has been made deprecated/unavailable in the warning.
// rdar://10201690
llvm-svn: 145264
|
| |
|
|
|
|
|
| |
primary and its continuation class into error.
// rdar://10142679
llvm-svn: 145255
|
| |
|
|
|
|
|
|
|
| |
consider the _<width> variants as well, which we'll see if we're
performing the type checking in a template instantiation where the
call expression itself was originally not type-dependent. Fixes
PR11411.
llvm-svn: 145248
|
| |
|
|
| |
llvm-svn: 145244
|
| |
|
|
|
|
| |
array of objects with non-trivial destructors. PR11365.
llvm-svn: 145203
|
| |
|
|
|
|
| |
This supports single-element initializer lists for references according to DR1288, as well as creating temporaries and binding to them for other initializer lists.
llvm-svn: 145186
|
| |
|
|
| |
llvm-svn: 145147
|
| |
|
|
|
|
| |
class template member.
llvm-svn: 145146
|
| |
|
|
|
|
|
|
|
|
| |
templates" works inside a friend function definition at class scope.
Basically we have to look into the parent *lexical* DeclContext for friend functions at class scope. That's because calling GetParent() return the namespace or file DeclContext.
This fixes all remaining cases of "Unqualified lookup into dependent bases of class templates" when parsing MFC code with clang.
llvm-svn: 145127
|
| |
|
|
|
|
|
|
|
|
| |
pointer mismatch. Cases covered are: initialization, assignment, and function
arguments. Additional text will give the extra information about the nature
of the mismatch: different classes for member functions, wrong number of
parameters, different parameter type, different return type, and function
qualifier mismatch.
llvm-svn: 145114
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
file region
inside an objc container that "contains" other file-level declarations.
When getting the array of file-level declarations that overlap with a file region,
we failed to report that the region overlaps with an objc container, if
the container had other file-level declarations declared lexically inside it.
Fix this by marking such declarations as "isTopLevelDeclInObjCContainer" in the AST
and handling them appropriately.
llvm-svn: 145109
|
| |
|
|
| |
llvm-svn: 145107
|
| |
|
|
| |
llvm-svn: 144995
|
| |
|
|
| |
llvm-svn: 144977
|