http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60689
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-03-27 CC| |rth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- #ifndef N #define N 9 #endif struct S { char a[N]; }; int main() { S a, b, c; __atomic_exchange(&a, &b, &c, __ATOMIC_SEQ_CST); } $ g++ -std=c++11 aa.cc -DN=8 $ g++ -std=c++11 aa.cc aa.cc: In function ‘int main()’: aa.cc:10:49: error: invalid conversion from ‘S*’ to ‘long unsigned int’ [-fpermissive] __atomic_exchange(&a, &b, &c, __ATOMIC_SEQ_CST); ^ aa.cc:10:49: error: invalid conversion from ‘int’ to ‘void*’ [-fpermissive] aa.cc:10:49: error: too few arguments to function ‘void __atomic_exchange(long unsigned int, volatile void*, void*, void*, int)’ <built-in>: note: declared here