| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 60897
|
| |
|
|
|
|
| |
RecordDecl::field_const_iterator, propagating the constness down to the FieldDecls.
llvm-svn: 60883
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and separates lexical name lookup from qualified name lookup. In
particular:
* Make DeclContext the central data structure for storing and
looking up declarations within existing declarations, e.g., members
of structs/unions/classes, enumerators in C++0x enums, members of
C++ namespaces, and (later) members of Objective-C
interfaces/implementations. DeclContext uses a lazily-constructed
data structure optimized for fast lookup (array for small contexts,
hash table for larger contexts).
* Implement C++ qualified name lookup in terms of lookup into
DeclContext.
* Implement C++ unqualified name lookup in terms of
qualified+unqualified name lookup (since unqualified lookup is not
purely lexical in C++!)
* Limit the use of the chains of declarations stored in
IdentifierInfo to those names declared lexically.
* Eliminate CXXFieldDecl, collapsing its behavior into
FieldDecl. (FieldDecl is now a ScopedDecl).
* Make RecordDecl into a DeclContext and eliminates its
Members/NumMembers fields (since one can just iterate through the
DeclContext to get the fields).
llvm-svn: 60878
|
| |
|
|
|
|
|
|
| |
failed: (0 && "unexpected type"), function mergeTypes,
Commit r60845 was premature.
llvm-svn: 60852
|
| |
|
|
| |
llvm-svn: 60848
|
| |
|
|
|
|
| |
"unexpected type"), function mergeTypes,
llvm-svn: 60845
|
| |
|
|
| |
llvm-svn: 60842
|
| |
|
|
|
|
| |
has added declaration of these methods in its @interface.
llvm-svn: 60803
|
| |
|
|
|
|
|
| |
the synthesis is in an implementation of s subclass of
a super class where the property has been declared.
llvm-svn: 60792
|
| |
|
|
|
|
| |
statement.
llvm-svn: 60790
|
| |
|
|
|
|
|
|
| |
protocols.
Fixes <rdar://problem/6418640> clang on prokit: error: incompatible type returning 'id', expected 'NSSize'
llvm-svn: 60716
|
| |
|
|
|
|
|
|
|
| |
code were working correctly, it would be a no-op, but it's not really a
proper fix. That said, I don't really want to touch the enum code at
the moment because I don't understand it very well, and this seems to
be a relatively visible regression.
llvm-svn: 60680
|
| |
|
|
|
|
|
| |
via the category's protocol list1s, with appropriate
diagnsostics and a test case.
llvm-svn: 60634
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
template<typename T> void f(T x) {
g(x); // g is a dependent name, so don't even bother to look it up
g(); // error: g is not a dependent name
}
Note that when we see "g(", we build a CXXDependentNameExpr. However,
if none of the call arguments are type-dependent, we will force the
resolution of the name "g" and replace the CXXDependentNameExpr with
its result.
GCC actually produces a nice error message when you make this
mistake, and even offers to compile your code with -fpermissive. I'll
do the former next, but I don't plan to do the latter.
llvm-svn: 60618
|
| |
|
|
|
|
|
|
|
|
|
|
| |
expressions, and value-dependent expressions. This permits us to parse
some template definitions.
This is not a complete solution; we're missing type- and
value-dependent computations for most of the expression types, and
we're missing checks for dependent types and type-dependent
expressions throughout Sema.
llvm-svn: 60615
|
| |
|
|
| |
llvm-svn: 60611
|
| |
|
|
|
|
|
|
| |
property. It also checks for duplicate use of the same ivar
in two different iproperty implementations. It also caught
an error for a test case used in CodeGen :).
llvm-svn: 60610
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parameters, with some semantic analysis:
- Template parameters are introduced into template parameter scope
- Complain about template parameter shadowing (except in Microsoft mode)
Note that we leak template parameter declarations like crazy, a
problem we'll remedy once we actually create proper declarations for
templates.
Next up: dependent types and value-dependent/type-dependent
expressions.
llvm-svn: 60597
|
| |
|
|
| |
llvm-svn: 60582
|
| |
|
|
| |
llvm-svn: 60581
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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
|