| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
- Implement RewritePropertySetter(). While the routine is simple, there were some tricky changes to RewriteFunctionBodyOrGlobalInitializer(), the main rewriter loop. It also required some additional instance data to distinguish setters from getters, as well as some changes to RewritePropertyGetter().
- Implement FIXME: for pretty printing ObjCPropertyRefExpr's.
- Changed ObjCPropertyRefExpr::getSourceRange() to point to the end of the property name (not the beginning). Also made a minor name change from "Loc"->"IdLoc" (to make it clear the Loc does not point to the ".").
llvm-svn: 60540
|
| |
|
|
|
|
| |
should satisfy compilers and language lawyers alike.
llvm-svn: 60511
|
| |
|
|
| |
llvm-svn: 60444
|
| |
|
|
| |
llvm-svn: 60413
|
| |
|
|
|
|
|
|
| |
a property. Previous scheme of seaching in interface's list of methods
would not work because this list is not yet constructed. This is in preparation
for doing semantic check on viability of setter/getter method declarations.
llvm-svn: 60386
|
| |
|
|
|
|
| |
-Start adding support for rewriting @synthesize.
llvm-svn: 60368
|
| |
|
|
| |
llvm-svn: 60364
|
| |
|
|
| |
llvm-svn: 60334
|
| |
|
|
|
|
| |
don't want that :)
llvm-svn: 60333
|
| |
|
|
| |
llvm-svn: 60320
|
| |
|
|
| |
llvm-svn: 60318
|
| |
|
|
| |
llvm-svn: 60316
|
| |
|
|
| |
llvm-svn: 60301
|
| |
|
|
|
|
| |
handle recursion
llvm-svn: 60300
|
| |
|
|
| |
llvm-svn: 60299
|
| |
|
|
|
|
| |
the new.
llvm-svn: 60298
|
| |
|
|
|
|
| |
us the result.
llvm-svn: 60297
|
| |
|
|
| |
llvm-svn: 60296
|
| |
|
|
| |
llvm-svn: 60235
|
| |
|
|
|
|
| |
bitmangling.
llvm-svn: 60226
|
| |
|
|
|
|
| |
real apps crash
llvm-svn: 60069
|
| |
|
|
| |
llvm-svn: 60050
|
| |
|
|
|
|
| |
a writable property in one of its category.
llvm-svn: 60035
|
| |
|
|
| |
llvm-svn: 60033
|
| |
|
|
|
|
|
|
|
|
| |
properly reversed once constructed.
This fixes PR 3125:
http://llvm.org/bugs/show_bug.cgi?id=3125
llvm-svn: 59982
|
| |
|
|
| |
llvm-svn: 59946
|
| |
|
|
| |
llvm-svn: 59939
|
| |
|
|
| |
llvm-svn: 59938
|
| |
|
|
|
|
| |
NamedDecl::getNameAsString() to make it more explicit.
llvm-svn: 59937
|
| |
|
|
|
|
|
|
|
| |
assert if the name is not an identifier. Update callers to do the right
thing and avoid this method in unsafe cases. This also fixes an objc
warning that was missing a space, and migrates a couple more to taking
IdentifierInfo and QualTypes instead of std::strings.
llvm-svn: 59936
|
| |
|
|
| |
llvm-svn: 59935
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
a new NamedDecl::getAsString() method.
Change uses of Selector::getName() to just pass in a Selector
where possible (e.g. to diagnostics) instead of going through
an std::string.
This also adds new formatters for objcinstance and objcclass
as described in the dox.
llvm-svn: 59933
|
| |
|
|
| |
llvm-svn: 59889
|
| |
|
|
| |
llvm-svn: 59884
|
| |
|
|
| |
llvm-svn: 59881
|
| |
|
|
|
|
| |
'implicit' property with no 'setter'.
llvm-svn: 59878
|
| |
|
|
|
|
|
| |
Issuing diagnostics when assigning to read-only properties.
This is work in progress.
llvm-svn: 59874
|
| |
|
|
|
|
| |
This version uses VLAs to represent arrays. I'll try an alternative way next, but I want this safe first.
llvm-svn: 59835
|
| |
|
|
|
|
| |
identifier for functions that might not have one
llvm-svn: 59818
|
| |
|
|
|
|
|
| |
from Sebastian to enforce that a literal string is passed in,
and use this to avoid having to call strlen on it.
llvm-svn: 59706
|
| |
|
|
|
|
| |
Patch contributed by Jay Foad!
llvm-svn: 59656
|
| |
|
|
| |
llvm-svn: 59651
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
struct A {
struct B;
};
struct A::B {
void m() {} // Assertion failed: getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."
};
Introduce DeclContext::getLexicalParent which may be different from DeclContext::getParent when nested-names are involved, e.g:
namespace A {
struct S;
}
struct A::S {}; // getParent() == namespace 'A'
// getLexicalParent() == translation unit
llvm-svn: 59650
|
| |
|
|
| |
llvm-svn: 59647
|
| |
|
|
|
|
| |
the other way around.
llvm-svn: 59646
|
| |
|
|
|
|
|
|
|
| |
built-in operator candidates. Test overloading of '&' and ','.
In C++, a comma expression is an lvalue if its right-hand
subexpression is an lvalue. Update Expr::isLvalue accordingly.
llvm-svn: 59643
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
post-decrement, including support for generating all of the built-in
operator candidates for these operators.
C++ and C have different rules for the arguments to the builtin unary
'+' and '-'. Implemented both variants in Sema::ActOnUnaryOp.
In C++, pre-increment and pre-decrement return lvalues. Update
Expr::isLvalue accordingly.
llvm-svn: 59638
|
| |
|
|
| |
llvm-svn: 59608
|
| |
|
|
| |
llvm-svn: 59599
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
operator+, directly, using the same mechanism as all other special
names.
Removed the "special" identifiers for the overloaded operators from
the identifier table and IdentifierInfo data structure. IdentifierInfo
is back to representing only real identifiers.
Added a new Action, ActOnOperatorFunctionIdExpr, that builds an
expression from an parsed operator-function-id (e.g., "operator
+"). ActOnIdentifierExpr used to do this job, but
operator-function-ids are no longer represented by IdentifierInfo's.
Extended Declarator to store overloaded operator names.
Sema::GetNameForDeclarator now knows how to turn the operator
name into a DeclarationName for the overloaded operator.
Except for (perhaps) consolidating the functionality of
ActOnIdentifier, ActOnOperatorFunctionIdExpr, and
ActOnConversionFunctionExpr into a common routine that builds an
appropriate DeclRefExpr by looking up a DeclarationName, all of the
work on normalizing declaration names should be complete with this
commit.
llvm-svn: 59526
|