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

Reply via email to