diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2014-01-07 19:21:13 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2014-01-07 19:21:13 +0000 |
commit | 70d4ba7f19a920087c1201a68a997f54bb878894 (patch) | |
tree | 4a9633a28446883d48f129c77aa8d067920585b0 /libcxx/src/stdexcept.cpp | |
parent | a872e0e0a6e8e60273ae5f3234ce9ba6153b28bd (diff) | |
download | llvm-70d4ba7f19a920087c1201a68a997f54bb878894.zip llvm-70d4ba7f19a920087c1201a68a997f54bb878894.tar.gz llvm-70d4ba7f19a920087c1201a68a997f54bb878894.tar.bz2 |
Replace casts of __impl_ with the correct reinterpret_cast of the
address. Restores the assembly of before r198504.
llvm-svn: 198698
Diffstat (limited to 'libcxx/src/stdexcept.cpp')
-rw-r--r-- | libcxx/src/stdexcept.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/libcxx/src/stdexcept.cpp b/libcxx/src/stdexcept.cpp index acc938c..01b66e4 100644 --- a/libcxx/src/stdexcept.cpp +++ b/libcxx/src/stdexcept.cpp @@ -102,28 +102,28 @@ namespace std // purposefully not using versioning namespace logic_error::logic_error(const string& msg) { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); + __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_); ::new(s) __libcpp_nmstr(msg.c_str()); } logic_error::logic_error(const char* msg) { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); + __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_); ::new(s) __libcpp_nmstr(msg); } logic_error::logic_error(const logic_error& le) _NOEXCEPT { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); - const __libcpp_nmstr *s2 = static_cast<const __libcpp_nmstr *>(le.__imp_); + __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_); + const __libcpp_nmstr *s2 = reinterpret_cast<const __libcpp_nmstr *>(&le.__imp_); ::new(s) __libcpp_nmstr(*s2); } logic_error& logic_error::operator=(const logic_error& le) _NOEXCEPT { - __libcpp_nmstr *s1 = static_cast<__libcpp_nmstr *>(__imp_); - const __libcpp_nmstr *s2 = static_cast<const __libcpp_nmstr *>(le.__imp_); + __libcpp_nmstr *s1 = reinterpret_cast<__libcpp_nmstr *>(&__imp_); + const __libcpp_nmstr *s2 = reinterpret_cast<const __libcpp_nmstr *>(&le.__imp_); *s1 = *s2; return *this; } @@ -132,14 +132,14 @@ logic_error::operator=(const logic_error& le) _NOEXCEPT logic_error::~logic_error() _NOEXCEPT { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); + __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_); s->~__libcpp_nmstr(); } const char* logic_error::what() const _NOEXCEPT { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); + const __libcpp_nmstr *s = reinterpret_cast<const __libcpp_nmstr *>(&__imp_); return s->c_str(); } @@ -147,28 +147,28 @@ logic_error::what() const _NOEXCEPT runtime_error::runtime_error(const string& msg) { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); + __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_); ::new(s) __libcpp_nmstr(msg.c_str()); } runtime_error::runtime_error(const char* msg) { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); + __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_); ::new(s) __libcpp_nmstr(msg); } runtime_error::runtime_error(const runtime_error& le) _NOEXCEPT { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); - const __libcpp_nmstr *s2 = static_cast<const __libcpp_nmstr *>(le.__imp_); + __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_); + const __libcpp_nmstr *s2 = reinterpret_cast<const __libcpp_nmstr *>(&le.__imp_); ::new(s) __libcpp_nmstr(*s2); } runtime_error& runtime_error::operator=(const runtime_error& le) _NOEXCEPT { - __libcpp_nmstr *s1 = static_cast<__libcpp_nmstr *>(__imp_); - const __libcpp_nmstr *s2 = static_cast<const __libcpp_nmstr *>(le.__imp_); + __libcpp_nmstr *s1 = reinterpret_cast<__libcpp_nmstr *>(&__imp_); + const __libcpp_nmstr *s2 = reinterpret_cast<const __libcpp_nmstr *>(&le.__imp_); *s1 = *s2; return *this; } @@ -177,14 +177,14 @@ runtime_error::operator=(const runtime_error& le) _NOEXCEPT runtime_error::~runtime_error() _NOEXCEPT { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); + __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_); s->~__libcpp_nmstr(); } const char* runtime_error::what() const _NOEXCEPT { - __libcpp_nmstr *s = static_cast<__libcpp_nmstr *>(__imp_); + const __libcpp_nmstr *s = reinterpret_cast<const __libcpp_nmstr *>(&__imp_); return s->c_str(); } |