------- Comment #1 from jakub at gcc dot gnu dot org 2009-08-19 17:42 ------- Since PR6177 that part of expand_expr* at least handles whole CONCAT, but as can be seen on this testcase, since VCE can be used, it should be probably handled fully. On this testcase it could be handled just by giving one part of the CONCAT, but e.g. on: typedef struct { char a, b, c, d, e, f, g, h; } F;
F foo (float _Complex x) { return *(F *) &x; } int bar (float _Complex x) { F f = foo (x); return f.b; } I'm afraid it just needs to store it into memory. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41123