Yes, I understand that you can write a program that breaks the aliasing rules. However, this is not what this bug report is about.
Your bug report implies that calling fftw from a program that #include's <complex.h> causes a violation of the aliasing rules, because fftw is compiled with fftw_complex = double [2] and the program is compiled with fftw_complex = double _Complex. I contend that no incorrect behavior can possibly occur in this situation, and your example does not contradict my contention. Indeed, each translation unit is itself well typed and has no aliasing violations. We take the liberty across translation-unit boundaries to reinterpret pointers to double _Complex as pointers to double [2], which is legal because the two types are guaranteed to have the same representation. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org