| Index: nss/lib/util/verref.h
|
| diff --git a/nss/lib/util/verref.h b/nss/lib/util/verref.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2d141bb5ca7cd0c0aa3b6e77f5066e3b51ca848b
|
| --- /dev/null
|
| +++ b/nss/lib/util/verref.h
|
| @@ -0,0 +1,40 @@
|
| +/* 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[];
|
| + 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
|
|
|