Skip to content
  • 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
Loading