summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Introduce Type::isStructureOrClassType(), which does the obviousDouglas Gregor2010-04-269-17/+20
| | | | | | | | thing. Audit all uses of Type::isStructure(), changing those calls to isStructureOrClassType() as needed (which is alsmost everywhere). Fixes the remaining failure in Boost.Utility/Swap. llvm-svn: 102386
* Cleanup error recovery for a missing '-'|'+'Fariborz Jahanian2010-04-261-32/+24
| | | | | | on a method declaration (radar 7822196). llvm-svn: 102383
* Implement template instantiation for implicit property references inDouglas Gregor2010-04-261-3/+44
| | | | | | | Objective-C++. This is the last bit of (non-blocks-related) template instantiation logic for Objective-C++. Yay! llvm-svn: 102382
* Implement template instantiation for ObjCPropertyRefExpr.Douglas Gregor2010-04-261-4/+45
| | | | llvm-svn: 102379
* emit dtors with the right calling convention in -fno-use-cxa-atexitChris Lattner2010-04-261-3/+8
| | | | | | mode. llvm-svn: 102377
* Implement template instantiation for value-dependent Objective-C ivarDouglas Gregor2010-04-261-6/+83
| | | | | | | | references and isa expressions. Also, test template instantiation of unresolved member references to Objective-C ivar references and isa expressions. llvm-svn: 102374
* Implement template instantiation for Objective-C @catchDouglas Gregor2010-04-263-4/+72
| | | | | | statements. This is the last of the Objective-C statements. llvm-svn: 102356
* Refactor Objective-C @catch parameter checking by detangling it fromDouglas Gregor2010-04-263-23/+99
| | | | | | | | function-parameter checking and splitting it into the normal ActOn*/Build* pair in Sema. We now use VarDecl to represent the @catch parameter rather than the ill-fitting ParmVarDecl. llvm-svn: 102347
* Make the static type of the exception variable in an Objective-CDouglas Gregor2010-04-266-11/+11
| | | | | | | @catch a VarDecl. The dynamic type is still a ParmVarDecl, but that will change soon. No effective functionality change. llvm-svn: 102341
* Ensure that we have completed a type before attempting initializationDouglas Gregor2010-04-261-39/+48
| | | | | | on that type. Fixes several problems in Boost.Interprocess. llvm-svn: 102339
* When name lookup finds a single declaration that was imported via aDouglas Gregor2010-04-252-3/+6
| | | | | | | | using declaration, look at its underlying declaration to determine the lookup result kind (e.g., overloaded, unresolved). Fixes at least one issue in Boost.Bimap. llvm-svn: 102317
* Improve the diagnostic when we find something we did not expect in aDouglas Gregor2010-04-252-11/+11
| | | | | | | member expression (p-> or x.), by showing the type we looked into and what we did actually find. llvm-svn: 102315
* IRgen/NeXT: Fix several alignment issues with Objective-C metadata symbols:Daniel Dunbar2010-04-251-14/+15
| | | | | | | | | - Fix some places that had the alignment hard coded. - Use ABI type alignment, not preferred type alignment -- neither of this is exactly right, as we really want the C type alignment as required by the runtime, but the ABI alignment is a more correct choice. This should be equivalent for x86_64, but fixes the alignment for ARM. llvm-svn: 102314
* IRgen/NeXT: Reuse EmitImageInfo for both fragile and non-fragile ABI. This ↵Daniel Dunbar2010-04-251-32/+9
| | | | | | fixes Clang to correctly emit the "CorrectedSynthesize" bit when using the non-fragile ABI. llvm-svn: 102312
* When performing name lookup for an operator name, be sure to lookDouglas Gregor2010-04-251-4/+5
| | | | | | through using declarations. Fixes ~18 tests in Boost.Fusion. llvm-svn: 102311
* Land another cleanup patch.Anders Carlsson2010-04-251-14/+8
| | | | llvm-svn: 102293
* When copying a temporary object to initialize an entity for which theDouglas Gregor2010-04-252-3/+9
| | | | | | | temporary needs to be bound, bind the copy object. Otherwise, we won't end up calling the destructor for the copy. Fixes Boost.Optional. llvm-svn: 102290
* Revert enough of my patches to fix self-host again :(Anders Carlsson2010-04-253-55/+101
| | | | llvm-svn: 102289
* When we create a temporary of class type that we don't immediatelyDouglas Gregor2010-04-241-5/+46
| | | | | | | bind, check accessibility of the destructor and mark the declaration as referenced. Fixes a bunch of Boost.Regex failures. llvm-svn: 102287
* Cleanup SynthesizeCXXCopyConstructor.Anders Carlsson2010-04-241-16/+9
| | | | llvm-svn: 102286
* Clean up SynthesizeCXXCopyAssignment a little.Anders Carlsson2010-04-241-15/+11
| | | | llvm-svn: 102285
* RenameGetAddressOfBaseOfCompleteClass to ↵Anders Carlsson2010-04-242-27/+28
| | | | | | GetAddressOfDirectBaseInCompleteClass to reflect that it only handles direct bases. llvm-svn: 102284
* Add an explicit UsuallyTinyPtrVector that takes a single element.Anders Carlsson2010-04-241-3/+2
| | | | llvm-svn: 102283
* More cleanup.Anders Carlsson2010-04-242-27/+18
| | | | llvm-svn: 102282
* Simplify EmitClassMemberwiseCopy now that it's only used for fields.Anders Carlsson2010-04-242-28/+14
| | | | llvm-svn: 102281
* Switch this to new API.Nick Lewycky2010-04-241-1/+1
| | | | llvm-svn: 102280
* DefineImplicitCopyConstructor now uses SetBaseOrMemberInitializers to create ↵Anders Carlsson2010-04-242-30/+14
| | | | | | implicit base initializers. (Member initializers are still handled by CodeGenFunction::SynthesizeCXXCopyConstructor for now). llvm-svn: 102279
* When building implicit base initializers, add a derived-to-base cast that ↵Anders Carlsson2010-04-241-0/+7
| | | | | | points to the exact base specifier. llvm-svn: 102277
* Rename GetAddressOfBaseClass to OldGetAddressOfBaseClass.Anders Carlsson2010-04-242-53/+15
| | | | llvm-svn: 102275
* Get rid of the old GetNonVirtualBaseClassOffset and change all call sites to ↵Anders Carlsson2010-04-245-34/+5
| | | | | | use the new version. llvm-svn: 102274
* Change CodeGenFunction::GetAddressOfDerivedClass to take a BasePath.Anders Carlsson2010-04-245-23/+31
| | | | llvm-svn: 102273
* Convert more call sites over to the new GetAddressOfBaseClass.Anders Carlsson2010-04-242-11/+7
| | | | llvm-svn: 102272
* When we attempt to create a temporary object of class type, be sureDouglas Gregor2010-04-241-1/+5
| | | | | | | | | | that the type we're copying is complete. Boost.Regex now builds, although it's failing its regression tests with our favorite "Sema doesn't consider destructor as used." assertion. llvm-svn: 102271
* Add a new GetAddressOfBaseClass overload that takes a base path and. Use it ↵Anders Carlsson2010-04-243-10/+112
| | | | | | for derived-to-base casts. llvm-svn: 102270
* When we are performing copy initialization of a class type via itsDouglas Gregor2010-04-241-8/+31
| | | | | | | | | | | copy constructor, suppress user-defined conversions on the argument. Otherwise, we can end up in a recursion loop where the bind the argument of the copy constructor to another copy constructor call, whose argument is then a copy constructor call... Found by Boost.Regex which, alas, still isn't building. llvm-svn: 102269
* Headers: Hide intptr_t and uintptr_t definitions behind _INTPTR_T and _UINTPTR_TDaniel Dunbar2010-04-241-0/+7
| | | | | | | | defines, for increased compatibility with Darwin gcc. - This is a bit of a hack, since platform compatibility issues don't belong here, but I don't think this hurts anyone either. llvm-svn: 102264
* Fix pasto, add a comment.Benjamin Kramer2010-04-242-1/+2
| | | | llvm-svn: 102263
* Factor code. No functionality change.Benjamin Kramer2010-04-242-137/+38
| | | | llvm-svn: 102262
* Add base paths for CK_BaseToDerived and CK_BaseToDerivedMemberPointer.Anders Carlsson2010-04-244-17/+30
| | | | llvm-svn: 102261
* Add base paths to CK_UncheckedDerivedToBase and CK_DerivedToBaseMemberPointer.Anders Carlsson2010-04-243-19/+23
| | | | llvm-svn: 102260
* Actually produce base paths for CastExprs of kind CK_DerivedToBase.Anders Carlsson2010-04-249-55/+131
| | | | llvm-svn: 102259
* Add BasePath arguments to all cast expr constructors.Anders Carlsson2010-04-245-7/+24
| | | | llvm-svn: 102258
* Driver/Darwin: Fix Objective-C non-fragile ABI and dispatch method defaults, ↵Daniel Dunbar2010-04-241-8/+9
| | | | | | | | which were wrong in numerous places. - <rdar://problem/7903449> llvm-svn: 102257
* When we take the address of a declaration to bind it to a non-typeDouglas Gregor2010-04-241-0/+1
| | | | | | | template parameter, by sure to mark that declaration as "referenced". The Boost.Iterator library now passes all tests. llvm-svn: 102256
* NeXT: Clean up dispatch method policy selection.Daniel Dunbar2010-04-244-15/+52
| | | | | | | | | | - Replace -cc1 level -fobjc-legacy-dispatch with -fobjc-dispatch-method={legacy,non-legacy,mixed}. - Lift "mixed" vs "non-mixed" policy choice up to driver level, instead of being buried in CGObjCMac.cpp. - No intended functionality change. llvm-svn: 102255
* Simplify.Daniel Dunbar2010-04-241-6/+2
| | | | llvm-svn: 102254
* Pass the base specifiers through to CheckDerivedToBaseConversion. No ↵Anders Carlsson2010-04-246-15/+26
| | | | | | functionality change yet. llvm-svn: 102250
* CastExpr should not hold a pointer to the base path. More cleanup.Anders Carlsson2010-04-2412-34/+25
| | | | llvm-svn: 102249
* Be more careful around dependent nested-name-specifiers, complainingDouglas Gregor2010-04-244-5/+56
| | | | | | | | when they are not complete (since we could not match them up to anything) and ensuring that enum parsing can cope with dependent elaborated-type-specifiers. Fixes PR6915 and PR6649. llvm-svn: 102247
* isValue is set to false by default.Anders Carlsson2010-04-241-2/+1
| | | | llvm-svn: 102246
OpenPOWER on IntegriCloud