| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
"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
|
| |
|
|
|
|
|
|
| |
type and argument types are missing, and let return type deduction
happen before we give errors for returning from a noreturn block.
Radar 6441502
llvm-svn: 70413
|
| |
|
|
| |
llvm-svn: 70403
|
| |
|
|
| |
llvm-svn: 70353
|
| |
|
|
|
|
| |
types and jumps into protected try-catch scopes.
llvm-svn: 70242
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
input/output constraint mismatch
Before we emitted:
$ clang t.c -S -m64
llvm: error: Unsupported asm: input constraint with a matching output constraint of incompatible type!
Now we produce:
$ clang t.c -S -m64
t.c:5:40: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'int'
asm volatile("foo " : "=a" (a) :"0" (b));
~~~ ~^~
llvm-svn: 70142
|
| |
|
|
|
|
| |
flags.
llvm-svn: 70137
|
| |
|
|
| |
llvm-svn: 70136
|