summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprAgg.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove remaining VISIBILITY_HIDDEN from anonymous namespaces.Benjamin Kramer2009-11-281-2/+1
| | | | llvm-svn: 90044
* Add case for CK_DerivedToBaseMemberPointer cast kind toEli Friedman2009-11-271-6/+13
| | | | | | AggExprEmitter::VisitCastExpr. llvm-svn: 89988
* Fix lifetime of conditional temporaries. Patch by Victor Zverovich!Anders Carlsson2009-11-201-4/+4
| | | | llvm-svn: 89467
* Fix one last gotcha with typeid.Mike Stump2009-11-181-0/+1
| | | | llvm-svn: 89172
* Add Code gen support for '->*' operator which fellFariborz Jahanian2009-10-261-1/+2
| | | | | | through the crack. llvm-svn: 85160
* Eliminate QualifiedDeclRefExpr, which captured the notion of aDouglas Gregor2009-10-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | qualified reference to a declaration that is not a non-static data member or non-static member function, e.g., namespace N { int i; } int j = N::i; Instead, extend DeclRefExpr to optionally store the qualifier. Most clients won't see or care about the difference (since QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the number of top-level expression types that clients need to cope with, brings the implementation of DeclRefExpr into line with MemberExpr, and simplifies and unifies our handling of declaration references. Extended DeclRefExpr to (optionally) store explicitly-specified template arguments. This occurs when naming a declaration via a template-id (which will be stored in a TemplateIdRefExpr) that, following template argument deduction and (possibly) overload resolution, is replaced with a DeclRefExpr that refers to a template specialization but maintains the template arguments as written. llvm-svn: 84962
* Complete code gen for '.*' binary expression forFariborz Jahanian2009-10-221-1/+11
| | | | | | both scalar and aggregates. llvm-svn: 84910
* Use CK_BitCast for member function pointer casts. Fixes PR5138.Anders Carlsson2009-10-181-0/+6
| | | | llvm-svn: 84438
* add support for codegening CXXZeroInitValueExprsNuno Lopes2009-10-181-0/+6
| | | | llvm-svn: 84418
* Suppress -Asserts warning.Daniel Dunbar2009-10-171-0/+1
| | | | llvm-svn: 84329
* Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer2009-10-131-2/+1
| | | | llvm-svn: 83964
* Move the vtable builder to CGVtable.cpp, general cleanup.Anders Carlsson2009-10-111-1/+2
| | | | llvm-svn: 83798
* Pass the canonical method decl to GetVtableIndex. Fixes PR5120.Anders Carlsson2009-10-031-1/+1
| | | | llvm-svn: 83272
* Teach AggExprEmitter about pointers to member functions.Anders Carlsson2009-10-031-0/+33
| | | | llvm-svn: 83266
* Move some functions from CodeGenFunctions to CodeGenModule so they can be ↵Anders Carlsson2009-10-031-1/+1
| | | | | | used by CGExprConstant. llvm-svn: 83263
* Handle CK_BaseToDerivedMemberPointer for member function pointers. Fixes PR5091.Anders Carlsson2009-09-291-1/+34
| | | | llvm-svn: 83041
* Improve support for member function pointers.Anders Carlsson2009-09-291-0/+15
| | | | llvm-svn: 83039
* Use a switch statement in VisitCastExpr.Anders Carlsson2009-09-291-12/+16
| | | | llvm-svn: 83038
* Refactor the representation of qualifiers to bring ExtQualType out of theJohn McCall2009-09-241-5/+6
| | | | | | | | 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
* If a cast expression needs either a conversion function or a constructor to ↵Anders Carlsson2009-09-091-10/+3
| | | | | | be called, generate implicit child expressions that call them. llvm-svn: 81383
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-39/+39
| | | | llvm-svn: 81346
* Re-implemented generation of objc_memmove_collectableFariborz Jahanian2009-08-311-12/+17
| | | | | | API for copying GC'able aggregates (Next runtime only). llvm-svn: 80607
* Patch for code gen. for c-style cast which ends inFariborz Jahanian2009-08-291-2/+6
| | | | | | using class's conversion functions [12.3.2-p2] llvm-svn: 80433
* ir-gen for type convesion of class objects. WIP.Fariborz Jahanian2009-08-261-1/+6
| | | | llvm-svn: 80178
* Using "ObjCImplicitSetterGetterRefExpr" instead of ↵Fariborz Jahanian2009-08-201-3/+3
| | | | | | | | "ObjCImplctSetterGetterRefExpr". A field rename and more comments. llvm-svn: 79537
* Renamed ObjCKVCRefExpr to ObjCImplctSetterGetterRefExpr.Fariborz Jahanian2009-08-181-2/+3
| | | | | | | | 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
* Add an IsInitializer flag to EmitAnyExpr. This is used to prevent ↵Anders Carlsson2009-08-161-8/+13
| | | | | | temporaries from being destroyed when they're bound to a reference variable. llvm-svn: 79179
* Update for LLVM API change.Owen Anderson2009-08-131-3/+5
| | | | llvm-svn: 78946
* Add CK_ToUnion and use it for aggregate expression codegen.Anders Carlsson2009-08-071-9/+8
| | | | llvm-svn: 78429
* Update for LLVM API change.Owen Anderson2009-07-311-1/+1
| | | | llvm-svn: 77722
* Canonicalize else spacing.Mike Stump2009-07-301-2/+1
| | | | llvm-svn: 77629
* Update for LLVM API change.Owen Anderson2009-07-291-2/+2
| | | | llvm-svn: 77514
* Change uses of:Ted Kremenek2009-07-291-2/+2
| | | | | | | | | | | | | | | | | | | | 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
* Update for LLVM API change.Owen Anderson2009-07-241-2/+2
| | | | llvm-svn: 77012
* Preserve address space information through member accesses, e.g., Mon P Wang2009-07-221-1/+2
| | | | | | | __attribute__((address_space(1))) struct {int arr[ 3 ]; } *p1; ... = p1->arr[2]; // load from address space 1 llvm-svn: 76717
* Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methodsTed Kremenek2009-07-171-2/+2
| | | | | | | | | until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. llvm-svn: 76193
* Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), ↵Ted Kremenek2009-07-171-2/+2
| | | | | | Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents. llvm-svn: 76139
* Update for LLVM API change, and contextify a bunch of related stuff.Owen Anderson2009-07-141-4/+4
| | | | llvm-svn: 75705
* Update for LLVM API change.Owen Anderson2009-07-131-1/+1
| | | | llvm-svn: 75446
* Implement code generation of ChooseExpr for aggregate types.Anders Carlsson2009-07-081-0/+5
| | | | llvm-svn: 75021
* Implemented memmove_collectable API for Next runtimeFariborz Jahanian2009-07-081-0/+12
| | | | | | | when struct variables with GC'able members are copied into. Will provide a test case later. llvm-svn: 74984
* De-ASTContext-ify DeclContext.Argyrios Kyrtzidis2009-06-301-4/+4
| | | | | | | Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating". Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit. llvm-svn: 74506
* Use PushConditionalTempDestruction/PopConditionalTempDestruction for the ↵Anders Carlsson2009-06-041-0/+4
| | | | | | ternary operator. llvm-svn: 72842
* PR4316: Fix IRGen for cast-to-union extension.Eli Friedman2009-06-031-6/+6
| | | | llvm-svn: 72803
* Emit destructors correctly for temporaries.Anders Carlsson2009-05-311-1/+1
| | | | llvm-svn: 72655
* Add lvalue irgen support for CXXBindTemporaryExpr.Anders Carlsson2009-05-301-1/+0
| | | | llvm-svn: 72649
* More temporary support.Anders Carlsson2009-05-301-4/+25
| | | | llvm-svn: 72648
* Remove VarDecl from CXXConstructExpr.Anders Carlsson2009-05-301-11/+3
| | | | llvm-svn: 72633
* Fixup the rest of the trivial cases of the codegen of volatile. IfMike Stump2009-05-291-1/+2
| | | | | | | any body can spot codegen bugs with volatile, or knows of any in the bug database, let me know. llvm-svn: 72572
* PR4281: Fix bogus CodeGen assertion. The issue is that Eli Friedman2009-05-281-8/+5
| | | | | | | getUnqualifiedType() doesn't strip off all qualifiers for non-canonical types. llvm-svn: 72552
OpenPOWER on IntegriCloud