Skip to content
  1. Sep 29, 2009
  2. Sep 25, 2009
  3. Sep 22, 2009
  4. Sep 14, 2009
  5. Sep 11, 2009
  6. Sep 09, 2009
  7. Aug 29, 2009
  8. Aug 27, 2009
  9. Aug 24, 2009
  10. Aug 17, 2009
  11. Aug 15, 2009
    • Eli Friedman's avatar
      Fix for PR4721: adjust CodeGen and ASTContext so that we have a · 04fddf0d
      Eli Friedman authored
      consistent model for handling size expressions for VLAs.
      
      The model is essentially as follows: VLA types own their associated
      expression.  In some cases, we need to create multiple VLA types to 
      represent a given VLA (for canonical types, or qualifiers on array types,
      or type merging).  If we need to create multiple types based off of 
      the same VLA declaration, we use the new refcounting functionality so they can 
      all own the expression. The VLASizeMap in CodeGenFunction then uses the size
      expression to identify the group of VLA types based off of the same original
      declaration.
      
      I'm not particularly attached to the VLA types owning the expression, 
      but we're stuck with at least until someone comes up with a way 
      to walk the VLA expressions for a declaration.
      
      I did the parallel fix in ASTContext for DependentSizedArrayType, but I 
      haven't really looked closely at it, so there might still be issues 
      there.
      
      I'll clean up the code duplication in ASTContext in a followup commit.
      
      llvm-svn: 79071
      04fddf0d
    • Chris Lattner's avatar
      minor cleanups for VLA stuff. · 8dc7626f
      Chris Lattner authored
      llvm-svn: 79059
      8dc7626f
  12. Aug 13, 2009
  13. Aug 12, 2009
  14. Aug 10, 2009
  15. Aug 09, 2009
  16. Aug 08, 2009
  17. Aug 07, 2009
  18. Jul 31, 2009
  19. Jul 30, 2009
  20. Jul 29, 2009
    • Ted Kremenek's avatar
      Change uses of: · c23c7e6a
      Ted Kremenek authored
        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
      c23c7e6a
  21. Jul 25, 2009
  22. Jul 23, 2009
  23. Jul 21, 2009
  24. Jul 20, 2009
  25. Jul 19, 2009
  26. Jul 17, 2009
  27. Jul 16, 2009
    • Ted Kremenek's avatar
      Add member template 'Type::getAs<T>', which converts a Type* to a respective T*. · e3fb4b65
      Ted Kremenek authored
      This method is intended to eventually replace the individual
      Type::getAsXXXType<> methods.
      
      The motivation behind this change is twofold:
      
      1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of
      them are basically copy-and-paste.
      
      2) By centralizing the implementation of the getAs<Type> logic we can more
      smoothly move over to Doug Gregor's proposed canonical type smart pointer
      scheme.
      
      Along with this patch:
      
      a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>.
      b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>.
      
      llvm-svn: 76098
      e3fb4b65
  28. Jul 15, 2009
Loading