From b0d5be563b65ac06ff8b470a6069edd711233136 Mon Sep 17 00:00:00 2001 From: Logan Chien Date: Sat, 14 Dec 2013 06:45:09 +0000 Subject: [PATCH] Fix GCC unknown pragma warning in libc++. We should check defined(__clang__) before the usage of the clang diagnostic pragmas. The [-Wswitch] warning in src/future.cpp should be ignored. As the result, the equivalent GCC pragma is added. llvm-svn: 197314 --- libcxx/src/future.cpp | 9 +++++++++ libcxx/src/regex.cpp | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/libcxx/src/future.cpp b/libcxx/src/future.cpp index 70919ab7df84..c67dc58826e8 100644 --- a/libcxx/src/future.cpp +++ b/libcxx/src/future.cpp @@ -26,8 +26,13 @@ __future_error_category::name() const _NOEXCEPT return "future"; } +#if defined(__clang__) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wswitch" +#elif defined(__GNUC__) || defined(__GNUG__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wswitch" +#endif string __future_error_category::message(int ev) const @@ -50,7 +55,11 @@ __future_error_category::message(int ev) const return string("unspecified future_errc value\n"); } +#if defined(__clang__) #pragma clang diagnostic pop +#elif defined(__GNUC__) || defined(__GNUG__) +#pragma GCC diagnostic pop +#endif const error_category& future_category() _NOEXCEPT diff --git a/libcxx/src/regex.cpp b/libcxx/src/regex.cpp index e3ec2810c774..fb820e2bfedc 100644 --- a/libcxx/src/regex.cpp +++ b/libcxx/src/regex.cpp @@ -69,8 +69,10 @@ regex_error::~regex_error() throw() {} namespace { +#if defined(__clang__) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wpadded" +#endif struct collationnames { @@ -78,7 +80,9 @@ struct collationnames char char_; }; +#if defined(__clang__) #pragma clang diagnostic pop +#endif const collationnames collatenames[] = { @@ -195,8 +199,10 @@ const collationnames collatenames[] = {"zero", 0x30} }; +#if defined(__clang__) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wpadded" +#endif struct classnames { @@ -204,7 +210,9 @@ struct classnames ctype_base::mask mask_; }; +#if defined(__clang__) #pragma clang diagnostic pop +#endif const classnames ClassNames[] = {