http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57926

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-07-18
     Ever confirmed|0                           |1
           Severity|major                       |normal

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The test is broken, i should be the same type as Mutex.  This should compile
though:

long Mutex[1];

int AcquireLogMutex(void)
{
    return __atomic_exchange_n(Mutex, 1, __ATOMIC_SEQ_CST);
}

void ReleaseLogMutex(void)
{
    long i = 0;
    __atomic_store(Mutex, &i, __ATOMIC_SEQ_CST);
}


G++ doesn't do the array-to-pointer conversion

There's a simple workaround: just use (long*)Mutex

Reply via email to