Commit Graph

141 Commits

Author SHA1 Message Date
Anders Carlsson 39e3eb12ae When building constant structs, check if the resulting LLVM struct will be bigger than the record layout size and use a packed struct if that's the case. Fixes PR5108.
llvm-svn: 83230
2009-10-02 02:15:20 +00:00
Anders Carlsson b05a3e551b Improve support for member function pointers.
llvm-svn: 83039
2009-09-29 02:09:01 +00:00
Nick Lewycky 41eaf0ac57 Make clang stop relying on ConstantStruct::get's default value for isPacked
which will be going away (ie. it's becoming a required parameter) later today.

llvm-svn: 82323
2009-09-19 20:00:52 +00:00
Anders Carlsson ecf9bf0158 GlobalDecl doesn't have an explicit constructor anymore.
llvm-svn: 81481
2009-09-10 23:43:36 +00:00
Mike Stump 11289f4280 Remove tabs, and whitespace cleanups.
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Eli Friedman 95f896380f Make address-space qualification work correctly for compound literals.
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-26 20:01:39 +00:00
Anders Carlsson 867b48f713 More member pointer work.
llvm-svn: 79922
2009-08-24 17:16:23 +00:00
Anders Carlsson 622ddae92b Whoops, comment this out for now. I'll fix it shortly.
llvm-svn: 79806
2009-08-23 01:28:08 +00:00
Anders Carlsson d606de72ab More work towards zero-initializing structs that contain member pointers in constant expressions.
llvm-svn: 79805
2009-08-23 01:25:01 +00:00
Anders Carlsson faeccc622f Handle CK_NullToMemberPointer casts in the constant expr emitter.
llvm-svn: 79790
2009-08-23 00:02:11 +00:00
Anders Carlsson 3b0c5dcdd2 Change the constant expression emitter to look at the cast kind for to-union casts.
llvm-svn: 79789
2009-08-22 23:54:44 +00:00
Owen Anderson 41a750271b Update for LLVM API change.
llvm-svn: 78946
2009-08-13 21:57:51 +00:00
Anders Carlsson f48123b413 Improve handling of member pointers.
llvm-svn: 78536
2009-08-09 18:26:27 +00:00
Daniel Dunbar f1ad6b7064 Fix clang breakage, CGF can be null in this context.
llvm-svn: 78269
2009-08-06 01:24:27 +00:00
Owen Anderson 758428f4e3 Update for LLVM API change.
llvm-svn: 78259
2009-08-05 23:18:46 +00:00
Anders Carlsson f18318cf4e use CodeGenModule::EmitNullConstant in a couple of places.
llvm-svn: 77915
2009-08-02 21:18:22 +00:00
Eli Friedman 62561fe9b0 Fix a minor issue with unions in the new struct building code.
llvm-svn: 77829
2009-08-01 23:11:24 +00:00
Anders Carlsson 1726aaa4fc Remove the old struct builder code.
llvm-svn: 77738
2009-07-31 21:48:56 +00:00
Anders Carlsson d65ab045e8 Move code from EmitUnion directly into the function that handles cast-to-union.
llvm-svn: 77735
2009-07-31 21:38:39 +00:00
Anders Carlsson 0d5f37b81a Use the struct builder for unions.
llvm-svn: 77732
2009-07-31 21:34:04 +00:00
Owen Anderson 0b75f23b94 Update for LLVM API change.
llvm-svn: 77722
2009-07-31 20:28:54 +00:00
Owen Anderson 9793f0e4d7 Update for LLVM API change.
llvm-svn: 77514
2009-07-29 22:16:19 +00:00
Ted Kremenek c23c7e6a51 Change uses of:
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-29 21:53:49 +00:00
Owen Anderson ade90fd1ba Update for LLVM API change.
llvm-svn: 77492
2009-07-29 18:54:39 +00:00
Owen Anderson 3cc120a51e Update for LLVM API change.
llvm-svn: 77368
2009-07-28 21:22:35 +00:00