diff options
| author | Howard Hinnant <hhinnant@apple.com> | 2012-05-31 19:31:14 +0000 |
|---|---|---|
| committer | Howard Hinnant <hhinnant@apple.com> | 2012-05-31 19:31:14 +0000 |
| commit | bf33f5b292e1ad87aa3c6a47d8301b96f340fcc4 (patch) | |
| tree | 430fce6af91cfb45f932230f906486adb6f79281 | |
| parent | f4f486f7323651af00961183bed945deb228819c (diff) | |
| download | bcm5719-llvm-bf33f5b292e1ad87aa3c6a47d8301b96f340fcc4.tar.gz bcm5719-llvm-bf33f5b292e1ad87aa3c6a47d8301b96f340fcc4.zip | |
Protect use of alignas against older versions of clang
llvm-svn: 157764
| -rw-r--r-- | libcxx/include/__config | 2 | ||||
| -rw-r--r-- | libcxx/src/iostream.cpp | 28 |
2 files changed, 16 insertions, 14 deletions
diff --git a/libcxx/include/__config b/libcxx/include/__config index 7cd01dc1b55..c104a3f5cf7 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -145,8 +145,10 @@ #if defined(__clang__) #if __has_feature(cxx_alignas) +# define _ALIGNAS_TYPE(x) alignas(x) # define _ALIGNAS(x) alignas(x) #else +# define _ALIGNAS_TYPE(x) __attribute__((__aligned__)) # define _ALIGNAS(x) __attribute__((__aligned__(x))) #endif diff --git a/libcxx/src/iostream.cpp b/libcxx/src/iostream.cpp index bfb1bfb85e3..f5b959b4bb9 100644 --- a/libcxx/src/iostream.cpp +++ b/libcxx/src/iostream.cpp @@ -13,21 +13,21 @@ _LIBCPP_BEGIN_NAMESPACE_STD -alignas (__stdinbuf<char> ) static char __cin [sizeof(__stdinbuf <char>)]; -alignas (__stdoutbuf<char>) static char __cout[sizeof(__stdoutbuf<char>)]; -alignas (__stdoutbuf<char>) static char __cerr[sizeof(__stdoutbuf<char>)]; -alignas (__stdinbuf<wchar_t> ) static char __wcin [sizeof(__stdinbuf <wchar_t>)]; -alignas (__stdoutbuf<wchar_t>) static char __wcout[sizeof(__stdoutbuf<wchar_t>)]; -alignas (__stdoutbuf<wchar_t>) static char __wcerr[sizeof(__stdoutbuf<wchar_t>)]; +_ALIGNAS_TYPE (__stdinbuf<char> ) static char __cin [sizeof(__stdinbuf <char>)]; +_ALIGNAS_TYPE (__stdoutbuf<char>) static char __cout[sizeof(__stdoutbuf<char>)]; +_ALIGNAS_TYPE (__stdoutbuf<char>) static char __cerr[sizeof(__stdoutbuf<char>)]; +_ALIGNAS_TYPE (__stdinbuf<wchar_t> ) static char __wcin [sizeof(__stdinbuf <wchar_t>)]; +_ALIGNAS_TYPE (__stdoutbuf<wchar_t>) static char __wcout[sizeof(__stdoutbuf<wchar_t>)]; +_ALIGNAS_TYPE (__stdoutbuf<wchar_t>) static char __wcerr[sizeof(__stdoutbuf<wchar_t>)]; -alignas (istream) char cin [sizeof(istream)]; -alignas (ostream) char cout[sizeof(ostream)]; -alignas (ostream) char cerr[sizeof(ostream)]; -alignas (ostream) char clog[sizeof(ostream)]; -alignas (wistream) char wcin [sizeof(wistream)]; -alignas (wostream) char wcout[sizeof(wostream)]; -alignas (wostream) char wcerr[sizeof(wostream)]; -alignas (wostream) char wclog[sizeof(wostream)]; +_ALIGNAS_TYPE (istream) char cin [sizeof(istream)]; +_ALIGNAS_TYPE (ostream) char cout[sizeof(ostream)]; +_ALIGNAS_TYPE (ostream) char cerr[sizeof(ostream)]; +_ALIGNAS_TYPE (ostream) char clog[sizeof(ostream)]; +_ALIGNAS_TYPE (wistream) char wcin [sizeof(wistream)]; +_ALIGNAS_TYPE (wostream) char wcout[sizeof(wostream)]; +_ALIGNAS_TYPE (wostream) char wcerr[sizeof(wostream)]; +_ALIGNAS_TYPE (wostream) char wclog[sizeof(wostream)]; ios_base::Init __start_std_streams; |

