RFC: redundant stores in C++

Andrew Pinski pinskia@physics.uc.edu
Sun Oct 2 03:04:00 GMT 2005


On Oct 1, 2005, at 5:54 PM, Dale Johannesen wrote:

> In C++, when we have an automatic array with variable initializers:
>
> void bar(char[4]);
> void foo(char a, char b, char c, char d) {
>   char x[4] = { a, b, c, d };
>   bar(x);
> }
>
> Testsuite passes with this but I can believe improvements are 
> possible; comments?

I don't think this will work for the following code:

void foo(char a, char b) {
   char x[4] = { a, b } ;
   if (x[3] != 0)
    abort ();
}

But better fix would be not call split_nonconstant_init_1 for
local decls and have the front-end produce a CONSTRUCTOR which is
just like what the C front-end produces.

-- Pinski



More information about the Gcc mailing list