On Thu, Sep 29, 2011 at 11:26, Ollie Wild <a...@google.com> wrote:
> On Thu, Sep 29, 2011 at 10:13 AM, Delesley Hutchins <deles...@google.com> 
> wrote:
>>
>> Unfortunately, DECL_CLONED_FUNCTION_P is not actually a predicate that 
>> allows you
>> to call DECL_CLONED_FUNCTION safely.  Look at the definition of the macros; 
>> despite
>> what the comments say, DECL_CLONED_FUNCTION_P may return true in cases where
>> DECL_CLONED_FUNCTION will still crash.  The correct fix is to fix the 
>> macros, but I
>> have no understanding of what they are actually doing.  :-(
>>   -DeLesley
>
> Diego, can you comment?

Really?  That's surprising.  I would certainly expect
DECL_CLONED_FUNCTION_P to be exactly the right predicate to guard
DECL_CLONED_FUNCTION with.  That's how it's used elsewhere.

Delesley, can you give more details on when DECL_CLONED_FUNCTION_P
fails?  Changing that predicate with:

              if (DECL_CLONED_FUNCTION_P (clone)
                  && DECL_CLONED_FUNCTION (clone) == decl)

should be all you need.  If that's not working, then send me the test
case, cause I'll be confused :)


Diego.

Reply via email to