https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101401
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is some more: ``` void f1 () { char c8[8]; for(int i = 0;i < 8;i ++) { c8[i] = i < 4 ? ('a'+i) : 0; } if (__builtin_strlen (&c8[0]) != 4) __builtin_abort (); } void g1 (void) { __attribute__ ((vector_size (8))) char c8 = { 1, 2, 3 }; char *t = (char*)&c8; if (__builtin_strlen (t) != 3) __builtin_abort (); } ``` So it looks like strlen pass understands VECTOR_CST just fine (f1 is handled just fine). just not `vector char` types as an array I think.