Build fix for gcc builtin

The __sync_add_and_fetch() builtin parameter is volatile but clang has
'different' type checking and ends up accepting this code.

Undo the C++ cast from r198505 to get libc++/LLVM building with g++ while this
is investigated.

llvm-svn: 199494
This commit is contained in:
Alp Toker 2014-01-17 14:24:23 +00:00
parent 9342557ea7
commit 0b438a9f63
1 changed files with 1 additions and 1 deletions

View File

@ -79,7 +79,7 @@ __libcpp_nmstr::operator=(const __libcpp_nmstr& s) _NOEXCEPT
const char* p = str_;
str_ = s.str_;
__sync_add_and_fetch(&count(), 1);
if (__sync_add_and_fetch(reinterpret_cast<const count_t*>(p-sizeof(count_t)), count_t(-1)) < 0)
if (__sync_add_and_fetch((count_t*)(p-sizeof(count_t)), count_t(-1)) < 0)
delete [] (p-offset);
return *this;
}