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.

Reply via email to