| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
patch by Zhanyong Wan!
llvm-svn: 84259
|
|
|
|
|
|
| |
about the reason, rdar://7186119.
llvm-svn: 83940
|
|
|
|
|
|
|
|
|
| |
conditions. Add a fixit to insert the parentheses. Also fix a very minor
possible memory leak in 'for' conditions.
Fixes PR 4876 and rdar://problem/7289172
llvm-svn: 83907
|
|
|
|
|
|
|
|
|
|
|
|
| |
of the flow-control checks for falling off the end of a function,
since the return type may instantiate to void. Similarly, if a
return statement has an expression and the return type of the function
is void, don't complain if the expression is type-dependent, since
that type could instantiate to void.
Fixes PR5071.
llvm-svn: 83222
|
|
|
|
|
|
|
|
| |
Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our
use of qualifiers and fix a few places that weren't dealing with qualifiers
quite right; many more remain.
llvm-svn: 82705
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
|
|
|
|
|
|
|
| |
1) Issue digsnostics in non-fragile ABI, when an expression
evaluates to an interface type (except when it is used to
access a non-fragile ivar).
2) Issue unsupported error in fragile ABI when an expression
evaluates to an interface type (except when it is used to
access a fragile ivar).
llvm-svn: 80860
|
|
|
|
|
|
|
|
| |
"ObjCImplctSetterGetterRefExpr".
A field rename and more comments.
llvm-svn: 79537
|
|
|
|
|
|
| |
- Several FIXMEs due to non-Twinification of IRBuilder.
llvm-svn: 79455
|
|
|
|
|
|
|
|
| |
Removed an unnecessary loop to get to setters incoming
argument. Added DoxyGen comments. Still more work
to do in this area (WIP).
llvm-svn: 79365
|
|
|
|
|
|
| |
the return expr inside a CXXExprWithTemporaries if needed.
llvm-svn: 79342
|
|
|
|
|
|
|
|
|
|
|
|
| |
is found. Instead of complaining about a generic "unused expr",
emit:
t.m:7:3: warning: property access result unused - getters should not have side effects
While objc property getters *could* have side effects, according to
the language best practices, they *shouldn't*. Hopefully the
diagnostic now gets this across.
llvm-svn: 79192
|
|
|
|
|
|
| |
a block pointer too.
llvm-svn: 79050
|
|
|
|
| |
llvm-svn: 77763
|
|
|
|
|
|
| |
statements.
llvm-svn: 77631
|
|
|
|
| |
llvm-svn: 77628
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsRecordType() -> Type::getAs<RecordType>()
Type::getAsPointerType() -> Type::getAs<PointerType>()
Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>()
Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>()
Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>()
Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>()
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsTagType() -> Type::getAs<TagType>()
And remove Type::getAsReferenceType(), etc.
This change is similar to one I made a couple weeks ago, but that was partly
reverted pending some additional design discussion. With Doug's pending smart
pointer changes for Types, it seemed natural to take this approach.
llvm-svn: 77510
|
|
|
|
| |
llvm-svn: 77475
|
|
|
|
|
|
|
|
|
| |
until Doug Gregor's Type smart pointer code lands (or more discussion occurs).
These methods just call the new Type::getAs<XXX> methods, so we still have
reduced implementation redundancy. Having explicit getAsXXXType() methods makes
it easier to set breakpoints in the debugger.
llvm-svn: 76193
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This method is intended to eventually replace the individual
Type::getAsXXXType<> methods.
The motivation behind this change is twofold:
1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of
them are basically copy-and-paste.
2) By centralizing the implementation of the getAs<Type> logic we can more
smoothly move over to Doug Gregor's proposed canonical type smart pointer
scheme.
Along with this patch:
a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>.
b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>.
llvm-svn: 76098
|
|
|
|
|
|
| |
Convert all clients to use the new predicate on Type.
llvm-svn: 76076
|
|
|
|
|
|
|
|
|
| |
The implementations of these methods can Use Decl::getASTContext() to get the ASTContext.
This commit touches a lot of files since call sites for these methods are everywhere.
I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it.
llvm-svn: 74501
|
|
|
|
| |
llvm-svn: 74030
|
|
|
|
| |
llvm-svn: 74027
|
|
|
|
|
|
| |
to not lose its 'const/volatile' qualifier.
llvm-svn: 73795
|
|
|
|
| |
llvm-svn: 73702
|
|
|
|
|
|
| |
This fixes a source range problem reported by Olaf Krzikalla.
llvm-svn: 73266
|
|
|
|
|
|
|
|
| |
an error to being a warning that defaults to error. If you want this to
be a warning, you have to explicitly pass -Winvalid-noreturn to clang to
map it back to a warning.
llvm-svn: 72669
|
|
|
|
| |
llvm-svn: 72641
|
|
|
|
| |
llvm-svn: 72210
|
|
|
|
| |
llvm-svn: 71990
|
|
|
|
| |
llvm-svn: 71989
|
|
|
|
| |
llvm-svn: 71982
|
|
|
|
| |
llvm-svn: 71936
|
|
|
|
| |
llvm-svn: 71917
|
|
|
|
| |
llvm-svn: 71916
|
|
|
|
| |
llvm-svn: 71901
|
|
|
|
| |
llvm-svn: 71899
|
|
|
|
| |
llvm-svn: 71896
|
|
|
|
|
|
|
|
| |
- Skip semantic analysis of the "if" condition if it is type-dependent.
- Added the location of the "else" keyword into IfStmt, so that we can
provide it for type-checking after template instantiation.
llvm-svn: 71875
|
|
|
|
| |
llvm-svn: 71825
|
|
|
|
|
|
| |
from the asm string, but reject references to the smaller one.
llvm-svn: 70679
|
|
|
|
| |
llvm-svn: 70678
|
|
|
|
| |
llvm-svn: 70673
|
|
|
|
|
|
|
|
| |
number is not mentioned in the asm string, let it past sema.
Right now these are currently rejected by the llvm code generator
but this will be fixed next.
llvm-svn: 70670
|
|
|
|
|
|
|
| |
promotions. This should be fixed by not modeling asm operands (which
require the ()'s according to the grammar) as not being paren exprs.
llvm-svn: 70668
|
|
|
|
| |
llvm-svn: 70663
|
|
|
|
|
|
| |
no functionality change.
llvm-svn: 70662
|
|
|
|
| |
llvm-svn: 70567
|
|
|
|
| |
llvm-svn: 70566
|