OLD | NEW |
| (Empty) |
1 /* This Source Code Form is subject to the terms of the Mozilla Public | |
2 * License, v. 2.0. If a copy of the MPL was not distributed with this | |
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
4 | |
5 /* This header is used inline in a function to ensure that a version string | |
6 * symbol is linked in and not optimized out. A volatile reference is added to | |
7 * the variable identified by NSS_VERSION_VARIABLE. | |
8 * | |
9 * Use this as follows: | |
10 * | |
11 * #define NSS_VERSION_VARIABLE __nss_ssl_version | |
12 * #include "verref.h" | |
13 */ | |
14 | |
15 /* Suppress unused variable warnings. */ | |
16 #ifdef _MSC_VER | |
17 #pragma warning(push) | |
18 #pragma warning(disable: 4101) | |
19 #endif | |
20 /* This works for both gcc and clang */ | |
21 #if defined(__GNUC__) && !defined(NSS_NO_GCC48) | |
22 #pragma GCC diagnostic push | |
23 #pragma GCC diagnostic ignored "-Wunused-variable" | |
24 #endif | |
25 | |
26 #ifndef NSS_VERSION_VARIABLE | |
27 #error NSS_VERSION_VARIABLE must be set before including "verref.h" | |
28 #endif | |
29 { | |
30 extern const char NSS_VERSION_VARIABLE[]; | |
31 volatile const char _nss_version_c = NSS_VERSION_VARIABLE[0]; | |
32 } | |
33 #undef NSS_VERSION_VARIABLE | |
34 | |
35 #ifdef _MSC_VER | |
36 #pragma warning(pop) | |
37 #endif | |
38 #if defined(__GNUC__) && !defined(NSS_NO_GCC48) | |
39 #pragma GCC diagnostic pop | |
40 #endif | |
OLD | NEW |