[Prev][Next][Index]

Re: pc++ / printf problem



Bernd wrote:
>and here is the part of temp.C:
>
>    30  int  pcxx_printf17(char *pCar_0,  pCar_1){
>    31        if ((pcxx_NodeNumber() == 0) || pcxx_inpar)
>    32        {
>    33           printf(pCar_0, pCar_1);
>    34         }
>    35         return 1;
>    36   }

Hmm, when I tried this for the following input:

Processor_Main(){
  unsigned int i;
  printf ("i = %d\n", i);
  } 

 

 I at least got this much:

int  pcxx_printf1(char *pCar_0, int pCar_1){
      if ((pcxx_NodeNumber() == 0) || pcxx_inpar) 

      {
         printf(pCar_0, pCar_1);
       }
       return 1;

Notice the "int" in front of pCar_1. If you did not, that means there  
is something funny going on that I do not understand. 

Could you send me the input that goes with that temp.C?

Anyway, I've made a small change to a function called  
"makereducedType" (which, for some reason, is in sgCallGraph.C, but  
it looks like it is only used in dep2C++) that should keep specifiers  
such as long, short, unsigned, and signed in the type of a parameter. 

I have CVSed that change although I am far from being sure that this  
will not break anything. Could you please give it a try and see if it  
fixes your problem (it is not obvious to me that it will, because  
what you get and what I get seem to differ).
 

Also, if something breaks please let me know ASAP and I'll remove the  
change.
               --Beata