| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| /* This header is used inline in a function to ensure that a version string |
| * symbol is linked in and not optimized out. A volatile reference is added to |
| * the variable identified by NSS_VERSION_VARIABLE. |
| * |
| * Use this as follows: |
| * |
| * #define NSS_VERSION_VARIABLE __nss_ssl_version |
| * #include "verref.h" |
| */ |
| |
| /* Suppress unused variable warnings. */ |
| #ifdef _MSC_VER |
| #pragma warning(push) |
| #pragma warning(disable : 4101) |
| #endif |
| /* This works for both gcc and clang */ |
| #if defined(__GNUC__) && !defined(NSS_NO_GCC48) |
| #pragma GCC diagnostic push |
| #pragma GCC diagnostic ignored "-Wunused-variable" |
| #endif |
| |
| #ifndef NSS_VERSION_VARIABLE |
| #error NSS_VERSION_VARIABLE must be set before including "verref.h" |
| #endif |
| { |
| extern const char NSS_VERSION_VARIABLE[]; |
| #if defined(__GNUC__) |
| __attribute__((unused)) |
| #endif |
| volatile const char _nss_version_c = NSS_VERSION_VARIABLE[0]; |
| } |
| #undef NSS_VERSION_VARIABLE |
| |
| #ifdef _MSC_VER |
| #pragma warning(pop) |
| #endif |
| #if defined(__GNUC__) && !defined(NSS_NO_GCC48) |
| #pragma GCC diagnostic pop |
| #endif |