> > > 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