- Jan 09, 2009
-
-
Douglas Gregor authored
of ScopedDecls (using the new ScopedDecl::NextDeclInScope pointer). Performance-wise: - It's a net win in memory utilization, since DeclContext is now one pointer smaller than it used to be (std::vectors are typically 3 pointers; we now use 2 pointers) and - Parsing Cocoa.h with -fsyntax-only (with a Release-Asserts Clang) is about 1.9% faster than before, most likely because we no longer have the memory allocations and copying associated with the std::vector. I'll re-enable serialization of DeclContexts once I've sorted out the NextDeclarator/NextDeclInScope question. llvm-svn: 62001
-
Douglas Gregor authored
filters the decls seen by decl_iterator with two criteria: the dynamic type of the declaration and a run-time predicate described by a member function. This simplifies EnumDecl, RecordDecl, and ObjCContainerDecl considerably. It has no measurable performance impact. llvm-svn: 61994
-
Steve Naroff authored
Add isa/cast/dyncast support for ObjCContainerDecl. Renamed classprop_iterator/begin/end to prop_iterator/begin/end (the class prefix was confusing). More simplifications to Sema::ActOnAtEnd()... Added/changed some FIXME's as a result of the above work. llvm-svn: 61988
-
rdar://problem/6479085Douglas Gregor authored
rewrite @class declarations that showed up within linkage specifications because those @class declarations never made it any place where the rewriter could find them. Moved all of the ObjC*Decl nodes over to ScopedDecls, so that they can live in the appropriate top-level or transparent DeclContext near the top level, e.g., TranslationUnitDecl or LinkageSpecDecl. Objective-C declarations now show up in a traversal of the declarations in a DeclContext (they didn't before!). This way, the rewriter finds all Objective-C declarations within linkage specifications. llvm-svn: 61966
-
Fariborz Jahanian authored
parameter list. This is work in progress. llvm-svn: 61964
-
- Jan 08, 2009
-
-
Steve Naroff authored
llvm-svn: 61937
-
Steve Naroff authored
Moved logic to Sema::ProcessPropertyDecl(). llvm-svn: 61936
-
Steve Naroff authored
- ObjCContainerDecl's (ObjCInterfaceDecl/ObjCCategoryDecl/ObjCProtocolDecl), ObjCCategoryImpl, & ObjCImplementation are all DeclContexts. - ObjCMethodDecl is now a ScopedDecl (so it can play nicely with DeclContext). - ObjCContainerDecl now does iteration/lookup using DeclContext infrastructure (no more linear search:-) - Removed ASTContext argument to DeclContext::lookup(). It wasn't being used and complicated it's use from an ObjC AST perspective. - Added Sema::ProcessPropertyDecl() and removed Sema::diagnosePropertySetterGetterMismatch(). - Simplified Sema::ActOnAtEnd() considerably. Still more work to do. - Fixed an incorrect casting assumption in Sema::getCurFunctionOrMethodDecl(), now that ObjCMethodDecl is a ScopedDecl. - Removed addPropertyMethods from ObjCInterfaceDecl/ObjCCategoryDecl/ObjCProtocolDecl. This passes all the tests on my machine. Since many of the changes are central to the way ObjC finds it's methods, I expect some fallout (and there are still a handful of FIXME's). Nevertheless, this should be a step in the right direction. llvm-svn: 61929
-
Fariborz Jahanian authored
gen issue fix. llvm-svn: 61901
-
- Jan 07, 2009
-
-
Douglas Gregor authored
nested in the translation unit. This fixes <rdar://problem/6476070>. llvm-svn: 61832
-
- Dec 29, 2008
-
-
Fariborz Jahanian authored
llvm-svn: 61476
-
- Dec 22, 2008
-
-
Fariborz Jahanian authored
property in a category and to issue diagnostics for mismatch method in some other cases. llvm-svn: 61336
-
- Dec 21, 2008
-
-
Fariborz Jahanian authored
using it in ObjC's method parameter encoding. llvm-svn: 61293
-
- Dec 17, 2008
-
-
Fariborz Jahanian authored
Note that one test duplicate-ivar-check.m will fail because I need to re-implement duplicate ivar checking. llvm-svn: 61154
-
Chris Lattner authored
Move Sema::ActOnDefs to SemaDeclObjC llvm-svn: 61126
-
Fariborz Jahanian authored
llvm-svn: 61114
-
- Dec 16, 2008
-
-
Eli Friedman authored
change the semantics. Please correct this if the precedence was actually supposed to be something different. llvm-svn: 61099
-
Fariborz Jahanian authored
llvm-svn: 61090
-
- Dec 15, 2008
-
-
Fariborz Jahanian authored
is done. Layout is calculated lazily at code gen type. This patch changes the name. llvm-svn: 61054
-
- Dec 13, 2008
-
-
Fariborz Jahanian authored
llvm-svn: 60993
-
- Dec 11, 2008
-
-
Douglas Gregor authored
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
-
- Dec 09, 2008
-
-
Fariborz Jahanian authored
the synthesis is in an implementation of s subclass of a super class where the property has been declared. llvm-svn: 60792
-
Steve Naroff authored
Sema::ActOnMethodDeclaration(): Make sure we perform the default function/array conversion for parameter types. This fixes <rdar://problem/6424064> checker on xcode: (possible bad AST) can the type of a method parameter really have "isFunctionType() == true"? and http://llvm.org/bugs/show_bug.cgi?id=2997. llvm-svn: 60781
-
- Dec 08, 2008
-
-
Fariborz Jahanian authored
warning as it is allowed in gcc and will break projects. llvm-svn: 60710
-
Fariborz Jahanian authored
must allow the continuation class to extend it to a 'readwrite' and 'copy/retain'. llvm-svn: 60709
-
Douglas Gregor authored
llvm-svn: 60708
-
- Dec 07, 2008
-
-
Fariborz Jahanian authored
Bug reported by Chris L. llvm-svn: 60635
-
Fariborz Jahanian authored
via the category's protocol list1s, with appropriate diagnsostics and a test case. llvm-svn: 60634
-
- Dec 06, 2008
-
-
Fariborz Jahanian authored
type mimatches. llvm-svn: 60630
-
Fariborz Jahanian authored
llvm-svn: 60629
-
Fariborz Jahanian authored
testing declaration of properties in categories. llvm-svn: 60625
-
Fariborz Jahanian authored
attributes. Example would be, readonly, assign or assign, copy, etc. llvm-svn: 60620
-
- Dec 05, 2008
-
-
Fariborz Jahanian authored
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
-
Fariborz Jahanian authored
(instance/class) Method type checking between category and its implementation. And a test case for all. llvm-svn: 60598
-
Douglas Gregor authored
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
-
Fariborz Jahanian authored
methods in class and its implementation. This is work in progress. llvm-svn: 60573
-
- Dec 04, 2008
-
-
Fariborz Jahanian authored
property attribute mis-specification. llvm-svn: 60562
-
- Dec 02, 2008
-
-
Fariborz Jahanian authored
work in prgress. llvm-svn: 60430
-
Fariborz Jahanian authored
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
-
- Nov 26, 2008
-
-
Fariborz Jahanian authored
llvm-svn: 60115
-