Daniel Berlin,您好!

    I'am gcc beginner,thank your answer .

        Is it the return Value of GetCallArgOperand function that u given stmt 
tree?

    I pass return value--ops to   function FOR_EACH_SSA_TREE_OPERAND
        FOR_EACH_SSA_TREE_OPERAND (use, ops, iter, SSA_OP_ALL_USES)        {

        }
        
    but ,at runtime ,FOR_EACH_SSA_TREE_OPERAND report internal compiler error: 
in stmt_ann, at tree-flow-inline.h:55  .
        
        what happen? Maybe there is another problem.how to fix it?

        
        Maybe My really problem is How to get stmt tree from a common tree 
value.

======= 2005-07-05 18:40:00 您在来信中写道:=======

>On Tue, 2005-07-05 at 23:18 +0800, alert7 wrote:
>> hi,all
>>      
>>      
>>       I don't know how to get the Nth argument stmt  from CALL_EXPR stmt 
>> tree?
>
>
>assuming TREE_CODE (call) == CALL_EXPR:
>
>GetCallArgOperand(tree call, int i)
>{
>  int j = 0;
>  tree arg;    
>  for (arg = TREE_OPERAND (call, 1); arg; arg = TREE_CHAIN (arg), j++)
>  {
>     if (i == j)
>       return TREE_VALUE (arg);
>
>  }
>}
>
>>
>>        the GetCallArgOperands implement this function that i code ,but it 
>> isn't working :(
>
>You are looking at the arguments the declaration takes, instead of the
>arguments passed to the function.
>Arguments passed to the function are stored in TREE_OPERAND (call, 1),
>as tree.def says.
>
>>
>>        thanks any advice or piece of example code .
>>
>> //////////////////////////////////////////////////////
>>
>>  tree GetCallArgOperands(tree stmt ,int i){
>>  tree func, param, args;
>>  int j = 1;
>>
>>
>>   func = get_callee_fndecl (stmt);
>>
>>   for (param = DECL_ARGUMENTS (func), args = TREE_OPERAND (stmt, 1);
>>         param && args;
>>         param = TREE_CHAIN (param), args = TREE_CHAIN (args))
>>  {
>>        tree arg = TREE_VALUE (args);
>>        if (param != arg)
>>          {
>>              // FIXME:
>>          }
>>        if (j==i)
>>        {
>>                fprintf(stderr,"args ----------\n");
>>                debug_tree(arg);
>>      
>>                return default_def (arg); //FIXME: to stmt tree ?
>>        }
>>      
>>        j++;
>>  }
>>        return NULL_TREE;
>> }
>> /////////////////////////////////////////////////
>>
>>
>>
>>                              
>>
>>         bugs
>> [EMAIL PROTECTED]
>>           2005-07-05
>>
>>

= = = = = = = = = = = = = = = = = = = =
                        

        致
礼!

                                
        alert7
[EMAIL PROTECTED]
          2005-07-06



Reply via email to