aboutsummaryrefslogtreecommitdiff
path: root/Sema/SemaDecl.cpp
AgeCommit message (Collapse)Author
2007-10-19Fix a crash on test/Sema/invalid-decl.c Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43188 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-18Add a FIXME to an assert.Steve Naroff
Change a dyn_cast_or_null back to cast (which is more efficient). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43152 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-18Patch to rewrite ivar tables metadata for classes defined.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43151 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-18Fix the following bug...Steve Naroff
unsigned char asso_values[] = { 34 }; int legal2() { return asso_values[0]; } The code that creates the new constant array type was operating on the original type. As a result, the constant type being generated was "unsigned char [1][]" (which is wrong). The fix is to operate on the element type - in this case, the correct type is "unsigned char [1]" I added this case to array-init.c, which clearly didn't catch this bogosity... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43112 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-17Generate code for static variables that don't have initializers. Also, ↵Anders Carlsson
report an error if a static initializer is not constant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43058 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-16Add a new Rewriter::getRangeSize method.Chris Lattner
Rename SourceRange::Begin()/End() to getBegin()/getEnd() for consistency with other code. Start building the rewriter towards handling @encode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43047 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-16Patch to diagnose duplicate method implementations.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43046 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-16Remove ObjcMethodDecl::getNumMethodParams/getMethodParamDecl, they aren't ↵Steve Naroff
used/needed. Change ObjcMethodDecl::getMethodType to getResultType, to match FunctionDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43045 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-16Bad cast...need to use dyn_cast_or_null. Also changed ↵Steve Naroff
Sema::InitBuiltinVaListType (which had the same bug). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43023 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-15Add code generation and sema checking for __builtin_va_arg.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43006 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-15Several name lookup conflict detection fixes involving objective-c names.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43000 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-14Add category lookup (removing a couple FIXME's).Steve Naroff
Changed ObjcInterfaceDecl::ListCategories->CategoryList. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42968 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-14- Added Sema::AddFactoryMethodToGlobalPool and ↵Steve Naroff
Sema::AddInstanceMethodToGlobalPool and DenseMaps. This will allow us to efficiently lookup a method from a selector given no type information (for the "id" data type). - Fixed some funky "} else {" indentation in Sema::ActOnAddMethodsToObjcDecl(). I'd prefer we stay away from this style...it wastes space and isn't any easier to read (from my perspective, at least:-) - Changed Parser::ParseObjCInterfaceDeclList() to only call Action::ActOnAddMethodsToObjcDecl() when it actually has methods to add (since most interface have methods, this is a very minor cleanup). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42957 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12Generate code for va_start and va_end.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42939 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12Patch to check for duplicate method decls in protocols.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42938 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12Check and diagnose that objective-c objects may not be statically allocated.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42936 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12Fixed typo in comment.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42928 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12Fixed a @compatible_alias bug. In the process, discovered unnecessary 2ndry ↵Fariborz Jahanian
lookup ok class names and streamlined this logic to do the lookup once. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42926 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12Replace one FIXME with another. We handle protocols just fine now. The ObjC ↵Steve Naroff
decl will only be 0 when we have an error on the ObjC decl. I would prefer we pass in a decl that is marked as invalid. I don't think this is critical to fix now, however I'd like us to be consistent. There are currently many places that don't mark the decl as invalid (which need to be fixed)... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42923 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12Fixed a bug whereby, struct tag name matches a typedef/objc-class nameFariborz Jahanian
and hid them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42915 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-11This patch implementa objective-c's @compatibilty-alias declaration.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42883 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-11Add __builtin_va_start to the list of builtins, make __builtin_va_list ↵Anders Carlsson
available to builtin functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42857 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-11Patch to create protocol conforming class types.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42856 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10Fix 80 col violations.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42849 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10Refinements to Sema::GetObjcIdType()...Steve Naroff
- Cache the typedef, not the type (avoids importing AST/Type.h). - Emit an error if "id" cannot be found. - Comment the routine and add a FIXME to reconsider how we emulate GCC's new fangled behavior. This isn't a priority for now, since almost no code depends on having "id" built-in. - Add a test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42845 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10- Make sure default return/argument types (for methods) default to "id".Steve Naroff
- Cache the "id" type in Sema...initialize ObjcIdType and TUScope (oops). - Fix ActOnInstanceMessage to allow for "id" type receivers...still work to do (next). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42842 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10Remove Scope argument from ObjC actions that either don't need it or can now ↵Steve Naroff
use TUScope. Also improve a recently added comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42826 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-09Make sure methods with no return type default to "id".Steve Naroff
This fixes a crasher in Sema::MatchTwoMethodDeclarations(), identified by selector-overload.m (just added). Added Action::ActOnTranslationUnitScope() and renamed Action::PopScope to ActOnPopScope. Added a Translation Unit Scope instance variable to Sema (will be very useful to ObjC-related actions, since ObjC declarations are always file-scoped). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42817 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-09Minor code clean up to make it more readable.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42803 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-09Remove addition of protocol names to declaration scopes, use a separateFariborz Jahanian
DenseMap to keep track of such declarations and derive ObjcProtocolDecl directyly from NamedScope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-09rename some "Parse" actions to "ActOn". Move code around inChris Lattner
ParseFunctionDefinition so that ActOnFunctionDefBody is always called if ActOnStartOfFunctionDef is called. This fixes a crash reported by Nuno Lopes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42793 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-09Prevent memory leak by not creating a category object when there is aFariborz Jahanian
fatal error of category's undefined interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42790 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08Convert Selector Maps/Sets to use stronger typing (now that we have ↵Steve Naroff
DenseMapInfo in IdentifierTable.h). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42767 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08Return NULL on invalid protocol.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42754 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07move IdentifierTable.h from liblex to libbasic.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42730 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07The identifier shouldn't be added to the scope, the decl should.Chris Lattner
This fixes strange assertions that just started triggering. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42721 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07simplify some Selector interfaces.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42715 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07move ImplementationClassInfo out of ASTContext into Sema.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42714 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-06switch ObjcCategoryImplDecl over to being a NamedDecl, remove dead ctor ↵Chris Lattner
argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42711 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-06introduce a new NamedDecl class, switch a couple of things over to using it.Chris Lattner
NamedDecl is a Decl that has an IdentifierInfo (for example, ScopedDecl), but not ObjcMethodDecl. Simplify some code in ActOnAddMethodsToObjcDecl, by doing the cast from DeclTy to Decl at the start of the method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42710 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-06simplify the interface to create ObjcClassDecl's.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42706 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-06simplify the interface for creating ObjcForwardProtocolDeclChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42705 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-05This is the first patch toward supporting protocol conformingFariborz Jahanian
objective-c types. It also removes use of Scope* parameter in getObjCProtocolDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42649 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-05Implement DenseMapInfo for Selector, allowing use of DenseMap/DenseSet ofChris Lattner
Selector's instead of requiring void* to be used. I converted one use of DenseSet<void*> over to use DenseSet<Selector> but the others should change as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42645 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-05Patch for 1) Checking for duplicate methods decls in intterface and category.Fariborz Jahanian
2) Use of the new DenseSet<t> abstractions instead of DenseMap<t,char>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42641 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-04this patch accomodates clattner's comments on expression processing in ↵Fariborz Jahanian
@try-statement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42611 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-04Fixed tabs in couple of sources.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42601 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-04Fixed all my recent test cases to have the RUN command andFariborz Jahanian
fixed consequence of these changes in clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42600 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03Finish renaming ObjC declaration actions.Steve Naroff
Add comments. Switch to new indentation style for the Action class. Since many actions take many arguments, the new style will... - make it easier to add/remove arguments without messing up the indentation... - make it easier to add comments to each argument (see ActOnMethodDeclaration for an example)... - in general, just makes it easier to see what is being passed. The rest of Actions will be converted "lazily"...there is no immediate need to hack all the existing methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42587 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03Renamed getCatLoc() to getLocation() to be consistant for suchFariborz Jahanian
getter names. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42577 91177308-0d34-0410-b5e6-96231b3b80d8