I have regstapped r187893 with the following patch [karma] gcc/darwin_buildw% diff -up ../_gcc_clean/libcpp/lex.c ../work/libcpp/lex.c --- ../_gcc_clean/libcpp/lex.c 2012-05-25 08:54:05.000000000 +0200 +++ ../work/libcpp/lex.c 2012-05-27 13:25:08.000000000 +0200 @@ -592,7 +592,8 @@ search_line_fast (const uchar *s, const union { vc v; - unsigned long l[N]; + /* Statically assert that N is 2 or 4. */ + unsigned long l[(N == 2 || N == 4) ? N : -1]; } u; unsigned long l, i = 0;
without related regression. > You can simply rename the 'l' array to the error you want to output, so you > get an error like: > > error: size of array 'the_vector_size_has_to_be_the_size_of_2_or_4_long' is > negative I am not convinced that will help anyone trying to extend the actual implementation for an altivec platform with N != 2 or 4 (though I seriously doubt that'll append). May be the comment could be made more explicit along the line "Generates "error: size of array 'l' is negative" at compile time if the vector size is not equal to be the size of 2 or 4 long" (feel free to convert Frenglish to native English). Dominique