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