This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: lto gimple types and debug info


On Tue, Jul 29, 2008 at 11:20 AM, Paolo Bonzini <bonzini@gnu.org> wrote:
>
>>>>> For that matter, "print sizeof(X)" should print the same value when
>>>>> debugging optimized code as when debugging unoptimized code, even if the
>>>>> compiler has optimized X away to an empty structure!
>>>>
>>>> I disagree.  sizeof(X) in the code will return a value as small as
>>>> possible in that case (so that malloc-ing an array of structures) does not
>>>> waste memory, and the debugger should do the same.
>>
>> I don't think that's a viable option.  The value of sizeof(X) is a
>> compile-time constant, specified by a combination of ISO C and platform ABI
>> rules.  In C++, sizeof(X) can even be used as a (constant) template
>> parameter, way before we get to any optimization.
>
> Then you are right.  This adds another constraint...
You can't work around this.
If you built an AST that included sizeof before doing template
instantiation (which may not even be possible), you could at least
determine whether sizeof was used on a given type other than in a
malloc/new call (which we replace anyway).

Otherwise, you have to have a flag for the optimization which
basically declares it is safe to do it.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]