> 
> > Well, it's written to only in this testcase.  Can you post a more complete
> > one?
> 
> Here's the complete testcase.
> 
> int g(_Complex int*);
> int f(void)
> {
>   _Complex int t = 0;
>  __real__ t = 2;
>  __imag__ t = 2;
>   return g(&t);
> }

Yes but that should not matter always as this is going to the
same issue with a struct assignment like:

struct a
{
  int t;
  int t1;
};

int g(struct a*);
int f(void)
{
  struct a t = {};
  t.t = 1;
  t.t1 = 2;
  reutrn g(&t);
}


You will noticed that we get {} in there with a VMUST_DEF (I hope).

So really this testcase is not really useful in general except for
losing a slight missed optimization on the tree level.  I can construct
a testcase that exposes the compile time issues with complex variables
just as well as I could with structs which is what Richard G.'s patch
was trying to fix.

So I think this is the wrong approach to just disable this for one
type only.

-- Pinski

Reply via email to