Problem compiling with -mx32 flag

Hi
е║
I have a problem with clang and the -mx32 flag. I noticed this problem with corruption on the stack and I narrowed it down to initialising an array thus:
е║

% cat > 0.c
void foo() {
unsigned char bar[20] = { 0 };
}

%clang -m32 -c 0.c
% nm 0.o
00000000е║T foo
U memset

Oh and the sse instructions corrupt the stack

00000000 :
0: 55 push %rbp
1: 89 e5 mov %esp,%ebp
3: 8d 45 e0 lea -0x20(%rbp),%eax
6: 0f 57 c0 xorps %xmm0,%xmm0
9: 67 0f 29 00 movaps %xmm0,(%eax)
d: 67 c7 40 10 00 00 00 movl $0x0,0x10(%eax)
14: 00
15: 5d pop %rbp
16: c3 retq