summaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CGExprConstant.cpp
AgeCommit message (Collapse)Author
2009-10-18Use CK_BitCast for member function pointer casts. Fixes PR5138.Anders Carlsson
llvm-svn: 84438
2009-10-13fix test/CodeGen/statements.c on 32-bit hosts.Chris Lattner
llvm-svn: 84039
2009-10-13Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer
llvm-svn: 83964
2009-10-13Teach sema and codegen about the difference between address of labels,Chris Lattner
which is a common idiom to improve PIC'ness of code using the addr of label extension. This implementation is a gross hack, but the only other alternative would be to teach evalutate about this horrid combination. While GCC allows things like "&&foo - &&bar + 1", people don't use this in practice. This implements PR5131. llvm-svn: 83957
2009-10-11Move the vtable builder to CGVtable.cpp, general cleanup.Anders Carlsson
llvm-svn: 83798
2009-10-03Pass the canonical method decl to GetVtableIndex. Fixes PR5120.Anders Carlsson
llvm-svn: 83272
2009-10-03Handle base-to-derived casts of member function pointers in CGExprConstant.cppAnders Carlsson
llvm-svn: 83265
2009-10-03Handle members to function pointers in CGExprConstant.Anders Carlsson
llvm-svn: 83264
2009-10-02Don't update the struct alignment when adding fields to a packed struct. ↵Anders Carlsson
Fixes PR5118. llvm-svn: 83235
2009-10-02When building constant structs, check if the resulting LLVM struct will be ↵Anders Carlsson
bigger than the record layout size and use a packed struct if that's the case. Fixes PR5108. llvm-svn: 83230
2009-09-29Improve support for member function pointers.Anders Carlsson
llvm-svn: 83039
2009-09-19Make clang stop relying on ConstantStruct::get's default value for isPackedNick Lewycky
which will be going away (ie. it's becoming a required parameter) later today. llvm-svn: 82323
2009-09-10GlobalDecl doesn't have an explicit constructor anymore.Anders Carlsson
llvm-svn: 81481
2009-09-09Remove tabs, and whitespace cleanups.Mike Stump
llvm-svn: 81346
2009-08-26Make address-space qualification work correctly for compound literals. Eli Friedman
Issue reported on cfe-dev. Also fixed the code to use isConstant to determine whether to generate a constant global, to be consistent with CodeGenModule. This probably needs to be refactored to deal with C++, though. llvm-svn: 80131
2009-08-24More member pointer work.Anders Carlsson
llvm-svn: 79922
2009-08-23Whoops, comment this out for now. I'll fix it shortly.Anders Carlsson
llvm-svn: 79806
2009-08-23More work towards zero-initializing structs that contain member pointers in ↵Anders Carlsson
constant expressions. llvm-svn: 79805
2009-08-23Handle CK_NullToMemberPointer casts in the constant expr emitter.Anders Carlsson
llvm-svn: 79790
2009-08-22Change the constant expression emitter to look at the cast kind for to-union ↵Anders Carlsson
casts. llvm-svn: 79789
2009-08-13Update for LLVM API change.Owen Anderson
llvm-svn: 78946
2009-08-09Improve handling of member pointers.Anders Carlsson
llvm-svn: 78536
2009-08-06Fix clang breakage, CGF can be null in this context.Daniel Dunbar
llvm-svn: 78269
2009-08-05Update for LLVM API change.Owen Anderson
llvm-svn: 78259
2009-08-02use CodeGenModule::EmitNullConstant in a couple of places.Anders Carlsson
llvm-svn: 77915
2009-08-01Fix a minor issue with unions in the new struct building code.Eli Friedman
llvm-svn: 77829
2009-07-31Remove the old struct builder code.Anders Carlsson
llvm-svn: 77738
2009-07-31Move code from EmitUnion directly into the function that handles cast-to-union.Anders Carlsson
llvm-svn: 77735
2009-07-31Use the struct builder for unions.Anders Carlsson
llvm-svn: 77732
2009-07-31Update for LLVM API change.Owen Anderson
llvm-svn: 77722
2009-07-29Update for LLVM API change.Owen Anderson
llvm-svn: 77514
2009-07-29Change uses of:Ted Kremenek
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
2009-07-29Update for LLVM API change.Owen Anderson
llvm-svn: 77492
2009-07-28Update for LLVM API change.Owen Anderson
llvm-svn: 77368
2009-07-28Update for LLVM API change.Owen Anderson
llvm-svn: 77349
2009-07-27Update for LLVM API change.Owen Anderson
llvm-svn: 77267
2009-07-27Update for LLVM API change.Owen Anderson
llvm-svn: 77249
2009-07-27Enable the new constant struct builder by default. The old code is still in ↵Anders Carlsson
place but will be removed shortly. The new struct builder works on big endian systems. llvm-svn: 77185
2009-07-27More work on the constant struct builder, fix a couple of thinkos and add ↵Anders Carlsson
support for inserting part of a bitfield in the previous byte. llvm-svn: 77180
2009-07-27More work on bitfield support in the new constant struct builder.Anders Carlsson
llvm-svn: 77177
2009-07-25More work on the constant struct builder. We can now convert the struct to a ↵Anders Carlsson
packed struct when necessary. llvm-svn: 77038
2009-07-25More work on the constant struct builder. We now try to layout all constant ↵Anders Carlsson
structs but throw away the result. llvm-svn: 77021
2009-07-24Update for LLVM API change.Owen Anderson
llvm-svn: 77012
2009-07-24Fix a release build warning.Anders Carlsson
llvm-svn: 76985
2009-07-24Check in a half finished new constant struct builder (Obviously not used yet).Anders Carlsson
llvm-svn: 76969
2009-07-23Move the LLVM field number for bit fields into the BitFieldInfo structure, ↵Anders Carlsson
since it's meaning is completely different than for non-bit fields. llvm-svn: 76882
2009-07-23Use arrays as union padding. Also, since the resulting struct will always ↵Anders Carlsson
contain a single element and either a single i8 element or an array of i8s, there's no reason to use a packed struct. llvm-svn: 76854
2009-07-17Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methodsTed Kremenek
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
2009-07-17Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), ↵Ted Kremenek
Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents. llvm-svn: 76139
2009-07-14Update for LLVM API change, and contextify a bunch of related stuff.Owen Anderson
llvm-svn: 75705