| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
unavailable;
only give an 'unavailable' error on the @implementation of the category. rdar://10234078
llvm-svn: 141335
|
|
|
|
|
|
|
|
| |
interface/implementation
don't emit unavailable errors.
llvm-svn: 141334
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
C-style and functional casts are built in SemaCXXCast.cpp.
Introduce a helper class to encapsulate most of the random
state being passed around, at least one level down.
llvm-svn: 141170
|
|
|
|
|
|
|
|
| |
return to one which does not return (has noreturn attribute)
should warn as it is an unsafe assignment. // rdar://10095762
c++ already handles this. This is the c version.
llvm-svn: 141141
|
|
|
|
|
|
| |
not bind to a temporary. Fixes //rdar://10188258
llvm-svn: 141009
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of always storing all source locations for the selector identifiers
we check whether all the identifiers are in a "standard" position; "standard" position is
-Immediately before the arguments: -(id)first:(int)x second:(int)y;
-With a space between the arguments: -(id)first: (int)x second: (int)y;
-For nullary selectors, immediately before ';': -(void)release;
In such cases we infer the locations instead of storing them.
llvm-svn: 140989
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of always storing all source locations for the selector identifiers
we check whether all the identifiers are in a "standard" position; "standard" position is
-Immediately before the arguments: [foo first:1 second:2]
-With a space between the arguments: [foo first: 1 second: 2]
-For nullary selectors, immediately before ']': [foo release]
In such cases we infer the locations instead of storing them.
llvm-svn: 140987
|
|
|
|
| |
llvm-svn: 140978
|
|
|
|
| |
llvm-svn: 140977
|
|
|
|
| |
llvm-svn: 140976
|
|
|
|
| |
llvm-svn: 140975
|
|
|
|
|
|
| |
on declarators written as types.
llvm-svn: 140931
|
|
|
|
|
|
|
| |
attributes from the enumeration type.
// rdar://10201690
llvm-svn: 140818
|
|
|
|
|
|
|
| |
attributes from the enumeration type.
// rdar://10201690
llvm-svn: 140800
|
|
|
|
|
|
| |
(Ideally, we want to use the location returned by getLocForEndOfToken, but that is not always successful.)
llvm-svn: 140658
|
|
|
|
| |
llvm-svn: 140642
|
|
|
|
|
|
|
|
|
| |
system change in <rdar://problem/10109725> that allows conversion from
'self' in class methods to the root of the class's hierarchy. This
conversion rule is a hack that has non-trivial repurcussions
(particularly with overload resolution).
llvm-svn: 140605
|
|
|
|
| |
llvm-svn: 140584
|
|
|
|
| |
llvm-svn: 140478
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
function and we can't resolve an identifier then assume the identifier is type dependent. The goal is to postpone name lookup to instantiation time to be able to search into type dependent base classes.
This fixes a few errors when parsing MFC code with clang.
BTW clang trunk is now about 5 patches away to be able the parse the default wizard-generated MFC project.
llvm-svn: 140452
|
|
|
|
|
|
|
|
| |
followed by it implementation crashes when attempt
is made to access the synthesized ivar.
// rdar://10177744
llvm-svn: 140432
|
|
|
|
| |
llvm-svn: 140407
|
|
|
|
| |
llvm-svn: 140367
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OpenCL 6.2.1 says: "Implicit conversions between built-in vector data types are
disallowed." OpenCL 6.2.2 says: "Explicit casts between vector types are not
legal." For example:
uint4 u = (uint4)(1);
int4 i = u; // invalid implicit conversion
int4 e = (int4)u; // invalid explicit conversion
Fixes PR10967. Submitted by: Anton Lokhmotov <Anton.lokhmotov@gmail.com>
llvm-svn: 140300
|
|
|
|
|
|
|
|
|
|
| |
OpenCL is different from AltiVec in the way it supports vector literals. OpenCL
is strict with regards to semantic checks. For example, implicit conversions
and explicit casts between vectors of different types are disallowed.
Fixes PR10975. Submitted by: Anton Lokhmotov <Anton.lokhmotov@gmail.com>
llvm-svn: 140270
|
|
|
|
| |
llvm-svn: 140268
|
|
|
|
|
|
|
|
|
|
|
|
| |
assert(!"error message");
To:
assert(0 && "error message");
which is more consistant across the code base.
llvm-svn: 140232
|
|
|
|
|
|
| |
It already works (and is useful with) macro locs as well.
llvm-svn: 140057
|
|
|
|
| |
llvm-svn: 140031
|
|
|
|
|
|
| |
class of this method. // rdar://10109725
llvm-svn: 139989
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
individual Check*Operands() functions.
llvm-svn: 139895
|
|
|
|
| |
llvm-svn: 139879
|
|
|
|
|
|
| |
LHSType and RHSType for everything.
llvm-svn: 139878
|
|
|
|
|
|
| |
instead of 'Class'.
llvm-svn: 139834
|
|
|
|
|
|
| |
in class methods with no warning. //rdar://10109725
llvm-svn: 139818
|
|
|
|
| |
llvm-svn: 139520
|
|
|
|
| |
llvm-svn: 139510
|
|
|
|
|
|
|
| |
Fixes PR10898. The warning should be silent when there are parenthesis
around the condition expression.
llvm-svn: 139492
|
|
|
|
| |
llvm-svn: 139466
|
|
|
|
|
|
|
|
|
|
|
| |
the lifetime of the block by copying it to the heap, or else we'll get
a dangling reference because the code working with the non-block-typed
object will not know it needs to copy.
There is some danger here, e.g. with assigning a block literal to an
unsafe variable, but, well, it's an unsafe variable.
llvm-svn: 139451
|
|
|
|
|
|
|
|
|
|
|
|
| |
what 'nullPos' is supposed to mean, at least at this one site.
Use closed forms for the arithmetic. Rip out some clever but
ultimately pointless code that was trying to use 0 or 0L depending
the size of a pointer vs. the size of int; first, it didn't work
on LLP64 systems, and second, the sentinel checking code requires
a pointer-typed value anyway, so this fixit would not have actually
removed the warning.
llvm-svn: 139361
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
around variable names so that this visitor be more like other visitors in clang.
llvm-svn: 139351
|
|
|
|
|
|
| |
conflicts between declarations and definitions from this and previous refactorings.
llvm-svn: 139346
|
|
|
|
|
|
| |
message to display. Also, move the function call into on location instead of having it spread among many places in the if/else statements.
llvm-svn: 139260
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
DiagnoseLogicalAndInLogicalOrLHS()
DiagnoseBinOpPrecedence()
ActOnBinOp()
BuildBinOp()
llvm-svn: 139219
|
|
|
|
|
|
|
|
|
|
|
|
| |
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
CreateBuiltinBinOp()
DiagnoseBitwisePrecedence()
llvm-svn: 139218
|