Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] How to differenciate a call to a function from areferencing its address?

Is it also not possible with AST?
What if F have some arguments? Can I know what actual arguments were
passed to a function?

2008/10/1 Schorn, Markus <Markus.Schorn@xxxxxxxxxxxxx>:
> Currently you cannot tell the difference. If this is important for you,
> please
> raise an enhancement request on bugzilla.
>
> Markus.
>
>> -----Original Message-----
>> From: cdt-dev-bounces@xxxxxxxxxxx
>> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Dmitry Smirnov
>> Sent: Wednesday, October 01, 2008 3:59 PM
>> To: cdt-dev@xxxxxxxxxxx
>> Subject: [cdt-dev] How to differenciate a call to a function
>> from areferencing its address?
>> Importance: Low
>>
>> Hi,
>>
>> Let's assume I have a function F().
>> In the program it can be referenced in this way
>>
>> void B
>> {
>>   void * addr = F; // or &F;
>> }
>>
>> How can I differenciate this from the real call to F() using
>> index or AST?
>>
>> Let's assume I have an IIndexName for B.
>> I can get the list of enclosed names:
>>
>> IIndexName funcB = ...
>> IIndexName[] refs = funcB.getEnclosedNames(); for(IIndexName
>> ref: refs) {
>>   IBinding refBinding = index.findBinding(ref);
>>   if( refBinding instanceof IFunction )
>>   {
>>      // How to know that ref is not call?
>>   }
>> }
>>
>> Dmitry


Back to the top