http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56111
Bug #: 56111 Summary: {float,double} complex not accepted by g++-4.8 anymore Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: jtaylor.deb...@gmail.com the C99 float and double complex is not accepted by g++ 4.8 r195467 anymore in c++98 or c++11. Even though its technically not part of c++98 it worked in all gcc versions I ever used. Is this change intentional? It will break the compilation of a bunch of scientific c++ software using C libraries. $ cat test.c #include <complex.h> int testing(float complex a); int main() { float complex a = 1; return testing(a); } $ gcc-4.7 test.c -c $ gcc-4.8 test.c -c $ g++-4.7 test.c -c $ g++-4.8 test.c -c test.c:2:27: error: expected ',' or '...' before 'a' int testing(float complex a); ^ test.c: In function 'int main()': test.c:6:15: error: expected initializer before 'a' float complex a = 1; ^ test.c:7:16: error: 'a' was not declared in this scope return testing(a); ^ $ g++-4.8 -std=c++98 test.c -c test.c:2:27: error: expected ',' or '...' before 'a' int testing(float complex a); ^ test.c: In function 'int main()': test.c:6:15: error: expected initializer before 'a' float complex a = 1; ^ test.c:7:16: error: 'a' was not declared in this scope return testing(a); ^ $ g++-4.8 --version g$-4.8 (Debian 4.8-20130123-1) 4.8.0 20130123 (experimental) [trunk revision 195400] Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. also reproduced with svn trunk r195467 built on a fedora 11 machine. using ccomplex and -std=c++11 does not work either.