summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExpr.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* <rdar://problem/7263113> Make clang produce gcc's objc_assign_StrongCast as ↵Fariborz Jahanian2009-09-301-1/+11
| | | | | | a result of type-cast of an ivar in assignment. llvm-svn: 83150
* Fixed another code gen bug in objc's new write-barrier API.Fariborz Jahanian2009-09-251-1/+2
| | | | llvm-svn: 82735
* Patch fixes a code gen. bug in generation of objc_assign_ivarFariborz Jahanian2009-09-241-2/+13
| | | | | | (objc GC's API). llvm-svn: 82724
* Refactor the representation of qualifiers to bring ExtQualType out of theJohn McCall2009-09-241-99/+59
| | | | | | | | Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. llvm-svn: 82705
* Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall2009-09-211-6/+6
| | | | | | | | | | | Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. llvm-svn: 82501
* Removed -fobjc-newgc-api option. clang now conforms toFariborz Jahanian2009-09-211-2/+1
| | | | | | gcc-style write-barrier api only. llvm-svn: 82493
* Miscellanous fixes in generatation of objc gc's write-barriers.Fariborz Jahanian2009-09-211-17/+13
| | | | llvm-svn: 82472
* Fixed a bug in generation of the new write-barriers when Fariborz Jahanian2009-09-181-1/+11
| | | | | | array syntax is used to derefernce and assign to ivar pointee. llvm-svn: 82183
* patch for generating objc'2 objc_assign_ivar. WIP.Fariborz Jahanian2009-09-161-14/+9
| | | | llvm-svn: 82090
* Starting patch to generate more specific API for objc'sFariborz Jahanian2009-09-161-2/+37
| | | | | | | | GC. Currently, new API will be generated under clang-cc's -fobjc-newgc-api flag which will eventually become the default. WIP. llvm-svn: 82082
* Removed a superfluous check before settingFariborz Jahanian2009-09-161-2/+1
| | | | | | a flag (objc GC). llvm-svn: 82052
* Code generation of Conditional operators that are lvalues (but that aren't ↵Anders Carlsson2009-09-151-5/+38
| | | | | | bitfields). llvm-svn: 81867
* Implement CodeGenFunction::EmitCXXExprWithTemporariesLValue.Anders Carlsson2009-09-141-0/+2
| | | | llvm-svn: 81738
* Don't use the PredefinedExpr string as the global variable name, these don'tDaniel Dunbar2009-09-121-1/+5
| | | | | | make very nice symbols, just use the function name. llvm-svn: 81653
* Handle CK_DerivedToBase when emitting lvalue casts.Anders Carlsson2009-09-121-21/+42
| | | | llvm-svn: 81614
* Add support for __block variables with alignment greater than __alignof(void *).Anders Carlsson2009-09-121-7/+2
| | | | llvm-svn: 81602
* Remove unnecessary ASTContext parameter from FunctionDecl::isBuiltinIDDouglas Gregor2009-09-121-1/+1
| | | | llvm-svn: 81590
* Set the calling convention based on the CGFunctionInfo.Daniel Dunbar2009-09-111-1/+8
| | | | llvm-svn: 81582
* GlobalDecl doesn't have an explicit constructor anymore.Anders Carlsson2009-09-101-1/+1
| | | | llvm-svn: 81481
* If a cast expression needs either a conversion function or a constructor to ↵Anders Carlsson2009-09-091-11/+3
| | | | | | be called, generate implicit child expressions that call them. llvm-svn: 81383
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-3/+2
| | | | llvm-svn: 81346
* Reflow comments and some minor whitespace fixups.Mike Stump2009-09-091-182/+179
| | | | llvm-svn: 81337
* Vastly improve PredefinedExpr output, both in Sema and CodeGen. Patch by Sam ↵Anders Carlsson2009-09-081-14/+3
| | | | | | Weinig! llvm-svn: 81237
* Implement AST, semantics, and CodeGen for C++ pseudo-destructorDouglas Gregor2009-09-041-0/+10
| | | | | | | | | | | | | expressions, e.g., p->~T() when p is a pointer to a scalar type. We don't currently diagnose errors when pseudo-destructor expressions are used in any way other than by forming a call. llvm-svn: 81009
* Handle member expressions that return references correctly.Anders Carlsson2009-09-011-0/+1
| | | | llvm-svn: 80723
* Fixed a property getter ir-gen crash.Fariborz Jahanian2009-09-011-2/+3
| | | | llvm-svn: 80681
* Eliminate CXXAdornedMemberExpr entirely. Instead, optionally allocateDouglas Gregor2009-08-311-1/+0
| | | | | | | | space within the MemberExpr for the nested-name-specifier and its source range. We'll do the same thing with explicitly-specified template arguments, assuming I don't flip-flop again. llvm-svn: 80642
* Rename CXXQualifiedMemberExpr -> CXXAdornedMemberExpr, since we willDouglas Gregor2009-08-311-1/+1
| | | | | | | also be adding explicit template arguments as an additional "adornment". No functionality change. llvm-svn: 80628
* Patch for code gen. for c-style cast which ends inFariborz Jahanian2009-08-291-6/+7
| | | | | | using class's conversion functions [12.3.2-p2] llvm-svn: 80433
* ir-gen related patch for type conversionFariborz Jahanian2009-08-281-0/+5
| | | | | | with class type conversion methods. WIP. llvm-svn: 80365
* Clean up CodeGenFunction::EmitCastLValue to use the cast kind. Error Eli Friedman2009-08-271-3/+13
| | | | | | out for user-defined conversions instead of crashing. llvm-svn: 80282
* When a member reference expression includes a qualifier on the memberDouglas Gregor2009-08-261-1/+3
| | | | | | | | | | | | | | | | | name, e.g., x->Base::f() retain the qualifier (and its source range information) in a new subclass of MemberExpr called CXXQualifiedMemberExpr. Provide construction, transformation, profiling, printing, etc., for this new expression type. When a virtual function is called via a qualified name, don't emit a virtual call. Instead, call that function directly. Mike, could you add a CodeGen test for this, too? llvm-svn: 80167
* Using "ObjCImplicitSetterGetterRefExpr" instead of ↵Fariborz Jahanian2009-08-201-4/+4
| | | | | | | | "ObjCImplctSetterGetterRefExpr". A field rename and more comments. llvm-svn: 79537
* Renamed ObjCKVCRefExpr to ObjCImplctSetterGetterRefExpr.Fariborz Jahanian2009-08-181-4/+5
| | | | | | | | Removed an unnecessary loop to get to setters incoming argument. Added DoxyGen comments. Still more work to do in this area (WIP). llvm-svn: 79365
* Only do this for initializers of course.Anders Carlsson2009-08-161-8/+10
| | | | llvm-svn: 79197
* Destroy bound temporaries.Anders Carlsson2009-08-161-0/+16
| | | | llvm-svn: 79196
* Add an IsInitializer flag to EmitAnyExpr. This is used to prevent ↵Anders Carlsson2009-08-161-9/+16
| | | | | | temporaries from being destroyed when they're bound to a reference variable. llvm-svn: 79179
* use GetVLASize instead of accessing VLASizeMap directly, this gets an assert if Chris Lattner2009-08-141-1/+1
| | | | | | VLASize isn't populated for the type yet. llvm-svn: 79057
* Update for LLVM API change.Owen Anderson2009-08-131-22/+33
| | | | llvm-svn: 78946
* Use the inbounds variant of getelementptr for common pointer arithmetic.Dan Gohman2009-08-121-3/+3
| | | | llvm-svn: 78756
* Update for LLVM API changes.Owen Anderson2009-07-301-8/+8
| | | | llvm-svn: 77638
* Canonicalize else spacing.Mike Stump2009-07-301-10/+5
| | | | llvm-svn: 77629
* Remove bogus "unsupported" case for vectors (which shouldn't Eli Friedman2009-07-301-2/+1
| | | | | | | | | | ever trigger). Add an "unsupported" case that triggers for C++ code. It would be nice if someone would implement this properly... it shouldn't be too hard, but I haven't looked closely at the relevant code. llvm-svn: 77562
* Update for LLVM API change.Owen Anderson2009-07-291-8/+8
| | | | llvm-svn: 77514
* Change uses of:Ted Kremenek2009-07-291-3/+3
| | | | | | | | | | | | | | | | | | | | Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>() Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>() Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>() Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>() Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsTagType() -> Type::getAs<TagType>() And remove Type::getAsReferenceType(), etc. This change is similar to one I made a couple weeks ago, but that was partly reverted pending some additional design discussion. With Doug's pending smart pointer changes for Types, it seemed natural to take this approach. llvm-svn: 77510
* Patch to provide cast of objects in member accessFariborz Jahanian2009-07-291-16/+0
| | | | | | | excpression, if needed, and remove some ir-gen code now unnencessary. llvm-svn: 77490
* Code refactoring to define getCXXRecordDeclForPointerTypeFariborz Jahanian2009-07-291-10/+9
| | | | | | and use it in several places. llvm-svn: 77411
* Update for LLVM API change.Owen Anderson2009-07-281-6/+6
| | | | llvm-svn: 77368
* More cleanup of data member access and then some.Fariborz Jahanian2009-07-281-8/+16
| | | | llvm-svn: 77351
* More work toward data member access ir-gen.Fariborz Jahanian2009-07-281-0/+10
| | | | llvm-svn: 77332
OpenPOWER on IntegriCloud