| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
aggregate class type and initializer list arguments.
llvm-svn: 143462
|
| |
|
|
|
|
| |
GCC compiler workaround.
llvm-svn: 142931
|
| |
|
|
|
|
| |
r142914: "Introduce a placeholder type for "pseudo object""
r142915: "Pull the pseudo-object stuff into its own file."
llvm-svn: 142921
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expressions: expressions which refer to a logical rather
than a physical l-value, where the logical object is
actually accessed via custom getter/setter code.
A subsequent patch will generalize the AST for these
so that arbitrary "implementing" sub-expressions can
be provided.
Right now the only client is ObjC properties, but
this should be generalizable to similar language
features, e.g. Managed C++'s __property methods.
llvm-svn: 142914
|
| |
|
|
|
|
|
| |
passing/receiving CF objects at +0 to/from Objective-C methods
or audited C functions.
llvm-svn: 142219
|
| |
|
|
| |
llvm-svn: 142148
|
| |
|
|
|
|
| |
instead use TryImplicitConversion in CheckSingleAssignmentConstraints when that function is in no-diagnostics mode.
llvm-svn: 142143
|
| |
|
|
|
|
| |
Lack of half FP was a regression compared to llvm-gcc.
llvm-svn: 142016
|
| |
|
|
| |
llvm-svn: 142014
|
| |
|
|
| |
llvm-svn: 142008
|
| |
|
|
|
|
|
|
| |
of a pointer.
Passing a pointer was a bad idea as it collides with the overload for void*.
llvm-svn: 141971
|
| |
|
|
|
|
|
|
|
|
|
| |
and DefaultFunctionArrayLvalueConversion. To prevent
significant regression for should-this-be-a-call fixits,
and to repair some such regression from the introduction of
bound member placeholders, make those placeholder checks
try to build calls appropriately. Harden the build-a-call
logic while we're at it.
llvm-svn: 141738
|
| |
|
|
|
|
| |
!. Fixes PR9865.
llvm-svn: 141537
|
| |
|
|
| |
llvm-svn: 141171
|
| |
|
|
|
|
|
|
|
| |
conversion function whose result type is an lvalue reference. The
initialization code already handled this properly, but overload
resolution was allowing the binding. Fixes PR11003 /
<rdar://problem/10233078>.
llvm-svn: 141137
|
| |
|
|
| |
llvm-svn: 140978
|
| |
|
|
|
|
|
|
| |
some arguments types are ns_consumed and some otherwise
matching types are not. This is objc side of
// rdar://10187884
llvm-svn: 140729
|
| |
|
|
|
|
|
|
| |
some arguments types are ns_consumed and some otherwise
matching types are not. This fixes the objc++ side only *auch*.
// rdar://10187884
llvm-svn: 140717
|
| |
|
|
|
|
| |
macro whose only replacement token is '_Bool'.
llvm-svn: 140656
|
| |
|
|
|
|
|
| |
'bool' rather than '_Bool' within types, to make things a bit more
readable. Fixes <rdar://problem/10063263>.
llvm-svn: 140650
|
| |
|
|
| |
llvm-svn: 140478
|
| |
|
|
|
|
|
|
|
| |
cannot be converted.
This is in preparation for overload resolution of initializer lists.
Currently, you will always get this message when you try to pass an init
list to an overloaded function.
llvm-svn: 140461
|
| |
|
|
|
|
|
|
|
|
|
| |
diagnostics nor
builds a semantic (structured) initializer list, just reports on whether it can match
the given list to the target type.
Use this mode for doing init list checking in the initial step of initialization, which
will eventually allow us to do overload resolution based on the outcome.
llvm-svn: 140457
|
| |
|
|
| |
llvm-svn: 140407
|
| |
|
|
| |
llvm-svn: 140367
|
| |
|
|
|
|
| |
conversions (rather than just call-arguments).
llvm-svn: 140244
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
floating-to-integral conversion if the integral conversion is between types of the same size.
For example:
void f(float);
void f(int);
int main {
long a;
f(a);
}
Here, MSVC will call f(int) instead of generating a compile error as clang will do in standard mode.
This fixes a few errors when parsing MFC code with clang.
llvm-svn: 140007
|
| |
|
|
|
|
|
|
| |
that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag.
Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag.
llvm-svn: 139987
|
| |
|
|
|
|
| |
assert.
llvm-svn: 139474
|
| |
|
|
|
|
| |
enumeration type.
llvm-svn: 139445
|
| |
|
|
| |
llvm-svn: 139417
|
| |
|
|
|
|
|
|
|
|
|
|
| |
converting to an arbitrary Objective-C pointer type is. Without
significantly re-implementing anything, change the API to reflect this,
and as a minor optimization, strip the pointer conversion off before
potentially building it.
Mostly, this removes a really bizarre-looking bit of code from
BuildInstanceMessage.
llvm-svn: 139354
|
| |
|
|
|
|
|
|
| |
than conversions of C pointers to ObjC pointers. In order to ensure that
we've caught every case, add asserts to CastExpr that strictly determine
which cast kind is used for which kind of bit cast.
llvm-svn: 139352
|
| |
|
|
|
|
|
|
| |
can't resolve a function call then create a type-dependent CallExpr even if the function has no type dependent arguments. The goal is to postpone name lookup to instantiation time to be able to search into type dependent base classes.
With this patch in, clang will generate only 37 errors (down from 212) when parsing a typical MFC source file.
llvm-svn: 139210
|
| |
|
|
|
|
|
| |
Doing this happens to disrupt the pattern that ARC was looking for
for move optimizations, so we need to fix that simultaneously.
llvm-svn: 138789
|
| |
|
|
|
|
| |
deleted operators. Fixes PR10757.
llvm-svn: 138645
|
| |
|
|
|
|
|
| |
conversion to initialize the standard conversion *after* the
user-defined conversion properly. Fixes PR10644.
llvm-svn: 137608
|
| |
|
|
|
|
| |
functions when performing function overload resolution.
llvm-svn: 136948
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
simple conversion checking function.
llvm-svn: 136376
|
| |
|
|
|
|
|
|
|
|
| |
considering explicit conversion operators when determining surrogate
functions. Fixes PR10453. Note that there are a few test cases where
Clang is still wrong because it does not implement DR899; see PR10456.
Patch by Jonathan Sauer!
llvm-svn: 135857
|
| |
|
|
|
|
|
|
| |
LLVM.h imports
them into the clang namespace.
llvm-svn: 135852
|
| |
|
|
|
|
|
|
| |
IsIntegralPromotion should consider the signedness of FromType when
calculating promotions. This, as of now, cannot be exercised on any
platform so there is no corresponding test.
llvm-svn: 135803
|
| |
|
|
|
|
| |
C++ function call is missing * or & operators on
llvm-svn: 135643
|
| |
|
|
|
|
|
| |
fails because of lifetime differences of parameter and argument type.
// rdar://9790531
llvm-svn: 135593
|
| |
|
|
|
|
| |
one/several of it's parameters (addresses http://llvm.org/PR5941).
llvm-svn: 135509
|
| |
|
|
| |
llvm-svn: 135275
|
| |
|
|
|
|
| |
require A to be a complete type.
llvm-svn: 135101
|
| |
|
|
|
|
|
|
|
|
|
| |
of a single if block. This is really annoying to track down and test.
Silly changes to the test case caused it to stop showing up. I wish
there were a more concrete way of asserting that a note attaches to the
intended diagnostic.
This fixes PR10195.
llvm-svn: 133907
|
| |
|
|
|
|
| |
assert that any names we find are valid candidates for the call.
llvm-svn: 133898
|