x86-64, I definitely can't make sense out of that
Dale Johannesen
dalej@apple.com
Sat Feb 4 19:52:00 GMT 2006
On Feb 4, 2006, at 7:06 AM, Andrew Pinski wrote:
>> signs_all[4] = { !(sx > 0), !(sy > 0), !(sz > 0), 0 },
>
>
> C++ front-end produces:
> <<cleanup_point const int signs_all[4] = {0};>>;
> <<cleanup_point signs_all[0] = (int) sx <= 0 >>>;
> <<< Unknown tree: expr_stmt signs_all[1] = (int) sy <= 0 >>>;
> <<< Unknown tree: expr_stmt signs_all[2] = (int) sz <= 0 >>>;
>
> While the C front-end is producing:
> const int signs_all[4] = {(int) sx <= 0, (int) sy <= 0, (int) sz <= 0,
> 0};
>
> Dale Johannesen and I came up with a patch to the C++ front-end
> for this except it did not work with some C++ cases.
Yes, we had it in Apple's branch for a while and had to back it out.
The place to look is split_nonconstant_init in cp/typeck2.c if you want
to try. The tricky part is making sure the entire object is
initialized in all cases when only a partial initializer is specified.
More information about the Gcc
mailing list