summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
Commit message (Collapse)AuthorAgeFilesLines
* Rename DeclContext::insert to DeclContext::makeDeclVisibleInContext and ↵Douglas Gregor2009-01-201-1/+1
| | | | | | document both it and DeclContext::addDecl properly llvm-svn: 62581
* Remove the TopLevelDecls from TranslationUnit, since all of those decls are ↵Douglas Gregor2009-01-201-1/+0
| | | | | | owned by the ASTContext's TranslationUnitDecl. There are definitely some leaking Decls now that I'll tackle tomorrow llvm-svn: 62568
* Remove ScopedDecl, collapsing all of its functionality into Decl, soDouglas Gregor2009-01-2012-129/+102
| | | | | | | | | | | | | | | | that every declaration lives inside a DeclContext. Moved several things that don't have names but were ScopedDecls (and, therefore, NamedDecls) to inherit from Decl rather than NamedDecl, including ObjCImplementationDecl and LinkageSpecDecl. Now, we don't store empty DeclarationNames for these things, nor do we try to insert them into DeclContext's lookup structure. The serialization tests are temporarily disabled. We'll re-enable them once we've sorted out the remaining ownership/serialiazation issues between DeclContexts and TranslationUnion, DeclGroups, etc. llvm-svn: 62562
* Convert more expression actions to smart pointers.Sebastian Redl2009-01-192-84/+97
| | | | llvm-svn: 62537
* Type of property and its ivar is more restrictiveFariborz Jahanian2009-01-191-0/+15
| | | | | | that rules for assignment. llvm-svn: 62524
* Centralize error reporting of improper uses of incomplete types in theDouglas Gregor2009-01-197-53/+138
| | | | | | | | | | new DiagnoseIncompleteType. It provides additional information about struct/class/union/enum types when possible, either by pointing to the forward declaration of that type or by pointing to the definition (if we're in the process of defining that type). Fixes <rdar://problem/6500531>. llvm-svn: 62521
* Convert more expression actions to smart pointers.Sebastian Redl2009-01-194-241/+281
| | | | | | Fix type of logical negation for C++. llvm-svn: 62475
* Convert a few expression actions to smart pointers.Sebastian Redl2009-01-183-138/+143
| | | | | | These actions are extremely widely used (identifier expressions and literals); still no performance regression. llvm-svn: 62468
* Convert ObjC statement actions to smart pointers.Sebastian Redl2009-01-182-47/+46
| | | | llvm-svn: 62465
* Convert asm statement action to smart pointers.Sebastian Redl2009-01-182-77/+72
| | | | llvm-svn: 62464
* Convert more statement actions to smart pointers.Sebastian Redl2009-01-182-66/+65
| | | | llvm-svn: 62463
* Vector codegen improvementsNate Begeman2009-01-181-1/+1
| | | | llvm-svn: 62458
* Support evaluation of vector constant expressions, and codegen of same.Nate Begeman2009-01-182-8/+7
| | | | llvm-svn: 62455
* Update support for vector component access on ExtVectors.Nate Begeman2009-01-181-38/+39
| | | | llvm-svn: 62440
* Remove outdated diagnostic. Tests are coming.Nate Begeman2009-01-181-11/+1
| | | | llvm-svn: 62437
* Change TargetInfo::validateInputConstraint to take begin/end name iterators ↵Anders Carlsson2009-01-171-1/+2
| | | | | | instead of the number of outputs. No functionality change. llvm-svn: 62433
* Diagnose when method parameter is an object.Fariborz Jahanian2009-01-171-0/+5
| | | | llvm-svn: 62431
* Warn about typedefs of enums without any declarator name. Fixes ↵Douglas Gregor2009-01-171-3/+3
| | | | | | rdar://problem/6503878 llvm-svn: 62397
* PODify LookupResult, for a measly 1% speedup on Cocoa.h.Douglas Gregor2009-01-172-103/+77
| | | | llvm-svn: 62391
* Teach DeclContext how to find the primary declaration for any TagDeclDouglas Gregor2009-01-173-38/+35
| | | | | | | | | | | | | even when we are still defining the TagDecl. This is required so that qualified name lookup of a class name within its definition works (see the new bits in test/SemaCXX/qualified-id-lookup.cpp). As part of this, move the nested redefinition checking code into ActOnTag. This gives us diagnostics earlier (when we try to perform the nested redefinition, rather than when we try to complete the 2nd definition) and removes some code duplication. llvm-svn: 62386
* Convert some more statement actions to smart pointers.Sebastian Redl2009-01-162-64/+81
| | | | | | Fix a type error; parser wanted to pass the third part of a for-statement as a statement; should be expression. llvm-svn: 62380
* Don't ICE (issue diagnostics) when receiver is a non-objcFariborz Jahanian2009-01-161-2/+3
| | | | | | type. llvm-svn: 62355
* Don't ICE on user redeclaration of objc's built-in types.Fariborz Jahanian2009-01-161-4/+11
| | | | | | Issue diagnostics instead if types do not match. llvm-svn: 62349
* silence release-assert warning.Chris Lattner2009-01-161-4/+4
| | | | llvm-svn: 62346
* Fix <rdar://problem/6502934>. We were creating an ImplicitCastExprDouglas Gregor2009-01-161-2/+4
| | | | | | with reference type (it should be an lvalue with non-reference type). llvm-svn: 62345
* minor cleanups to StringLiteralParser: no need to pass target infoChris Lattner2009-01-161-7/+1
| | | | | | | into its ctor. Also, make it handle validity checking of pascal strings instead of making clients do it. llvm-svn: 62332
* Part one of handling C++ functional casts. This handles semanticDouglas Gregor2009-01-161-17/+26
| | | | | | | | analysis and AST-building for the cases where we have N != 1 arguments. For N == 1 arguments, we need to finish the C++ implementation of explicit type casts (C++ [expr.cast]). llvm-svn: 62329
* Use a single function for doing vararg argument promotion. Also, make sure ↵Anders Carlsson2009-01-164-28/+36
| | | | | | to do the promotion before checking the type - fixes PR3340. llvm-svn: 62323
* rename PP::getPhysicalCharacterAt -> PP::getSpelledCharacterAt.Chris Lattner2009-01-161-4/+4
| | | | | | | Slightly speed up sema of numbers like '1' by going directly to TargetInfo instead of through ASTContext. llvm-svn: 62314
* Extract code dealing with typedef declarators into a separate function.Zhongxing Xu2009-01-162-37/+49
| | | | | | No functionality change. llvm-svn: 62303
* Extract code dealing with variable declarator into a separate function.Zhongxing Xu2009-01-162-100/+113
| | | | | | No functionality change. llvm-svn: 62300
* Extract code dealing with declarators of function type into a separate functionZhongxing Xu2009-01-162-288/+307
| | | | | | | Sema::ActOnFunctionDeclarator(). No functionality change. llvm-svn: 62290
* Improve diagnostics for ambiguous name lookup resultsDouglas Gregor2009-01-164-10/+56
| | | | llvm-svn: 62287
* PR3330: given an enum like this:Chris Lattner2009-01-151-2/+3
| | | | | | | | | | | enum E { A = 1U, B }; Don't make an implicit cast expr of null for B. llvm-svn: 62274
* Fix some unused variable, control reaches end of non-void function,Daniel Dunbar2009-01-151-1/+1
| | | | | | and uninitialized use options. llvm-svn: 62270
* add support for initializing static vars with a cast to union (gcc extension)Nuno Lopes2009-01-151-1/+8
| | | | llvm-svn: 62261
* PR2746: Implement GCC cast to union extensionSeo Sanghyeon2009-01-151-8/+23
| | | | llvm-svn: 62255
* Deallocate the BasePaths structure that we allocate for LookupResult.Douglas Gregor2009-01-152-2/+47
| | | | llvm-svn: 62250
* Initial implementation of member name lookupDouglas Gregor2009-01-156-101/+454
| | | | llvm-svn: 62247
* Refactor name lookup.Douglas Gregor2009-01-149-273/+691
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change refactors and cleans up our handling of name lookup with LookupDecl. There are several aspects to this refactoring: - The criteria for name lookup is now encapsulated into the class LookupCriteria, which replaces the hideous set of boolean values that LookupDecl currently has. - The results of name lookup are returned in a new class LookupResult, which can lazily build OverloadedFunctionDecls for overloaded function sets (and, eventually, eliminate the need to allocate member for OverloadedFunctionDecls) and contains a placeholder for handling ambiguous name lookup (for C++). - The primary entry points for name lookup are now LookupName (for unqualified name lookup) and LookupQualifiedName (for qualified name lookup). There is also a convenience function LookupParsedName that handles qualified/unqualified name lookup when given a scope specifier. Together, these routines are meant to gradually replace the kludgy LookupDecl, but this won't happen until after we have base class lookup (which forces us to cope with ambiguities). - Documented the heck out of name lookup. Experimenting a little with using Doxygen's member groups to make some sense of the Sema class. Feedback welcome! - Fixes some lingering issues with name lookup for nested-name-specifiers, which now goes through LookupName/LookupQualifiedName. llvm-svn: 62245
* Introduce support for C++0x explicit conversion operators (N2437)Douglas Gregor2009-01-147-66/+166
| | | | | | | | | | Small cleanup in the handling of user-defined conversions. Also, implement an optimization when constructing a call. We avoid recomputing implicit conversion sequences and instead use those conversion sequences that we computed as part of overload resolution. llvm-svn: 62231
* FunctionDecl::setParams() now uses the allocator associated with ASTContext ↵Ted Kremenek2009-01-143-6/+6
| | | | | | to allocate the array of ParmVarDecl*'s. llvm-svn: 62203
* Implemenent objective-c's NSObject attribute as a way of ddeclaraing c-typeFariborz Jahanian2009-01-132-1/+25
| | | | | | objects as an objective-c object. llvm-svn: 62197
* PTH:Ted Kremenek2009-01-131-3/+3
| | | | | | | | | | | | | | | | | - Use canonical FileID when using getSpelling() caching. This addresses some cache misses we were seeing with -fsyntax-only on Cocoa.h - Added Preprocessor::getPhysicalCharacterAt() utility method for clients to grab the first character at a specified sourcelocation. This uses the PTH spelling cache. - Modified Sema::ActOnNumericConstant() to use Preprocessor::getPhysicalCharacterAt() instead of SourceManager::getCharacterData() (to get PTH hits). These changes cause -fsyntax-only to not page in any sources from Cocoa.h. We see a speedup of 27%. llvm-svn: 62193
* Permitting typedefs without a name is a Microsoft/GNU extensionDouglas Gregor2009-01-131-0/+8
| | | | llvm-svn: 62192
* Use the unqualified type for GCCs struct/union cast extensionAnders Carlsson2009-01-131-2/+2
| | | | llvm-svn: 62170
* Warn when someone tries to pass a variable with a non-POD type to a varargs ↵Anders Carlsson2009-01-133-1/+26
| | | | | | function/method/block. llvm-svn: 62148
* Fix argument-passing bugs in a call to objectDouglas Gregor2009-01-131-10/+16
| | | | llvm-svn: 62147
* Add the proper restrictions on the left-hand argument of a built-inDouglas Gregor2009-01-132-10/+33
| | | | | | assignment operator candidate (C++ [over.match.oper]p4). llvm-svn: 62128
* Make sure we don't name a constructor or destructor with a qualifiedDouglas Gregor2009-01-131-1/+1
| | | | | | type. It leads to very weird errors. llvm-svn: 62124
OpenPOWER on IntegriCloud