[cfe-dev] Issue with designated initializers and vectors

Mattias Holm holm at liacs.nl
Sat Jun 13 02:58:38 PDT 2009

The following code fails in clang:

typedef float __attribute__((vector_size (16))) v4f_t;

typedef union {
     struct {
         float x, y, z, w;
     v4f_t v;
} vector_t;

vector_t foo(v4f_t p)
   vector_t v = {.v = p};
   return v;

europa:test holm$ clang -std=gnu99 -c test.c
test.c:13:22: error: incompatible type initializing 'v4f_t', expected 
   vector_t v = {.v = p};

I might be missing options to make this work, if so what flags should I 
add to clang (I want to support clang in my makefiles for my project as 
an optional compiler). The code builds fine with gcc and the same options.


More information about the cfe-dev mailing list