[llvm-commits] [llvm] r95266 - in /llvm/trunk:	lib/Transforms/InstCombine/InstCombineCalls.cpp	test/Transforms/InstCombine/objsize.ll
    Eric Christopher 
    echristo at apple.com
       
    Thu Feb  4 07:55:53 PST 2010
    
    
  
On Feb 4, 2010, at 1:35 AM, Duncan Sands wrote:
> Hi Eric,
> 
>> If we're dealing with a zero-length array, don't lower to any
>> particular size, we just don't know what the length is yet.
> 
> ...
> 
>> + at window = external global [0 x i8]
> 
> I think this is wrong - the problem isn't due to a zero length array, it's
> due to the global being a declaration rather than a definition (i.e. not having
> an initializer).  The type of a declaration doesn't tell you anything about the
> size of the actual object (which is defined in some other object file).   For
> example, suppose this was:
> 
>  @window = external global i32
> 
> and then in some other file you have the definition:
> 
>  @window = global i8 0
> 
> This is perfectly legal, and shows that trying to determine the "object size"
> based only on a declaration is hopeless.
Yep. See next patch (that unfortunately I've reverted at the moment.
-eric
    
    
More information about the llvm-commits
mailing list