Coverage Report

Created: 2025-06-11 06:41

/src/boringssl/include/openssl/stack.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef OPENSSL_HEADER_STACK_H
16
#define OPENSSL_HEADER_STACK_H
17
18
#include <openssl/base.h>   // IWYU pragma: export
19
20
#if defined(__cplusplus)
21
extern "C" {
22
#endif
23
24
25
// A stack, in OpenSSL, is an array of pointers. They are the most commonly
26
// used collection object.
27
//
28
// This file defines macros for type-safe use of the stack functions. A stack
29
// type is named like |STACK_OF(FOO)| and is accessed with functions named
30
// like |sk_FOO_*|. Note the stack will typically contain /pointers/ to |FOO|.
31
//
32
// The |DECLARE_STACK_OF| macro makes |STACK_OF(FOO)| available, and
33
// |DEFINE_STACK_OF| makes the corresponding functions available.
34
35
36
// Defining stacks.
37
38
// STACK_OF expands to the stack type for |type|.
39
6.61M
#define STACK_OF(type) struct stack_st_##type
40
41
// DECLARE_STACK_OF declares the |STACK_OF(type)| type. It does not make the
42
// corresponding |sk_type_*| functions available. This macro should be used in
43
// files which only need the type.
44
#define DECLARE_STACK_OF(type) STACK_OF(type);
45
46
// DEFINE_NAMED_STACK_OF defines |STACK_OF(name)| to be a stack whose elements
47
// are |type| *. This macro makes the |sk_name_*| functions available.
48
//
49
// It is not necessary to use |DECLARE_STACK_OF| in files which use this macro.
50
#define DEFINE_NAMED_STACK_OF(name, type)                    \
51
  BORINGSSL_DEFINE_STACK_OF_IMPL(name, type *, const type *) \
52
  BORINGSSL_DEFINE_STACK_TRAITS(name, type, false)
53
54
// DEFINE_STACK_OF defines |STACK_OF(type)| to be a stack whose elements are
55
// |type| *. This macro makes the |sk_type_*| functions available.
56
//
57
// It is not necessary to use |DECLARE_STACK_OF| in files which use this macro.
58
#define DEFINE_STACK_OF(type) DEFINE_NAMED_STACK_OF(type, type)
59
60
// DEFINE_CONST_STACK_OF defines |STACK_OF(type)| to be a stack whose elements
61
// are const |type| *. This macro makes the |sk_type_*| functions available.
62
//
63
// It is not necessary to use |DECLARE_STACK_OF| in files which use this macro.
64
#define DEFINE_CONST_STACK_OF(type)                                \
65
  BORINGSSL_DEFINE_STACK_OF_IMPL(type, const type *, const type *) \
66
  BORINGSSL_DEFINE_STACK_TRAITS(type, const type, true)
67
68
69
// Using stacks.
70
//
71
// After the |DEFINE_STACK_OF| macro is used, the following functions are
72
// available.
73
74
#if 0  // Sample
75
76
// sk_SAMPLE_free_func is a callback to free an element in a stack.
77
typedef void (*sk_SAMPLE_free_func)(SAMPLE *);
78
79
// sk_SAMPLE_copy_func is a callback to copy an element in a stack. It should
80
// return the copy or NULL on error.
81
typedef SAMPLE *(*sk_SAMPLE_copy_func)(const SAMPLE *);
82
83
// sk_SAMPLE_cmp_func is a callback to compare |*a| to |*b|. It should return a
84
// value < 0, 0, or > 0 if |*a| is less than, equal to, or greater than |*b|,
85
// respectively.  Note the extra indirection - the function is given a pointer
86
// to a pointer to the element. This is the |qsort|/|bsearch| comparison
87
// function applied to an array of |SAMPLE*|.
88
typedef int (*sk_SAMPLE_cmp_func)(const SAMPLE *const *a,
89
                                  const SAMPLE *const *b);
90
91
// sk_SAMPLE_new creates a new, empty stack with the given comparison function,
92
// which may be NULL. It returns the new stack or NULL on allocation failure.
93
STACK_OF(SAMPLE) *sk_SAMPLE_new(sk_SAMPLE_cmp_func comp);
94
95
// sk_SAMPLE_new_null creates a new, empty stack. It returns the new stack or
96
// NULL on allocation failure.
97
STACK_OF(SAMPLE) *sk_SAMPLE_new_null(void);
98
99
// sk_SAMPLE_num returns the number of elements in |sk|. It is safe to cast this
100
// value to |int|. |sk| is guaranteed to have at most |INT_MAX| elements. If
101
// |sk| is NULL, it is treated as the empty list and this function returns zero.
102
size_t sk_SAMPLE_num(const STACK_OF(SAMPLE) *sk);
103
104
// sk_SAMPLE_zero resets |sk| to the empty state but does nothing to free the
105
// individual elements themselves.
106
void sk_SAMPLE_zero(STACK_OF(SAMPLE) *sk);
107
108
// sk_SAMPLE_value returns the |i|th pointer in |sk|, or NULL if |i| is out of
109
// range. If |sk| is NULL, it is treated as an empty list and the function
110
// returns NULL.
111
SAMPLE *sk_SAMPLE_value(const STACK_OF(SAMPLE) *sk, size_t i);
112
113
// sk_SAMPLE_set sets the |i|th pointer in |sk| to |p| and returns |p|. If |i|
114
// is out of range, it returns NULL.
115
SAMPLE *sk_SAMPLE_set(STACK_OF(SAMPLE) *sk, size_t i, SAMPLE *p);
116
117
// sk_SAMPLE_free frees |sk|, but does nothing to free the individual elements.
118
// Use |sk_SAMPLE_pop_free| to also free the elements.
119
void sk_SAMPLE_free(STACK_OF(SAMPLE) *sk);
120
121
// sk_SAMPLE_pop_free calls |free_func| on each element in |sk| and then
122
// frees the stack itself.
123
void sk_SAMPLE_pop_free(STACK_OF(SAMPLE) *sk, sk_SAMPLE_free_func free_func);
124
125
// sk_SAMPLE_insert inserts |p| into the stack at index |where|, moving existing
126
// elements if needed. It returns the length of the new stack, or zero on
127
// error.
128
size_t sk_SAMPLE_insert(STACK_OF(SAMPLE) *sk, SAMPLE *p, size_t where);
129
130
// sk_SAMPLE_delete removes the pointer at index |where|, moving other elements
131
// down if needed. It returns the removed pointer, or NULL if |where| is out of
132
// range.
133
SAMPLE *sk_SAMPLE_delete(STACK_OF(SAMPLE) *sk, size_t where);
134
135
// sk_SAMPLE_delete_ptr removes, at most, one instance of |p| from |sk| based on
136
// pointer equality. If an instance of |p| is found then |p| is returned,
137
// otherwise it returns NULL.
138
SAMPLE *sk_SAMPLE_delete_ptr(STACK_OF(SAMPLE) *sk, const SAMPLE *p);
139
140
// sk_SAMPLE_delete_if_func is the callback function for |sk_SAMPLE_delete_if|.
141
// It should return one to remove |p| and zero to keep it.
142
typedef int (*sk_SAMPLE_delete_if_func)(SAMPLE *p, void *data);
143
144
// sk_SAMPLE_delete_if calls |func| with each element of |sk| and removes the
145
// entries where |func| returned one. This function does not free or return
146
// removed pointers so, if |sk| owns its contents, |func| should release the
147
// pointers prior to returning one.
148
void sk_SAMPLE_delete_if(STACK_OF(SAMPLE) *sk, sk_SAMPLE_delete_if_func func,
149
                         void *data);
150
151
// sk_SAMPLE_find find the first value in |sk| equal to |p|. |sk|'s comparison
152
// function determines equality, or pointer equality if |sk| has no comparison
153
// function.
154
//
155
// If the stack is sorted (see |sk_SAMPLE_sort|), this function uses a binary
156
// search. Otherwise it performs a linear search. If it finds a matching
157
// element, it writes the index to |*out_index| (if |out_index| is not NULL) and
158
// returns one. Otherwise, it returns zero. If |sk| is NULL, it is treated as
159
// the empty list and the function returns zero.
160
//
161
// Note this differs from OpenSSL. The type signature is slightly different, and
162
// OpenSSL's version will implicitly sort |sk| if it has a comparison function
163
// defined.
164
int sk_SAMPLE_find(const STACK_OF(SAMPLE) *sk, size_t *out_index,
165
                   const SAMPLE *p);
166
167
// sk_SAMPLE_shift removes and returns the first element in |sk|, or NULL if
168
// |sk| is empty.
169
SAMPLE *sk_SAMPLE_shift(STACK_OF(SAMPLE) *sk);
170
171
// sk_SAMPLE_push appends |p| to |sk| and returns the length of the new stack,
172
// or 0 on allocation failure.
173
size_t sk_SAMPLE_push(STACK_OF(SAMPLE) *sk, SAMPLE *p);
174
175
// sk_SAMPLE_pop removes and returns the last element of |sk|, or NULL if |sk|
176
// is empty.
177
SAMPLE *sk_SAMPLE_pop(STACK_OF(SAMPLE) *sk);
178
179
// sk_SAMPLE_dup performs a shallow copy of a stack and returns the new stack,
180
// or NULL on error. Use |sk_SAMPLE_deep_copy| to also copy the elements.
181
STACK_OF(SAMPLE) *sk_SAMPLE_dup(const STACK_OF(SAMPLE) *sk);
182
183
// sk_SAMPLE_sort sorts the elements of |sk| into ascending order based on the
184
// comparison function. The stack maintains a "sorted" flag and sorting an
185
// already sorted stack is a no-op.
186
void sk_SAMPLE_sort(STACK_OF(SAMPLE) *sk);
187
188
// sk_SAMPLE_is_sorted returns one if |sk| is known to be sorted and zero
189
// otherwise.
190
int sk_SAMPLE_is_sorted(const STACK_OF(SAMPLE) *sk);
191
192
// sk_SAMPLE_set_cmp_func sets the comparison function to be used by |sk| and
193
// returns the previous one.
194
sk_SAMPLE_cmp_func sk_SAMPLE_set_cmp_func(STACK_OF(SAMPLE) *sk,
195
                                          sk_SAMPLE_cmp_func comp);
196
197
// sk_SAMPLE_deep_copy performs a copy of |sk| and of each of the non-NULL
198
// elements in |sk| by using |copy_func|. If an error occurs, it calls
199
// |free_func| to free any copies already made and returns NULL.
200
STACK_OF(SAMPLE) *sk_SAMPLE_deep_copy(const STACK_OF(SAMPLE) *sk,
201
                                      sk_SAMPLE_copy_func copy_func,
202
                                      sk_SAMPLE_free_func free_func);
203
204
#endif  // Sample
205
206
207
// Private functions.
208
//
209
// The |sk_*| functions generated above are implemented internally using the
210
// type-erased functions below. Callers should use the typed wrappers instead.
211
// When using the type-erased functions, callers are responsible for ensuring
212
// the underlying types are correct. Casting pointers to the wrong types will
213
// result in memory errors.
214
215
// OPENSSL_sk_free_func is a function that frees an element in a stack. Note its
216
// actual type is void (*)(T *) for some T. Low-level |sk_*| functions will be
217
// passed a type-specific wrapper to call it correctly.
218
typedef void (*OPENSSL_sk_free_func)(void *ptr);
219
220
// OPENSSL_sk_copy_func is a function that copies an element in a stack. Note
221
// its actual type is T *(*)(const T *) for some T. Low-level |sk_*| functions
222
// will be passed a type-specific wrapper to call it correctly.
223
typedef void *(*OPENSSL_sk_copy_func)(const void *ptr);
224
225
// OPENSSL_sk_cmp_func is a comparison function that returns a value < 0, 0 or >
226
// 0 if |*a| is less than, equal to or greater than |*b|, respectively.  Note
227
// the extra indirection - the function is given a pointer to a pointer to the
228
// element. This differs from the usual qsort/bsearch comparison function.
229
//
230
// Note its actual type is |int (*)(const T *const *a, const T *const *b)|.
231
// Low-level |sk_*| functions will be passed a type-specific wrapper to call it
232
// correctly.
233
typedef int (*OPENSSL_sk_cmp_func)(const void *const *a, const void *const *b);
234
235
// OPENSSL_sk_delete_if_func is the generic version of
236
// |sk_SAMPLE_delete_if_func|.
237
typedef int (*OPENSSL_sk_delete_if_func)(void *obj, void *data);
238
239
// The following function types call the above type-erased signatures with the
240
// true types.
241
typedef void (*OPENSSL_sk_call_free_func)(OPENSSL_sk_free_func, void *);
242
typedef void *(*OPENSSL_sk_call_copy_func)(OPENSSL_sk_copy_func, const void *);
243
typedef int (*OPENSSL_sk_call_cmp_func)(OPENSSL_sk_cmp_func, const void *,
244
                                        const void *);
245
typedef int (*OPENSSL_sk_call_delete_if_func)(OPENSSL_sk_delete_if_func, void *,
246
                                              void *);
247
248
// An OPENSSL_STACK contains an array of pointers. It is not designed to be used
249
// directly, rather the wrapper macros should be used.
250
typedef struct stack_st OPENSSL_STACK;
251
252
// The following are raw stack functions. They implement the corresponding typed
253
// |sk_SAMPLE_*| functions generated by |DEFINE_STACK_OF|. Callers shouldn't be
254
// using them. Rather, callers should use the typed functions.
255
OPENSSL_EXPORT OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_cmp_func comp);
256
OPENSSL_EXPORT OPENSSL_STACK *OPENSSL_sk_new_null(void);
257
OPENSSL_EXPORT size_t OPENSSL_sk_num(const OPENSSL_STACK *sk);
258
OPENSSL_EXPORT void OPENSSL_sk_zero(OPENSSL_STACK *sk);
259
OPENSSL_EXPORT void *OPENSSL_sk_value(const OPENSSL_STACK *sk, size_t i);
260
OPENSSL_EXPORT void *OPENSSL_sk_set(OPENSSL_STACK *sk, size_t i, void *p);
261
OPENSSL_EXPORT void OPENSSL_sk_free(OPENSSL_STACK *sk);
262
OPENSSL_EXPORT void OPENSSL_sk_pop_free_ex(
263
    OPENSSL_STACK *sk, OPENSSL_sk_call_free_func call_free_func,
264
    OPENSSL_sk_free_func free_func);
265
OPENSSL_EXPORT size_t OPENSSL_sk_insert(OPENSSL_STACK *sk, void *p,
266
                                        size_t where);
267
OPENSSL_EXPORT void *OPENSSL_sk_delete(OPENSSL_STACK *sk, size_t where);
268
OPENSSL_EXPORT void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *sk, const void *p);
269
OPENSSL_EXPORT void OPENSSL_sk_delete_if(
270
    OPENSSL_STACK *sk, OPENSSL_sk_call_delete_if_func call_func,
271
    OPENSSL_sk_delete_if_func func, void *data);
272
OPENSSL_EXPORT int OPENSSL_sk_find(const OPENSSL_STACK *sk, size_t *out_index,
273
                                   const void *p,
274
                                   OPENSSL_sk_call_cmp_func call_cmp_func);
275
OPENSSL_EXPORT void *OPENSSL_sk_shift(OPENSSL_STACK *sk);
276
OPENSSL_EXPORT size_t OPENSSL_sk_push(OPENSSL_STACK *sk, void *p);
277
OPENSSL_EXPORT void *OPENSSL_sk_pop(OPENSSL_STACK *sk);
278
OPENSSL_EXPORT OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *sk);
279
OPENSSL_EXPORT void OPENSSL_sk_sort(OPENSSL_STACK *sk,
280
                                    OPENSSL_sk_call_cmp_func call_cmp_func);
281
OPENSSL_EXPORT int OPENSSL_sk_is_sorted(const OPENSSL_STACK *sk);
282
OPENSSL_EXPORT OPENSSL_sk_cmp_func
283
OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, OPENSSL_sk_cmp_func comp);
284
OPENSSL_EXPORT OPENSSL_STACK *OPENSSL_sk_deep_copy(
285
    const OPENSSL_STACK *sk, OPENSSL_sk_call_copy_func call_copy_func,
286
    OPENSSL_sk_copy_func copy_func, OPENSSL_sk_call_free_func call_free_func,
287
    OPENSSL_sk_free_func free_func);
288
289
290
// Deprecated private functions (hidden).
291
//
292
// TODO(crbug.com/boringssl/499): Migrate callers to the typed wrappers, or at
293
// least the new names and remove the old ones.
294
//
295
// TODO(b/290792019, b/290785937): Ideally these would at least be inline
296
// functions, so we do not squat the symbols.
297
298
typedef OPENSSL_STACK _STACK;
299
300
// The following functions call the corresponding |OPENSSL_sk_*| function.
301
OPENSSL_EXPORT OPENSSL_DEPRECATED OPENSSL_STACK *sk_new_null(void);
302
OPENSSL_EXPORT OPENSSL_DEPRECATED size_t sk_num(const OPENSSL_STACK *sk);
303
OPENSSL_EXPORT OPENSSL_DEPRECATED void *sk_value(const OPENSSL_STACK *sk,
304
                                                 size_t i);
305
OPENSSL_EXPORT OPENSSL_DEPRECATED void sk_free(OPENSSL_STACK *sk);
306
OPENSSL_EXPORT OPENSSL_DEPRECATED size_t sk_push(OPENSSL_STACK *sk, void *p);
307
OPENSSL_EXPORT OPENSSL_DEPRECATED void *sk_pop(OPENSSL_STACK *sk);
308
309
// sk_pop_free_ex calls |OPENSSL_sk_pop_free_ex|.
310
//
311
// TODO(b/291994116): Remove this.
312
OPENSSL_EXPORT OPENSSL_DEPRECATED void sk_pop_free_ex(
313
    OPENSSL_STACK *sk, OPENSSL_sk_call_free_func call_free_func,
314
    OPENSSL_sk_free_func free_func);
315
316
// sk_pop_free behaves like |OPENSSL_sk_pop_free_ex| but performs an invalid
317
// function pointer cast. It exists because some existing callers called
318
// |sk_pop_free| directly.
319
//
320
// TODO(davidben): Migrate callers to bssl::UniquePtr and remove this.
321
OPENSSL_EXPORT OPENSSL_DEPRECATED void sk_pop_free(
322
    OPENSSL_STACK *sk, OPENSSL_sk_free_func free_func);
323
324
325
#if !defined(BORINGSSL_NO_CXX)
326
extern "C++" {
327
BSSL_NAMESPACE_BEGIN
328
namespace internal {
329
template <typename T>
330
struct StackTraits {};
331
}
332
BSSL_NAMESPACE_END
333
}
334
335
#define BORINGSSL_DEFINE_STACK_TRAITS(name, type, is_const) \
336
  extern "C++" {                                            \
337
  BSSL_NAMESPACE_BEGIN                                      \
338
  namespace internal {                                      \
339
  template <>                                               \
340
  struct StackTraits<STACK_OF(name)> {                      \
341
    static constexpr bool kIsStack = true;                  \
342
    using Type = type;                                      \
343
    static constexpr bool kIsConst = is_const;              \
344
  };                                                        \
345
  }                                                         \
346
  BSSL_NAMESPACE_END                                        \
347
  }
348
349
#else
350
#define BORINGSSL_DEFINE_STACK_TRAITS(name, type, is_const)
351
#endif
352
353
#define BORINGSSL_DEFINE_STACK_OF_IMPL(name, ptrtype, constptrtype)            \
354
  /* We disable MSVC C4191 in this macro, which warns when pointers are cast   \
355
   * to the wrong type. While the cast itself is valid, it is often a bug      \
356
   * because calling it through the cast is UB. However, we never actually     \
357
   * call functions as |OPENSSL_sk_cmp_func|. The type is just a type-erased   \
358
   * function pointer. (C does not guarantee function pointers fit in          \
359
   * |void*|, and GCC will warn on this.) Thus we just disable the false       \
360
   * positive warning. */                                                      \
361
  OPENSSL_MSVC_PRAGMA(warning(push))                                           \
362
  OPENSSL_MSVC_PRAGMA(warning(disable : 4191))                                 \
363
  OPENSSL_GNUC_CLANG_PRAGMA("GCC diagnostic push")                             \
364
  OPENSSL_CLANG_PRAGMA(                                                        \
365
      "clang diagnostic ignored \"-Wunknown-warning-option\"")                 \
366
  OPENSSL_CLANG_PRAGMA(                                                        \
367
      "clang diagnostic ignored \"-Wcast-function-type-strict\"")              \
368
  /* We also disable -Wcast-qual. As part of this C-based type erasure setup,  \
369
   * the wrapper macros need to cast away const in places. In C++, const_cast  \
370
   * suppresses the warning, but it seemingly cannot be suppressed in C. */    \
371
  OPENSSL_GNUC_CLANG_PRAGMA("GCC diagnostic ignored \"-Wcast-qual\"")          \
372
                                                                               \
373
  DECLARE_STACK_OF(name)                                                       \
374
                                                                               \
375
  typedef void (*sk_##name##_free_func)(ptrtype);                              \
376
  typedef ptrtype (*sk_##name##_copy_func)(constptrtype);                      \
377
  typedef int (*sk_##name##_cmp_func)(constptrtype const *,                    \
378
                                      constptrtype const *);                   \
379
  typedef int (*sk_##name##_delete_if_func)(ptrtype, void *);                  \
380
                                                                               \
381
  OPENSSL_INLINE void sk_##name##_call_free_func(                              \
382
4.60M
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
4.60M
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
4.60M
  }                                                                            \
Unexecuted instantiation: sk_void_call_free_func
Unexecuted instantiation: sk_OPENSSL_STRING_call_free_func
Unexecuted instantiation: sk_BIO_call_free_func
Unexecuted instantiation: sk_ASN1_INTEGER_call_free_func
sk_ASN1_OBJECT_call_free_func
Line
Count
Source
382
1.16k
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
1.16k
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
1.16k
  }                                                                            \
Unexecuted instantiation: sk_ASN1_TYPE_call_free_func
sk_CONF_VALUE_call_free_func
Line
Count
Source
382
386k
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
386k
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
386k
  }                                                                            \
Unexecuted instantiation: sk_CRYPTO_BUFFER_call_free_func
sk_X509_call_free_func
Line
Count
Source
382
246k
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
246k
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
246k
  }                                                                            \
sk_GENERAL_NAME_call_free_func
Line
Count
Source
382
135k
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
135k
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
135k
  }                                                                            \
Unexecuted instantiation: sk_X509_CRL_call_free_func
Unexecuted instantiation: sk_X509_REVOKED_call_free_func
sk_X509_NAME_ENTRY_call_free_func
Line
Count
Source
382
1.92M
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
1.92M
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
1.92M
  }                                                                            \
Unexecuted instantiation: sk_X509_NAME_call_free_func
Unexecuted instantiation: sk_X509_EXTENSION_call_free_func
Unexecuted instantiation: sk_GENERAL_SUBTREE_call_free_func
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_call_free_func
sk_DIST_POINT_call_free_func
Line
Count
Source
382
3.22k
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
3.22k
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
3.22k
  }                                                                            \
Unexecuted instantiation: sk_POLICYQUALINFO_call_free_func
sk_POLICYINFO_call_free_func
Line
Count
Source
382
1.77k
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
1.77k
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
1.77k
  }                                                                            \
sk_POLICY_MAPPING_call_free_func
Line
Count
Source
382
169
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
169
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
169
  }                                                                            \
Unexecuted instantiation: sk_X509_ALGOR_call_free_func
Unexecuted instantiation: sk_X509_ATTRIBUTE_call_free_func
Unexecuted instantiation: sk_X509_OBJECT_call_free_func
Unexecuted instantiation: sk_X509_INFO_call_free_func
Unexecuted instantiation: sk_SSL_CIPHER_call_free_func
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_call_free_func
Unexecuted instantiation: sk_SSL_COMP_call_free_func
Unexecuted instantiation: sk_ASN1_VALUE_call_free_func
Unexecuted instantiation: sk_X509_LOOKUP_call_free_func
sk_STACK_OF_X509_NAME_ENTRY_call_free_func(void (*)(void*), void*)
Line
Count
Source
382
1.90M
      OPENSSL_sk_free_func free_func, void *ptr) {                             \
383
1.90M
    ((sk_##name##_free_func)free_func)((ptrtype)ptr);                          \
384
1.90M
  }                                                                            \
Unexecuted instantiation: sk_BY_DIR_ENTRY_call_free_func(void (*)(void*), void*)
Unexecuted instantiation: sk_BY_DIR_HASH_call_free_func(void (*)(void*), void*)
Unexecuted instantiation: sk_X509_POLICY_NODE_call_free_func(void (*)(void*), void*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_call_free_func(void (*)(void*), void*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_call_free_func(void (*)(void*), void*)
385
                                                                               \
386
  OPENSSL_INLINE void *sk_##name##_call_copy_func(                             \
387
174k
      OPENSSL_sk_copy_func copy_func, const void *ptr) {                       \
388
174k
    return (void *)((sk_##name##_copy_func)copy_func)((constptrtype)ptr);      \
389
174k
  }                                                                            \
Unexecuted instantiation: sk_void_call_copy_func
Unexecuted instantiation: sk_OPENSSL_STRING_call_copy_func
Unexecuted instantiation: sk_BIO_call_copy_func
Unexecuted instantiation: sk_ASN1_INTEGER_call_copy_func
Unexecuted instantiation: sk_ASN1_OBJECT_call_copy_func
Unexecuted instantiation: sk_ASN1_TYPE_call_copy_func
Unexecuted instantiation: sk_CONF_VALUE_call_copy_func
sk_CRYPTO_BUFFER_call_copy_func
Line
Count
Source
387
174k
      OPENSSL_sk_copy_func copy_func, const void *ptr) {                       \
388
174k
    return (void *)((sk_##name##_copy_func)copy_func)((constptrtype)ptr);      \
389
174k
  }                                                                            \
Unexecuted instantiation: sk_X509_call_copy_func
Unexecuted instantiation: sk_GENERAL_NAME_call_copy_func
Unexecuted instantiation: sk_X509_CRL_call_copy_func
Unexecuted instantiation: sk_X509_REVOKED_call_copy_func
Unexecuted instantiation: sk_X509_NAME_ENTRY_call_copy_func
Unexecuted instantiation: sk_X509_NAME_call_copy_func
Unexecuted instantiation: sk_X509_EXTENSION_call_copy_func
Unexecuted instantiation: sk_GENERAL_SUBTREE_call_copy_func
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_call_copy_func
Unexecuted instantiation: sk_DIST_POINT_call_copy_func
Unexecuted instantiation: sk_POLICYQUALINFO_call_copy_func
Unexecuted instantiation: sk_POLICYINFO_call_copy_func
Unexecuted instantiation: sk_POLICY_MAPPING_call_copy_func
Unexecuted instantiation: sk_X509_ALGOR_call_copy_func
Unexecuted instantiation: sk_X509_ATTRIBUTE_call_copy_func
Unexecuted instantiation: sk_X509_OBJECT_call_copy_func
Unexecuted instantiation: sk_X509_INFO_call_copy_func
Unexecuted instantiation: sk_SSL_CIPHER_call_copy_func
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_call_copy_func
Unexecuted instantiation: sk_SSL_COMP_call_copy_func
Unexecuted instantiation: sk_ASN1_VALUE_call_copy_func
Unexecuted instantiation: sk_X509_LOOKUP_call_copy_func
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_call_copy_func(void* (*)(void const*), void const*)
Unexecuted instantiation: sk_BY_DIR_HASH_call_copy_func(void* (*)(void const*), void const*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_call_copy_func(void* (*)(void const*), void const*)
Unexecuted instantiation: sk_X509_POLICY_NODE_call_copy_func(void* (*)(void const*), void const*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_call_copy_func(void* (*)(void const*), void const*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_call_copy_func(void* (*)(void const*), void const*)
390
                                                                               \
391
  OPENSSL_INLINE int sk_##name##_call_cmp_func(OPENSSL_sk_cmp_func cmp_func,   \
392
0
                                               const void *a, const void *b) { \
393
0
    constptrtype a_ptr = (constptrtype)a;                                      \
394
0
    constptrtype b_ptr = (constptrtype)b;                                      \
395
0
    /* |cmp_func| expects an extra layer of pointers to match qsort. */        \
396
0
    return ((sk_##name##_cmp_func)cmp_func)(&a_ptr, &b_ptr);                   \
397
0
  }                                                                            \
Unexecuted instantiation: sk_void_call_cmp_func
Unexecuted instantiation: sk_OPENSSL_STRING_call_cmp_func
Unexecuted instantiation: sk_BIO_call_cmp_func
Unexecuted instantiation: sk_ASN1_INTEGER_call_cmp_func
Unexecuted instantiation: sk_ASN1_OBJECT_call_cmp_func
Unexecuted instantiation: sk_ASN1_TYPE_call_cmp_func
Unexecuted instantiation: sk_CONF_VALUE_call_cmp_func
Unexecuted instantiation: sk_CRYPTO_BUFFER_call_cmp_func
Unexecuted instantiation: sk_X509_call_cmp_func
Unexecuted instantiation: sk_GENERAL_NAME_call_cmp_func
Unexecuted instantiation: sk_X509_CRL_call_cmp_func
Unexecuted instantiation: sk_X509_REVOKED_call_cmp_func
Unexecuted instantiation: sk_X509_NAME_ENTRY_call_cmp_func
Unexecuted instantiation: sk_X509_NAME_call_cmp_func
Unexecuted instantiation: sk_X509_EXTENSION_call_cmp_func
Unexecuted instantiation: sk_GENERAL_SUBTREE_call_cmp_func
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_call_cmp_func
Unexecuted instantiation: sk_DIST_POINT_call_cmp_func
Unexecuted instantiation: sk_POLICYQUALINFO_call_cmp_func
Unexecuted instantiation: sk_POLICYINFO_call_cmp_func
Unexecuted instantiation: sk_POLICY_MAPPING_call_cmp_func
Unexecuted instantiation: sk_X509_ALGOR_call_cmp_func
Unexecuted instantiation: sk_X509_ATTRIBUTE_call_cmp_func
Unexecuted instantiation: sk_X509_OBJECT_call_cmp_func
Unexecuted instantiation: sk_X509_INFO_call_cmp_func
Unexecuted instantiation: sk_SSL_CIPHER_call_cmp_func
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_call_cmp_func
Unexecuted instantiation: sk_SSL_COMP_call_cmp_func
Unexecuted instantiation: sk_ASN1_VALUE_call_cmp_func
Unexecuted instantiation: sk_X509_LOOKUP_call_cmp_func
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_call_cmp_func(int (*)(void const* const*, void const* const*), void const*, void const*)
Unexecuted instantiation: sk_BY_DIR_HASH_call_cmp_func(int (*)(void const* const*, void const* const*), void const*, void const*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_call_cmp_func(int (*)(void const* const*, void const* const*), void const*, void const*)
Unexecuted instantiation: sk_X509_POLICY_NODE_call_cmp_func(int (*)(void const* const*, void const* const*), void const*, void const*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_call_cmp_func(int (*)(void const* const*, void const* const*), void const*, void const*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_call_cmp_func(int (*)(void const* const*, void const* const*), void const*, void const*)
398
                                                                               \
399
  OPENSSL_INLINE int sk_##name##_call_delete_if_func(                          \
400
0
      OPENSSL_sk_delete_if_func func, void *obj, void *data) {                 \
401
0
    return ((sk_##name##_delete_if_func)func)((ptrtype)obj, data);             \
402
0
  }                                                                            \
Unexecuted instantiation: sk_void_call_delete_if_func
Unexecuted instantiation: sk_OPENSSL_STRING_call_delete_if_func
Unexecuted instantiation: sk_BIO_call_delete_if_func
Unexecuted instantiation: sk_ASN1_INTEGER_call_delete_if_func
Unexecuted instantiation: sk_ASN1_OBJECT_call_delete_if_func
Unexecuted instantiation: sk_ASN1_TYPE_call_delete_if_func
Unexecuted instantiation: sk_CONF_VALUE_call_delete_if_func
Unexecuted instantiation: sk_CRYPTO_BUFFER_call_delete_if_func
Unexecuted instantiation: sk_X509_call_delete_if_func
Unexecuted instantiation: sk_GENERAL_NAME_call_delete_if_func
Unexecuted instantiation: sk_X509_CRL_call_delete_if_func
Unexecuted instantiation: sk_X509_REVOKED_call_delete_if_func
Unexecuted instantiation: sk_X509_NAME_ENTRY_call_delete_if_func
Unexecuted instantiation: sk_X509_NAME_call_delete_if_func
Unexecuted instantiation: sk_X509_EXTENSION_call_delete_if_func
Unexecuted instantiation: sk_GENERAL_SUBTREE_call_delete_if_func
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_call_delete_if_func
Unexecuted instantiation: sk_DIST_POINT_call_delete_if_func
Unexecuted instantiation: sk_POLICYQUALINFO_call_delete_if_func
Unexecuted instantiation: sk_POLICYINFO_call_delete_if_func
Unexecuted instantiation: sk_POLICY_MAPPING_call_delete_if_func
Unexecuted instantiation: sk_X509_ALGOR_call_delete_if_func
Unexecuted instantiation: sk_X509_ATTRIBUTE_call_delete_if_func
Unexecuted instantiation: sk_X509_OBJECT_call_delete_if_func
Unexecuted instantiation: sk_X509_INFO_call_delete_if_func
Unexecuted instantiation: sk_SSL_CIPHER_call_delete_if_func
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_call_delete_if_func
Unexecuted instantiation: sk_SSL_COMP_call_delete_if_func
Unexecuted instantiation: sk_ASN1_VALUE_call_delete_if_func
Unexecuted instantiation: sk_X509_LOOKUP_call_delete_if_func
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_call_delete_if_func(int (*)(void*, void*), void*, void*)
Unexecuted instantiation: sk_BY_DIR_HASH_call_delete_if_func(int (*)(void*, void*), void*, void*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_call_delete_if_func(int (*)(void*, void*), void*, void*)
Unexecuted instantiation: sk_X509_POLICY_NODE_call_delete_if_func(int (*)(void*, void*), void*, void*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_call_delete_if_func(int (*)(void*, void*), void*, void*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_call_delete_if_func(int (*)(void*, void*), void*, void*)
403
                                                                               \
404
4.90k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new(sk_##name##_cmp_func comp) {  \
405
4.90k
    return (STACK_OF(name) *)OPENSSL_sk_new((OPENSSL_sk_cmp_func)comp);        \
406
4.90k
  }                                                                            \
Unexecuted instantiation: sk_void_new
Unexecuted instantiation: sk_OPENSSL_STRING_new
Unexecuted instantiation: sk_BIO_new
Unexecuted instantiation: sk_ASN1_INTEGER_new
Unexecuted instantiation: sk_ASN1_OBJECT_new
Unexecuted instantiation: sk_ASN1_TYPE_new
Unexecuted instantiation: sk_CONF_VALUE_new
Unexecuted instantiation: sk_CRYPTO_BUFFER_new
Unexecuted instantiation: sk_X509_new
Unexecuted instantiation: sk_GENERAL_NAME_new
Unexecuted instantiation: sk_X509_CRL_new
Unexecuted instantiation: sk_X509_REVOKED_new
Unexecuted instantiation: sk_X509_NAME_ENTRY_new
Unexecuted instantiation: sk_X509_NAME_new
Unexecuted instantiation: sk_X509_EXTENSION_new
Unexecuted instantiation: sk_GENERAL_SUBTREE_new
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_new
Unexecuted instantiation: sk_DIST_POINT_new
Unexecuted instantiation: sk_POLICYQUALINFO_new
Unexecuted instantiation: sk_POLICYINFO_new
Unexecuted instantiation: sk_POLICY_MAPPING_new
Unexecuted instantiation: sk_X509_ALGOR_new
Unexecuted instantiation: sk_X509_ATTRIBUTE_new
sk_X509_OBJECT_new
Line
Count
Source
404
4.90k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new(sk_##name##_cmp_func comp) {  \
405
4.90k
    return (STACK_OF(name) *)OPENSSL_sk_new((OPENSSL_sk_cmp_func)comp);        \
406
4.90k
  }                                                                            \
Unexecuted instantiation: sk_X509_INFO_new
Unexecuted instantiation: sk_SSL_CIPHER_new
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_new
Unexecuted instantiation: sk_SSL_COMP_new
Unexecuted instantiation: sk_ASN1_VALUE_new
Unexecuted instantiation: sk_X509_LOOKUP_new
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_new(int (*)(stack_st_X509_NAME_ENTRY const* const*, stack_st_X509_NAME_ENTRY const* const*))
Unexecuted instantiation: sk_BY_DIR_HASH_new(int (*)(lookup_dir_hashes_st const* const*, lookup_dir_hashes_st const* const*))
Unexecuted instantiation: sk_BY_DIR_ENTRY_new(int (*)(lookup_dir_entry_st const* const*, lookup_dir_entry_st const* const*))
Unexecuted instantiation: sk_X509_POLICY_NODE_new(int (*)(x509_policy_node_st const* const*, x509_policy_node_st const* const*))
Unexecuted instantiation: sk_X509_POLICY_LEVEL_new(int (*)(x509_policy_level_st const* const*, x509_policy_level_st const* const*))
Unexecuted instantiation: sk_X509V3_EXT_METHOD_new(int (*)(v3_ext_method const* const*, v3_ext_method const* const*))
407
                                                                               \
408
4.48M
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
4.48M
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
4.48M
  }                                                                            \
sk_void_new_null
Line
Count
Source
408
8.62k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
8.62k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
8.62k
  }                                                                            \
Unexecuted instantiation: sk_OPENSSL_STRING_new_null
Unexecuted instantiation: sk_BIO_new_null
Unexecuted instantiation: sk_ASN1_INTEGER_new_null
sk_ASN1_OBJECT_new_null
Line
Count
Source
408
97
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
97
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
97
  }                                                                            \
Unexecuted instantiation: sk_ASN1_TYPE_new_null
sk_CONF_VALUE_new_null
Line
Count
Source
408
110k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
110k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
110k
  }                                                                            \
sk_CRYPTO_BUFFER_new_null
Line
Count
Source
408
200k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
200k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
200k
  }                                                                            \
sk_X509_new_null
Line
Count
Source
408
192k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
192k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
192k
  }                                                                            \
sk_GENERAL_NAME_new_null
Line
Count
Source
408
76.9k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
76.9k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
76.9k
  }                                                                            \
Unexecuted instantiation: sk_X509_CRL_new_null
Unexecuted instantiation: sk_X509_REVOKED_new_null
sk_X509_NAME_ENTRY_new_null
Line
Count
Source
408
1.81M
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
1.81M
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
1.81M
  }                                                                            \
Unexecuted instantiation: sk_X509_NAME_new_null
sk_X509_EXTENSION_new_null
Line
Count
Source
408
7.44k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
7.44k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
7.44k
  }                                                                            \
sk_GENERAL_SUBTREE_new_null
Line
Count
Source
408
117
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
117
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
117
  }                                                                            \
sk_ACCESS_DESCRIPTION_new_null
Line
Count
Source
408
64
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
64
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
64
  }                                                                            \
sk_DIST_POINT_new_null
Line
Count
Source
408
4.41k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
4.41k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
4.41k
  }                                                                            \
sk_POLICYQUALINFO_new_null
Line
Count
Source
408
3.15k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
3.15k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
3.15k
  }                                                                            \
sk_POLICYINFO_new_null
Line
Count
Source
408
569
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
569
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
569
  }                                                                            \
sk_POLICY_MAPPING_new_null
Line
Count
Source
408
83
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
83
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
83
  }                                                                            \
Unexecuted instantiation: sk_X509_ALGOR_new_null
Unexecuted instantiation: sk_X509_ATTRIBUTE_new_null
Unexecuted instantiation: sk_X509_OBJECT_new_null
Unexecuted instantiation: sk_X509_INFO_new_null
sk_SSL_CIPHER_new_null
Line
Count
Source
408
25.2k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
25.2k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
25.2k
  }                                                                            \
sk_SRTP_PROTECTION_PROFILE_new_null
Line
Count
Source
408
4.21k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
4.21k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
4.21k
  }                                                                            \
Unexecuted instantiation: sk_SSL_COMP_new_null
sk_ASN1_VALUE_new_null
Line
Count
Source
408
1.61M
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
1.61M
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
1.61M
  }                                                                            \
sk_X509_LOOKUP_new_null
Line
Count
Source
408
4.90k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
4.90k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
4.90k
  }                                                                            \
sk_STACK_OF_X509_NAME_ENTRY_new_null()
Line
Count
Source
408
415k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_new_null(void) {                  \
409
415k
    return (STACK_OF(name) *)OPENSSL_sk_new_null();                            \
410
415k
  }                                                                            \
Unexecuted instantiation: sk_BY_DIR_ENTRY_new_null()
Unexecuted instantiation: sk_BY_DIR_HASH_new_null()
Unexecuted instantiation: sk_X509_POLICY_LEVEL_new_null()
Unexecuted instantiation: sk_X509_POLICY_NODE_new_null()
Unexecuted instantiation: sk_X509V3_EXT_METHOD_new_null()
411
                                                                               \
412
21.8M
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
21.8M
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
21.8M
  }                                                                            \
sk_void_num
Line
Count
Source
412
8.62k
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
8.62k
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
8.62k
  }                                                                            \
Unexecuted instantiation: sk_OPENSSL_STRING_num
Unexecuted instantiation: sk_BIO_num
sk_ASN1_INTEGER_num
Line
Count
Source
412
14
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
14
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
14
  }                                                                            \
sk_ASN1_OBJECT_num
Line
Count
Source
412
1.69k
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
1.69k
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
1.69k
  }                                                                            \
Unexecuted instantiation: sk_ASN1_TYPE_num
sk_CONF_VALUE_num
Line
Count
Source
412
1.41M
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
1.41M
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
1.41M
  }                                                                            \
sk_CRYPTO_BUFFER_num
Line
Count
Source
412
798k
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
798k
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
798k
  }                                                                            \
sk_X509_num
Line
Count
Source
412
123k
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
123k
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
123k
  }                                                                            \
sk_GENERAL_NAME_num
Line
Count
Source
412
280k
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
280k
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
280k
  }                                                                            \
Unexecuted instantiation: sk_X509_CRL_num
Unexecuted instantiation: sk_X509_REVOKED_num
sk_X509_NAME_ENTRY_num
Line
Count
Source
412
3.78M
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
3.78M
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
3.78M
  }                                                                            \
Unexecuted instantiation: sk_X509_NAME_num
sk_X509_EXTENSION_num
Line
Count
Source
412
402k
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
402k
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
402k
  }                                                                            \
sk_GENERAL_SUBTREE_num
Line
Count
Source
412
1.12k
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
1.12k
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
1.12k
  }                                                                            \
sk_ACCESS_DESCRIPTION_num
Line
Count
Source
412
125
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
125
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
125
  }                                                                            \
sk_DIST_POINT_num
Line
Count
Source
412
3.53k
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
3.53k
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
3.53k
  }                                                                            \
sk_POLICYQUALINFO_num
Line
Count
Source
412
393
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
393
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
393
  }                                                                            \
sk_POLICYINFO_num
Line
Count
Source
412
305
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
305
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
305
  }                                                                            \
sk_POLICY_MAPPING_num
Line
Count
Source
412
151
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
151
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
151
  }                                                                            \
Unexecuted instantiation: sk_X509_ALGOR_num
Unexecuted instantiation: sk_X509_ATTRIBUTE_num
Unexecuted instantiation: sk_X509_OBJECT_num
Unexecuted instantiation: sk_X509_INFO_num
sk_SSL_CIPHER_num
Line
Count
Source
412
58.2k
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
58.2k
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
58.2k
  }                                                                            \
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_num
Unexecuted instantiation: sk_SSL_COMP_num
sk_ASN1_VALUE_num
Line
Count
Source
412
13.5M
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
13.5M
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
13.5M
  }                                                                            \
Unexecuted instantiation: sk_X509_LOOKUP_num
sk_STACK_OF_X509_NAME_ENTRY_num(stack_st_STACK_OF_X509_NAME_ENTRY const*)
Line
Count
Source
412
1.38M
  OPENSSL_INLINE size_t sk_##name##_num(const STACK_OF(name) *sk) {            \
413
1.38M
    return OPENSSL_sk_num((const OPENSSL_STACK *)sk);                          \
414
1.38M
  }                                                                            \
Unexecuted instantiation: sk_BY_DIR_ENTRY_num(stack_st_BY_DIR_ENTRY const*)
Unexecuted instantiation: sk_BY_DIR_HASH_num(stack_st_BY_DIR_HASH const*)
Unexecuted instantiation: sk_X509_POLICY_NODE_num(stack_st_X509_POLICY_NODE const*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_num(stack_st_X509_POLICY_LEVEL const*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_num(stack_st_X509V3_EXT_METHOD const*)
415
                                                                               \
416
0
  OPENSSL_INLINE void sk_##name##_zero(STACK_OF(name) *sk) {                   \
417
0
    OPENSSL_sk_zero((OPENSSL_STACK *)sk);                                      \
418
0
  }                                                                            \
Unexecuted instantiation: sk_void_zero
Unexecuted instantiation: sk_OPENSSL_STRING_zero
Unexecuted instantiation: sk_BIO_zero
Unexecuted instantiation: sk_ASN1_INTEGER_zero
Unexecuted instantiation: sk_ASN1_OBJECT_zero
Unexecuted instantiation: sk_ASN1_TYPE_zero
Unexecuted instantiation: sk_CONF_VALUE_zero
Unexecuted instantiation: sk_CRYPTO_BUFFER_zero
Unexecuted instantiation: sk_X509_zero
Unexecuted instantiation: sk_GENERAL_NAME_zero
Unexecuted instantiation: sk_X509_CRL_zero
Unexecuted instantiation: sk_X509_REVOKED_zero
Unexecuted instantiation: sk_X509_NAME_ENTRY_zero
Unexecuted instantiation: sk_X509_NAME_zero
Unexecuted instantiation: sk_X509_EXTENSION_zero
Unexecuted instantiation: sk_GENERAL_SUBTREE_zero
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_zero
Unexecuted instantiation: sk_DIST_POINT_zero
Unexecuted instantiation: sk_POLICYQUALINFO_zero
Unexecuted instantiation: sk_POLICYINFO_zero
Unexecuted instantiation: sk_POLICY_MAPPING_zero
Unexecuted instantiation: sk_X509_ALGOR_zero
Unexecuted instantiation: sk_X509_ATTRIBUTE_zero
Unexecuted instantiation: sk_X509_OBJECT_zero
Unexecuted instantiation: sk_X509_INFO_zero
Unexecuted instantiation: sk_SSL_CIPHER_zero
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_zero
Unexecuted instantiation: sk_SSL_COMP_zero
Unexecuted instantiation: sk_ASN1_VALUE_zero
Unexecuted instantiation: sk_X509_LOOKUP_zero
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_zero(stack_st_STACK_OF_X509_NAME_ENTRY*)
Unexecuted instantiation: sk_BY_DIR_HASH_zero(stack_st_BY_DIR_HASH*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_zero(stack_st_BY_DIR_ENTRY*)
Unexecuted instantiation: sk_X509_POLICY_NODE_zero(stack_st_X509_POLICY_NODE*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_zero(stack_st_X509_POLICY_LEVEL*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_zero(stack_st_X509V3_EXT_METHOD*)
419
                                                                               \
420
  OPENSSL_INLINE ptrtype sk_##name##_value(const STACK_OF(name) *sk,           \
421
12.3M
                                           size_t i) {                         \
422
12.3M
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
12.3M
  }                                                                            \
Unexecuted instantiation: sk_void_value
Unexecuted instantiation: sk_OPENSSL_STRING_value
Unexecuted instantiation: sk_BIO_value
sk_ASN1_INTEGER_value
Line
Count
Source
421
4
                                           size_t i) {                         \
422
4
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
4
  }                                                                            \
sk_ASN1_OBJECT_value
Line
Count
Source
421
1.45k
                                           size_t i) {                         \
422
1.45k
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
1.45k
  }                                                                            \
Unexecuted instantiation: sk_ASN1_TYPE_value
sk_CONF_VALUE_value
Line
Count
Source
421
900k
                                           size_t i) {                         \
422
900k
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
900k
  }                                                                            \
sk_CRYPTO_BUFFER_value
Line
Count
Source
421
330k
                                           size_t i) {                         \
422
330k
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
330k
  }                                                                            \
sk_X509_value
Line
Count
Source
421
62.5k
                                           size_t i) {                         \
422
62.5k
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
62.5k
  }                                                                            \
sk_GENERAL_NAME_value
Line
Count
Source
421
277k
                                           size_t i) {                         \
422
277k
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
277k
  }                                                                            \
Unexecuted instantiation: sk_X509_CRL_value
Unexecuted instantiation: sk_X509_REVOKED_value
sk_X509_NAME_ENTRY_value
Line
Count
Source
421
1.95M
                                           size_t i) {                         \
422
1.95M
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
1.95M
  }                                                                            \
Unexecuted instantiation: sk_X509_NAME_value
sk_X509_EXTENSION_value
Line
Count
Source
421
307k
                                           size_t i) {                         \
422
307k
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
307k
  }                                                                            \
sk_GENERAL_SUBTREE_value
Line
Count
Source
421
284
                                           size_t i) {                         \
422
284
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
284
  }                                                                            \
sk_ACCESS_DESCRIPTION_value
Line
Count
Source
421
87
                                           size_t i) {                         \
422
87
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
87
  }                                                                            \
sk_DIST_POINT_value
Line
Count
Source
421
624
                                           size_t i) {                         \
422
624
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
624
  }                                                                            \
sk_POLICYQUALINFO_value
Line
Count
Source
421
302
                                           size_t i) {                         \
422
302
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
302
  }                                                                            \
sk_POLICYINFO_value
Line
Count
Source
421
184
                                           size_t i) {                         \
422
184
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
184
  }                                                                            \
sk_POLICY_MAPPING_value
Line
Count
Source
421
72
                                           size_t i) {                         \
422
72
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
72
  }                                                                            \
Unexecuted instantiation: sk_X509_ALGOR_value
Unexecuted instantiation: sk_X509_ATTRIBUTE_value
Unexecuted instantiation: sk_X509_OBJECT_value
Unexecuted instantiation: sk_X509_INFO_value
sk_SSL_CIPHER_value
Line
Count
Source
421
29.9k
                                           size_t i) {                         \
422
29.9k
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
29.9k
  }                                                                            \
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_value
Unexecuted instantiation: sk_SSL_COMP_value
sk_ASN1_VALUE_value
Line
Count
Source
421
7.47M
                                           size_t i) {                         \
422
7.47M
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
7.47M
  }                                                                            \
Unexecuted instantiation: sk_X509_LOOKUP_value
sk_STACK_OF_X509_NAME_ENTRY_value(stack_st_STACK_OF_X509_NAME_ENTRY const*, unsigned long)
Line
Count
Source
421
974k
                                           size_t i) {                         \
422
974k
    return (ptrtype)OPENSSL_sk_value((const OPENSSL_STACK *)sk, i);            \
423
974k
  }                                                                            \
Unexecuted instantiation: sk_BY_DIR_ENTRY_value(stack_st_BY_DIR_ENTRY const*, unsigned long)
Unexecuted instantiation: sk_BY_DIR_HASH_value(stack_st_BY_DIR_HASH const*, unsigned long)
Unexecuted instantiation: sk_X509_POLICY_NODE_value(stack_st_X509_POLICY_NODE const*, unsigned long)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_value(stack_st_X509_POLICY_LEVEL const*, unsigned long)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_value(stack_st_X509V3_EXT_METHOD const*, unsigned long)
424
                                                                               \
425
  OPENSSL_INLINE ptrtype sk_##name##_set(STACK_OF(name) *sk, size_t i,         \
426
1.23M
                                         ptrtype p) {                          \
427
1.23M
    return (ptrtype)OPENSSL_sk_set((OPENSSL_STACK *)sk, i, (void *)p);         \
428
1.23M
  }                                                                            \
sk_void_set
Line
Count
Source
426
8.62k
                                         ptrtype p) {                          \
427
8.62k
    return (ptrtype)OPENSSL_sk_set((OPENSSL_STACK *)sk, i, (void *)p);         \
428
8.62k
  }                                                                            \
Unexecuted instantiation: sk_OPENSSL_STRING_set
Unexecuted instantiation: sk_BIO_set
Unexecuted instantiation: sk_ASN1_INTEGER_set
Unexecuted instantiation: sk_ASN1_OBJECT_set
Unexecuted instantiation: sk_ASN1_TYPE_set
Unexecuted instantiation: sk_CONF_VALUE_set
sk_CRYPTO_BUFFER_set
Line
Count
Source
426
7.10k
                                         ptrtype p) {                          \
427
7.10k
    return (ptrtype)OPENSSL_sk_set((OPENSSL_STACK *)sk, i, (void *)p);         \
428
7.10k
  }                                                                            \
Unexecuted instantiation: sk_X509_set
sk_GENERAL_NAME_set
Line
Count
Source
426
266k
                                         ptrtype p) {                          \
427
266k
    return (ptrtype)OPENSSL_sk_set((OPENSSL_STACK *)sk, i, (void *)p);         \
428
266k
  }                                                                            \
Unexecuted instantiation: sk_X509_CRL_set
Unexecuted instantiation: sk_X509_REVOKED_set
sk_X509_NAME_ENTRY_set
Line
Count
Source
426
952k
                                         ptrtype p) {                          \
427
952k
    return (ptrtype)OPENSSL_sk_set((OPENSSL_STACK *)sk, i, (void *)p);         \
428
952k
  }                                                                            \
Unexecuted instantiation: sk_X509_NAME_set
Unexecuted instantiation: sk_X509_EXTENSION_set
Unexecuted instantiation: sk_GENERAL_SUBTREE_set
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_set
Unexecuted instantiation: sk_DIST_POINT_set
Unexecuted instantiation: sk_POLICYQUALINFO_set
Unexecuted instantiation: sk_POLICYINFO_set
Unexecuted instantiation: sk_POLICY_MAPPING_set
Unexecuted instantiation: sk_X509_ALGOR_set
Unexecuted instantiation: sk_X509_ATTRIBUTE_set
Unexecuted instantiation: sk_X509_OBJECT_set
Unexecuted instantiation: sk_X509_INFO_set
Unexecuted instantiation: sk_SSL_CIPHER_set
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_set
Unexecuted instantiation: sk_SSL_COMP_set
Unexecuted instantiation: sk_ASN1_VALUE_set
Unexecuted instantiation: sk_X509_LOOKUP_set
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_set(stack_st_STACK_OF_X509_NAME_ENTRY*, unsigned long, stack_st_X509_NAME_ENTRY*)
Unexecuted instantiation: sk_BY_DIR_HASH_set(stack_st_BY_DIR_HASH*, unsigned long, lookup_dir_hashes_st*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_set(stack_st_BY_DIR_ENTRY*, unsigned long, lookup_dir_entry_st*)
Unexecuted instantiation: sk_X509_POLICY_NODE_set(stack_st_X509_POLICY_NODE*, unsigned long, x509_policy_node_st*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_set(stack_st_X509_POLICY_LEVEL*, unsigned long, x509_policy_level_st*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_set(stack_st_X509V3_EXT_METHOD*, unsigned long, v3_ext_method*)
429
                                                                               \
430
1.94M
  OPENSSL_INLINE void sk_##name##_free(STACK_OF(name) *sk) {                   \
431
1.94M
    OPENSSL_sk_free((OPENSSL_STACK *)sk);                                      \
432
1.94M
  }                                                                            \
sk_void_free
Line
Count
Source
430
8.62k
  OPENSSL_INLINE void sk_##name##_free(STACK_OF(name) *sk) {                   \
431
8.62k
    OPENSSL_sk_free((OPENSSL_STACK *)sk);                                      \
432
8.62k
  }                                                                            \
Unexecuted instantiation: sk_OPENSSL_STRING_free
Unexecuted instantiation: sk_BIO_free
Unexecuted instantiation: sk_ASN1_INTEGER_free
Unexecuted instantiation: sk_ASN1_OBJECT_free
Unexecuted instantiation: sk_ASN1_TYPE_free
sk_CONF_VALUE_free
Line
Count
Source
430
21.4k
  OPENSSL_INLINE void sk_##name##_free(STACK_OF(name) *sk) {                   \
431
21.4k
    OPENSSL_sk_free((OPENSSL_STACK *)sk);                                      \
432
21.4k
  }                                                                            \
Unexecuted instantiation: sk_CRYPTO_BUFFER_free
Unexecuted instantiation: sk_X509_free
Unexecuted instantiation: sk_GENERAL_NAME_free
Unexecuted instantiation: sk_X509_CRL_free
Unexecuted instantiation: sk_X509_REVOKED_free
sk_X509_NAME_ENTRY_free
Line
Count
Source
430
978k
  OPENSSL_INLINE void sk_##name##_free(STACK_OF(name) *sk) {                   \
431
978k
    OPENSSL_sk_free((OPENSSL_STACK *)sk);                                      \
432
978k
  }                                                                            \
Unexecuted instantiation: sk_X509_NAME_free
sk_X509_EXTENSION_free
Line
Count
Source
430
29
  OPENSSL_INLINE void sk_##name##_free(STACK_OF(name) *sk) {                   \
431
29
    OPENSSL_sk_free((OPENSSL_STACK *)sk);                                      \
432
29
  }                                                                            \
Unexecuted instantiation: sk_GENERAL_SUBTREE_free
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_free
Unexecuted instantiation: sk_DIST_POINT_free
Unexecuted instantiation: sk_POLICYQUALINFO_free
Unexecuted instantiation: sk_POLICYINFO_free
Unexecuted instantiation: sk_POLICY_MAPPING_free
Unexecuted instantiation: sk_X509_ALGOR_free
Unexecuted instantiation: sk_X509_ATTRIBUTE_free
Unexecuted instantiation: sk_X509_OBJECT_free
Unexecuted instantiation: sk_X509_INFO_free
Unexecuted instantiation: sk_SSL_CIPHER_free
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_free
Unexecuted instantiation: sk_SSL_COMP_free
sk_ASN1_VALUE_free
Line
Count
Source
430
935k
  OPENSSL_INLINE void sk_##name##_free(STACK_OF(name) *sk) {                   \
431
935k
    OPENSSL_sk_free((OPENSSL_STACK *)sk);                                      \
432
935k
  }                                                                            \
Unexecuted instantiation: sk_X509_LOOKUP_free
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_free(stack_st_STACK_OF_X509_NAME_ENTRY*)
Unexecuted instantiation: sk_BY_DIR_HASH_free(stack_st_BY_DIR_HASH*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_free(stack_st_BY_DIR_ENTRY*)
Unexecuted instantiation: sk_X509_POLICY_NODE_free(stack_st_X509_POLICY_NODE*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_free(stack_st_X509_POLICY_LEVEL*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_free(stack_st_X509V3_EXT_METHOD*)
433
                                                                               \
434
  OPENSSL_INLINE void sk_##name##_pop_free(STACK_OF(name) *sk,                 \
435
4.52M
                                           sk_##name##_free_func free_func) {  \
436
4.52M
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
4.52M
                           (OPENSSL_sk_free_func)free_func);                   \
438
4.52M
  }                                                                            \
Unexecuted instantiation: sk_void_pop_free
sk_OPENSSL_STRING_pop_free
Line
Count
Source
435
139k
                                           sk_##name##_free_func free_func) {  \
436
139k
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
139k
                           (OPENSSL_sk_free_func)free_func);                   \
438
139k
  }                                                                            \
Unexecuted instantiation: sk_BIO_pop_free
Unexecuted instantiation: sk_ASN1_INTEGER_pop_free
sk_ASN1_OBJECT_pop_free
Line
Count
Source
435
139k
                                           sk_##name##_free_func free_func) {  \
436
139k
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
139k
                           (OPENSSL_sk_free_func)free_func);                   \
438
139k
  }                                                                            \
Unexecuted instantiation: sk_ASN1_TYPE_pop_free
sk_CONF_VALUE_pop_free
Line
Count
Source
435
96.0k
                                           sk_##name##_free_func free_func) {  \
436
96.0k
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
96.0k
                           (OPENSSL_sk_free_func)free_func);                   \
438
96.0k
  }                                                                            \
Unexecuted instantiation: sk_CRYPTO_BUFFER_pop_free
sk_X509_pop_free
Line
Count
Source
435
1.16M
                                           sk_##name##_free_func free_func) {  \
436
1.16M
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
1.16M
                           (OPENSSL_sk_free_func)free_func);                   \
438
1.16M
  }                                                                            \
sk_GENERAL_NAME_pop_free
Line
Count
Source
435
1.01k
                                           sk_##name##_free_func free_func) {  \
436
1.01k
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
1.01k
                           (OPENSSL_sk_free_func)free_func);                   \
438
1.01k
  }                                                                            \
Unexecuted instantiation: sk_X509_CRL_pop_free
Unexecuted instantiation: sk_X509_REVOKED_pop_free
sk_X509_NAME_ENTRY_pop_free
Line
Count
Source
435
1.81M
                                           sk_##name##_free_func free_func) {  \
436
1.81M
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
1.81M
                           (OPENSSL_sk_free_func)free_func);                   \
438
1.81M
  }                                                                            \
sk_X509_NAME_pop_free
Line
Count
Source
435
329k
                                           sk_##name##_free_func free_func) {  \
436
329k
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
329k
                           (OPENSSL_sk_free_func)free_func);                   \
438
329k
  }                                                                            \
Unexecuted instantiation: sk_X509_EXTENSION_pop_free
Unexecuted instantiation: sk_GENERAL_SUBTREE_pop_free
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_pop_free
sk_DIST_POINT_pop_free
Line
Count
Source
435
2.67k
                                           sk_##name##_free_func free_func) {  \
436
2.67k
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
2.67k
                           (OPENSSL_sk_free_func)free_func);                   \
438
2.67k
  }                                                                            \
Unexecuted instantiation: sk_POLICYQUALINFO_pop_free
sk_POLICYINFO_pop_free
Line
Count
Source
435
390
                                           sk_##name##_free_func free_func) {  \
436
390
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
390
                           (OPENSSL_sk_free_func)free_func);                   \
438
390
  }                                                                            \
sk_POLICY_MAPPING_pop_free
Line
Count
Source
435
58
                                           sk_##name##_free_func free_func) {  \
436
58
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
58
                           (OPENSSL_sk_free_func)free_func);                   \
438
58
  }                                                                            \
Unexecuted instantiation: sk_X509_ALGOR_pop_free
Unexecuted instantiation: sk_X509_ATTRIBUTE_pop_free
sk_X509_OBJECT_pop_free
Line
Count
Source
435
4.88k
                                           sk_##name##_free_func free_func) {  \
436
4.88k
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
4.88k
                           (OPENSSL_sk_free_func)free_func);                   \
438
4.88k
  }                                                                            \
Unexecuted instantiation: sk_X509_INFO_pop_free
Unexecuted instantiation: sk_SSL_CIPHER_pop_free
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_pop_free
Unexecuted instantiation: sk_SSL_COMP_pop_free
Unexecuted instantiation: sk_ASN1_VALUE_pop_free
sk_X509_LOOKUP_pop_free
Line
Count
Source
435
4.88k
                                           sk_##name##_free_func free_func) {  \
436
4.88k
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
4.88k
                           (OPENSSL_sk_free_func)free_func);                   \
438
4.88k
  }                                                                            \
sk_STACK_OF_X509_NAME_ENTRY_pop_free(stack_st_STACK_OF_X509_NAME_ENTRY*, void (*)(stack_st_X509_NAME_ENTRY*))
Line
Count
Source
435
826k
                                           sk_##name##_free_func free_func) {  \
436
826k
    OPENSSL_sk_pop_free_ex((OPENSSL_STACK *)sk, sk_##name##_call_free_func,    \
437
826k
                           (OPENSSL_sk_free_func)free_func);                   \
438
826k
  }                                                                            \
Unexecuted instantiation: sk_BY_DIR_ENTRY_pop_free(stack_st_BY_DIR_ENTRY*, void (*)(lookup_dir_entry_st*))
Unexecuted instantiation: sk_BY_DIR_HASH_pop_free(stack_st_BY_DIR_HASH*, void (*)(lookup_dir_hashes_st*))
Unexecuted instantiation: sk_X509_POLICY_NODE_pop_free(stack_st_X509_POLICY_NODE*, void (*)(x509_policy_node_st*))
Unexecuted instantiation: sk_X509_POLICY_LEVEL_pop_free(stack_st_X509_POLICY_LEVEL*, void (*)(x509_policy_level_st*))
Unexecuted instantiation: sk_X509V3_EXT_METHOD_pop_free(stack_st_X509V3_EXT_METHOD*, void (*)(v3_ext_method*))
439
                                                                               \
440
  OPENSSL_INLINE size_t sk_##name##_insert(STACK_OF(name) *sk, ptrtype p,      \
441
22.8k
                                           size_t where) {                     \
442
22.8k
    return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (void *)p, where);           \
443
22.8k
  }                                                                            \
Unexecuted instantiation: sk_void_insert
Unexecuted instantiation: sk_OPENSSL_STRING_insert
Unexecuted instantiation: sk_BIO_insert
Unexecuted instantiation: sk_ASN1_INTEGER_insert
Unexecuted instantiation: sk_ASN1_OBJECT_insert
Unexecuted instantiation: sk_ASN1_TYPE_insert
Unexecuted instantiation: sk_CONF_VALUE_insert
Unexecuted instantiation: sk_CRYPTO_BUFFER_insert
Unexecuted instantiation: sk_X509_insert
Unexecuted instantiation: sk_GENERAL_NAME_insert
Unexecuted instantiation: sk_X509_CRL_insert
Unexecuted instantiation: sk_X509_REVOKED_insert
sk_X509_NAME_ENTRY_insert
Line
Count
Source
441
13.5k
                                           size_t where) {                     \
442
13.5k
    return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (void *)p, where);           \
443
13.5k
  }                                                                            \
Unexecuted instantiation: sk_X509_NAME_insert
sk_X509_EXTENSION_insert
Line
Count
Source
441
9.33k
                                           size_t where) {                     \
442
9.33k
    return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (void *)p, where);           \
443
9.33k
  }                                                                            \
Unexecuted instantiation: sk_GENERAL_SUBTREE_insert
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_insert
Unexecuted instantiation: sk_DIST_POINT_insert
Unexecuted instantiation: sk_POLICYQUALINFO_insert
Unexecuted instantiation: sk_POLICYINFO_insert
Unexecuted instantiation: sk_POLICY_MAPPING_insert
Unexecuted instantiation: sk_X509_ALGOR_insert
Unexecuted instantiation: sk_X509_ATTRIBUTE_insert
Unexecuted instantiation: sk_X509_OBJECT_insert
Unexecuted instantiation: sk_X509_INFO_insert
Unexecuted instantiation: sk_SSL_CIPHER_insert
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_insert
Unexecuted instantiation: sk_SSL_COMP_insert
Unexecuted instantiation: sk_ASN1_VALUE_insert
Unexecuted instantiation: sk_X509_LOOKUP_insert
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_insert(stack_st_STACK_OF_X509_NAME_ENTRY*, stack_st_X509_NAME_ENTRY*, unsigned long)
Unexecuted instantiation: sk_BY_DIR_HASH_insert(stack_st_BY_DIR_HASH*, lookup_dir_hashes_st*, unsigned long)
Unexecuted instantiation: sk_BY_DIR_ENTRY_insert(stack_st_BY_DIR_ENTRY*, lookup_dir_entry_st*, unsigned long)
Unexecuted instantiation: sk_X509_POLICY_NODE_insert(stack_st_X509_POLICY_NODE*, x509_policy_node_st*, unsigned long)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_insert(stack_st_X509_POLICY_LEVEL*, x509_policy_level_st*, unsigned long)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_insert(stack_st_X509V3_EXT_METHOD*, v3_ext_method*, unsigned long)
444
                                                                               \
445
  OPENSSL_INLINE ptrtype sk_##name##_delete(STACK_OF(name) *sk,                \
446
0
                                            size_t where) {                    \
447
0
    return (ptrtype)OPENSSL_sk_delete((OPENSSL_STACK *)sk, where);             \
448
0
  }                                                                            \
Unexecuted instantiation: sk_void_delete
Unexecuted instantiation: sk_OPENSSL_STRING_delete
Unexecuted instantiation: sk_BIO_delete
Unexecuted instantiation: sk_ASN1_INTEGER_delete
Unexecuted instantiation: sk_ASN1_OBJECT_delete
Unexecuted instantiation: sk_ASN1_TYPE_delete
Unexecuted instantiation: sk_CONF_VALUE_delete
Unexecuted instantiation: sk_CRYPTO_BUFFER_delete
Unexecuted instantiation: sk_X509_delete
Unexecuted instantiation: sk_GENERAL_NAME_delete
Unexecuted instantiation: sk_X509_CRL_delete
Unexecuted instantiation: sk_X509_REVOKED_delete
Unexecuted instantiation: sk_X509_NAME_ENTRY_delete
Unexecuted instantiation: sk_X509_NAME_delete
Unexecuted instantiation: sk_X509_EXTENSION_delete
Unexecuted instantiation: sk_GENERAL_SUBTREE_delete
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_delete
Unexecuted instantiation: sk_DIST_POINT_delete
Unexecuted instantiation: sk_POLICYQUALINFO_delete
Unexecuted instantiation: sk_POLICYINFO_delete
Unexecuted instantiation: sk_POLICY_MAPPING_delete
Unexecuted instantiation: sk_X509_ALGOR_delete
Unexecuted instantiation: sk_X509_ATTRIBUTE_delete
Unexecuted instantiation: sk_X509_OBJECT_delete
Unexecuted instantiation: sk_X509_INFO_delete
Unexecuted instantiation: sk_SSL_CIPHER_delete
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_delete
Unexecuted instantiation: sk_SSL_COMP_delete
Unexecuted instantiation: sk_ASN1_VALUE_delete
Unexecuted instantiation: sk_X509_LOOKUP_delete
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_delete(stack_st_STACK_OF_X509_NAME_ENTRY*, unsigned long)
Unexecuted instantiation: sk_BY_DIR_HASH_delete(stack_st_BY_DIR_HASH*, unsigned long)
Unexecuted instantiation: sk_BY_DIR_ENTRY_delete(stack_st_BY_DIR_ENTRY*, unsigned long)
Unexecuted instantiation: sk_X509_POLICY_NODE_delete(stack_st_X509_POLICY_NODE*, unsigned long)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_delete(stack_st_X509_POLICY_LEVEL*, unsigned long)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_delete(stack_st_X509V3_EXT_METHOD*, unsigned long)
449
                                                                               \
450
  OPENSSL_INLINE ptrtype sk_##name##_delete_ptr(STACK_OF(name) *sk,            \
451
3.63k
                                                constptrtype p) {              \
452
3.63k
    return (ptrtype)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk,                 \
453
3.63k
                                          (const void *)p);                    \
454
3.63k
  }                                                                            \
Unexecuted instantiation: sk_void_delete_ptr
Unexecuted instantiation: sk_OPENSSL_STRING_delete_ptr
Unexecuted instantiation: sk_BIO_delete_ptr
Unexecuted instantiation: sk_ASN1_INTEGER_delete_ptr
Unexecuted instantiation: sk_ASN1_OBJECT_delete_ptr
Unexecuted instantiation: sk_ASN1_TYPE_delete_ptr
sk_CONF_VALUE_delete_ptr
Line
Count
Source
451
3.63k
                                                constptrtype p) {              \
452
3.63k
    return (ptrtype)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk,                 \
453
3.63k
                                          (const void *)p);                    \
454
3.63k
  }                                                                            \
Unexecuted instantiation: sk_CRYPTO_BUFFER_delete_ptr
Unexecuted instantiation: sk_X509_delete_ptr
Unexecuted instantiation: sk_GENERAL_NAME_delete_ptr
Unexecuted instantiation: sk_X509_CRL_delete_ptr
Unexecuted instantiation: sk_X509_REVOKED_delete_ptr
Unexecuted instantiation: sk_X509_NAME_ENTRY_delete_ptr
Unexecuted instantiation: sk_X509_NAME_delete_ptr
Unexecuted instantiation: sk_X509_EXTENSION_delete_ptr
Unexecuted instantiation: sk_GENERAL_SUBTREE_delete_ptr
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_delete_ptr
Unexecuted instantiation: sk_DIST_POINT_delete_ptr
Unexecuted instantiation: sk_POLICYQUALINFO_delete_ptr
Unexecuted instantiation: sk_POLICYINFO_delete_ptr
Unexecuted instantiation: sk_POLICY_MAPPING_delete_ptr
Unexecuted instantiation: sk_X509_ALGOR_delete_ptr
Unexecuted instantiation: sk_X509_ATTRIBUTE_delete_ptr
Unexecuted instantiation: sk_X509_OBJECT_delete_ptr
Unexecuted instantiation: sk_X509_INFO_delete_ptr
Unexecuted instantiation: sk_SSL_CIPHER_delete_ptr
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_delete_ptr
Unexecuted instantiation: sk_SSL_COMP_delete_ptr
Unexecuted instantiation: sk_ASN1_VALUE_delete_ptr
Unexecuted instantiation: sk_X509_LOOKUP_delete_ptr
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_delete_ptr(stack_st_STACK_OF_X509_NAME_ENTRY*, stack_st_X509_NAME_ENTRY const*)
Unexecuted instantiation: sk_BY_DIR_HASH_delete_ptr(stack_st_BY_DIR_HASH*, lookup_dir_hashes_st const*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_delete_ptr(stack_st_BY_DIR_ENTRY*, lookup_dir_entry_st const*)
Unexecuted instantiation: sk_X509_POLICY_NODE_delete_ptr(stack_st_X509_POLICY_NODE*, x509_policy_node_st const*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_delete_ptr(stack_st_X509_POLICY_LEVEL*, x509_policy_level_st const*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_delete_ptr(stack_st_X509V3_EXT_METHOD*, v3_ext_method const*)
455
                                                                               \
456
  OPENSSL_INLINE void sk_##name##_delete_if(                                   \
457
0
      STACK_OF(name) *sk, sk_##name##_delete_if_func func, void *data) {       \
458
0
    OPENSSL_sk_delete_if((OPENSSL_STACK *)sk, sk_##name##_call_delete_if_func, \
459
0
                         (OPENSSL_sk_delete_if_func)func, data);               \
460
0
  }                                                                            \
Unexecuted instantiation: sk_void_delete_if
Unexecuted instantiation: sk_OPENSSL_STRING_delete_if
Unexecuted instantiation: sk_BIO_delete_if
Unexecuted instantiation: sk_ASN1_INTEGER_delete_if
Unexecuted instantiation: sk_ASN1_OBJECT_delete_if
Unexecuted instantiation: sk_ASN1_TYPE_delete_if
Unexecuted instantiation: sk_CONF_VALUE_delete_if
Unexecuted instantiation: sk_CRYPTO_BUFFER_delete_if
Unexecuted instantiation: sk_X509_delete_if
Unexecuted instantiation: sk_GENERAL_NAME_delete_if
Unexecuted instantiation: sk_X509_CRL_delete_if
Unexecuted instantiation: sk_X509_REVOKED_delete_if
Unexecuted instantiation: sk_X509_NAME_ENTRY_delete_if
Unexecuted instantiation: sk_X509_NAME_delete_if
Unexecuted instantiation: sk_X509_EXTENSION_delete_if
Unexecuted instantiation: sk_GENERAL_SUBTREE_delete_if
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_delete_if
Unexecuted instantiation: sk_DIST_POINT_delete_if
Unexecuted instantiation: sk_POLICYQUALINFO_delete_if
Unexecuted instantiation: sk_POLICYINFO_delete_if
Unexecuted instantiation: sk_POLICY_MAPPING_delete_if
Unexecuted instantiation: sk_X509_ALGOR_delete_if
Unexecuted instantiation: sk_X509_ATTRIBUTE_delete_if
Unexecuted instantiation: sk_X509_OBJECT_delete_if
Unexecuted instantiation: sk_X509_INFO_delete_if
Unexecuted instantiation: sk_SSL_CIPHER_delete_if
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_delete_if
Unexecuted instantiation: sk_SSL_COMP_delete_if
Unexecuted instantiation: sk_ASN1_VALUE_delete_if
Unexecuted instantiation: sk_X509_LOOKUP_delete_if
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_delete_if(stack_st_STACK_OF_X509_NAME_ENTRY*, int (*)(stack_st_X509_NAME_ENTRY*, void*), void*)
Unexecuted instantiation: sk_BY_DIR_HASH_delete_if(stack_st_BY_DIR_HASH*, int (*)(lookup_dir_hashes_st*, void*), void*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_delete_if(stack_st_BY_DIR_ENTRY*, int (*)(lookup_dir_entry_st*, void*), void*)
Unexecuted instantiation: sk_X509_POLICY_NODE_delete_if(stack_st_X509_POLICY_NODE*, int (*)(x509_policy_node_st*, void*), void*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_delete_if(stack_st_X509_POLICY_LEVEL*, int (*)(x509_policy_level_st*, void*), void*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_delete_if(stack_st_X509V3_EXT_METHOD*, int (*)(v3_ext_method*, void*), void*)
461
                                                                               \
462
  OPENSSL_INLINE int sk_##name##_find(const STACK_OF(name) *sk,                \
463
67.7k
                                      size_t *out_index, constptrtype p) {     \
464
67.7k
    return OPENSSL_sk_find((const OPENSSL_STACK *)sk, out_index,               \
465
67.7k
                           (const void *)p, sk_##name##_call_cmp_func);        \
466
67.7k
  }                                                                            \
Unexecuted instantiation: sk_void_find
Unexecuted instantiation: sk_OPENSSL_STRING_find
Unexecuted instantiation: sk_BIO_find
Unexecuted instantiation: sk_ASN1_INTEGER_find
Unexecuted instantiation: sk_ASN1_OBJECT_find
Unexecuted instantiation: sk_ASN1_TYPE_find
Unexecuted instantiation: sk_CONF_VALUE_find
Unexecuted instantiation: sk_CRYPTO_BUFFER_find
Unexecuted instantiation: sk_X509_find
Unexecuted instantiation: sk_GENERAL_NAME_find
Unexecuted instantiation: sk_X509_CRL_find
Unexecuted instantiation: sk_X509_REVOKED_find
Unexecuted instantiation: sk_X509_NAME_ENTRY_find
Unexecuted instantiation: sk_X509_NAME_find
Unexecuted instantiation: sk_X509_EXTENSION_find
Unexecuted instantiation: sk_GENERAL_SUBTREE_find
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_find
Unexecuted instantiation: sk_DIST_POINT_find
Unexecuted instantiation: sk_POLICYQUALINFO_find
Unexecuted instantiation: sk_POLICYINFO_find
Unexecuted instantiation: sk_POLICY_MAPPING_find
Unexecuted instantiation: sk_X509_ALGOR_find
Unexecuted instantiation: sk_X509_ATTRIBUTE_find
Unexecuted instantiation: sk_X509_OBJECT_find
Unexecuted instantiation: sk_X509_INFO_find
sk_SSL_CIPHER_find
Line
Count
Source
463
67.7k
                                      size_t *out_index, constptrtype p) {     \
464
67.7k
    return OPENSSL_sk_find((const OPENSSL_STACK *)sk, out_index,               \
465
67.7k
                           (const void *)p, sk_##name##_call_cmp_func);        \
466
67.7k
  }                                                                            \
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_find
Unexecuted instantiation: sk_SSL_COMP_find
Unexecuted instantiation: sk_ASN1_VALUE_find
Unexecuted instantiation: sk_X509_LOOKUP_find
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_find(stack_st_STACK_OF_X509_NAME_ENTRY const*, unsigned long*, stack_st_X509_NAME_ENTRY const*)
Unexecuted instantiation: sk_BY_DIR_HASH_find(stack_st_BY_DIR_HASH const*, unsigned long*, lookup_dir_hashes_st const*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_find(stack_st_BY_DIR_ENTRY const*, unsigned long*, lookup_dir_entry_st const*)
Unexecuted instantiation: sk_X509_POLICY_NODE_find(stack_st_X509_POLICY_NODE const*, unsigned long*, x509_policy_node_st const*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_find(stack_st_X509_POLICY_LEVEL const*, unsigned long*, x509_policy_level_st const*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_find(stack_st_X509V3_EXT_METHOD const*, unsigned long*, v3_ext_method const*)
467
                                                                               \
468
0
  OPENSSL_INLINE ptrtype sk_##name##_shift(STACK_OF(name) *sk) {               \
469
0
    return (ptrtype)OPENSSL_sk_shift((OPENSSL_STACK *)sk);                     \
470
0
  }                                                                            \
Unexecuted instantiation: sk_void_shift
Unexecuted instantiation: sk_OPENSSL_STRING_shift
Unexecuted instantiation: sk_BIO_shift
Unexecuted instantiation: sk_ASN1_INTEGER_shift
Unexecuted instantiation: sk_ASN1_OBJECT_shift
Unexecuted instantiation: sk_ASN1_TYPE_shift
Unexecuted instantiation: sk_CONF_VALUE_shift
Unexecuted instantiation: sk_CRYPTO_BUFFER_shift
Unexecuted instantiation: sk_X509_shift
Unexecuted instantiation: sk_GENERAL_NAME_shift
Unexecuted instantiation: sk_X509_CRL_shift
Unexecuted instantiation: sk_X509_REVOKED_shift
Unexecuted instantiation: sk_X509_NAME_ENTRY_shift
Unexecuted instantiation: sk_X509_NAME_shift
Unexecuted instantiation: sk_X509_EXTENSION_shift
Unexecuted instantiation: sk_GENERAL_SUBTREE_shift
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_shift
Unexecuted instantiation: sk_DIST_POINT_shift
Unexecuted instantiation: sk_POLICYQUALINFO_shift
Unexecuted instantiation: sk_POLICYINFO_shift
Unexecuted instantiation: sk_POLICY_MAPPING_shift
Unexecuted instantiation: sk_X509_ALGOR_shift
Unexecuted instantiation: sk_X509_ATTRIBUTE_shift
Unexecuted instantiation: sk_X509_OBJECT_shift
Unexecuted instantiation: sk_X509_INFO_shift
Unexecuted instantiation: sk_SSL_CIPHER_shift
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_shift
Unexecuted instantiation: sk_SSL_COMP_shift
Unexecuted instantiation: sk_ASN1_VALUE_shift
Unexecuted instantiation: sk_X509_LOOKUP_shift
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_shift(stack_st_STACK_OF_X509_NAME_ENTRY*)
Unexecuted instantiation: sk_BY_DIR_HASH_shift(stack_st_BY_DIR_HASH*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_shift(stack_st_BY_DIR_ENTRY*)
Unexecuted instantiation: sk_X509_POLICY_NODE_shift(stack_st_X509_POLICY_NODE*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_shift(stack_st_X509_POLICY_LEVEL*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_shift(stack_st_X509V3_EXT_METHOD*)
471
                                                                               \
472
6.84M
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
6.84M
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
6.84M
  }                                                                            \
sk_void_push
Line
Count
Source
472
8.62k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
8.62k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
8.62k
  }                                                                            \
Unexecuted instantiation: sk_OPENSSL_STRING_push
Unexecuted instantiation: sk_BIO_push
sk_ASN1_INTEGER_push
Line
Count
Source
472
2.17k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
2.17k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
2.17k
  }                                                                            \
sk_ASN1_OBJECT_push
Line
Count
Source
472
12.1k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
12.1k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
12.1k
  }                                                                            \
Unexecuted instantiation: sk_ASN1_TYPE_push
sk_CONF_VALUE_push
Line
Count
Source
472
420k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
420k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
420k
  }                                                                            \
sk_CRYPTO_BUFFER_push
Line
Count
Source
472
618
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
618
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
618
  }                                                                            \
sk_X509_push
Line
Count
Source
472
6
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
6
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
6
  }                                                                            \
sk_GENERAL_NAME_push
Line
Count
Source
472
365k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
365k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
365k
  }                                                                            \
Unexecuted instantiation: sk_X509_CRL_push
Unexecuted instantiation: sk_X509_REVOKED_push
sk_X509_NAME_ENTRY_push
Line
Count
Source
472
1.92M
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
1.92M
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
1.92M
  }                                                                            \
Unexecuted instantiation: sk_X509_NAME_push
Unexecuted instantiation: sk_X509_EXTENSION_push
sk_GENERAL_SUBTREE_push
Line
Count
Source
472
2.41k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
2.41k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
2.41k
  }                                                                            \
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_push
sk_DIST_POINT_push
Line
Count
Source
472
84.9k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
84.9k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
84.9k
  }                                                                            \
sk_POLICYQUALINFO_push
Line
Count
Source
472
5.56k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
5.56k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
5.56k
  }                                                                            \
sk_POLICYINFO_push
Line
Count
Source
472
5.25k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
5.25k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
5.25k
  }                                                                            \
sk_POLICY_MAPPING_push
Line
Count
Source
472
284
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
284
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
284
  }                                                                            \
Unexecuted instantiation: sk_X509_ALGOR_push
Unexecuted instantiation: sk_X509_ATTRIBUTE_push
Unexecuted instantiation: sk_X509_OBJECT_push
Unexecuted instantiation: sk_X509_INFO_push
sk_SSL_CIPHER_push
Line
Count
Source
472
207k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
207k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
207k
  }                                                                            \
sk_SRTP_PROTECTION_PROFILE_push
Line
Count
Source
472
657
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
657
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
657
  }                                                                            \
Unexecuted instantiation: sk_SSL_COMP_push
sk_ASN1_VALUE_push
Line
Count
Source
472
2.88M
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
2.88M
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
2.88M
  }                                                                            \
Unexecuted instantiation: sk_X509_LOOKUP_push
sk_STACK_OF_X509_NAME_ENTRY_push(stack_st_STACK_OF_X509_NAME_ENTRY*, stack_st_X509_NAME_ENTRY*)
Line
Count
Source
472
926k
  OPENSSL_INLINE size_t sk_##name##_push(STACK_OF(name) *sk, ptrtype p) {      \
473
926k
    return OPENSSL_sk_push((OPENSSL_STACK *)sk, (void *)p);                    \
474
926k
  }                                                                            \
Unexecuted instantiation: sk_BY_DIR_ENTRY_push(stack_st_BY_DIR_ENTRY*, lookup_dir_entry_st*)
Unexecuted instantiation: sk_BY_DIR_HASH_push(stack_st_BY_DIR_HASH*, lookup_dir_hashes_st*)
Unexecuted instantiation: sk_X509_POLICY_NODE_push(stack_st_X509_POLICY_NODE*, x509_policy_node_st*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_push(stack_st_X509_POLICY_LEVEL*, x509_policy_level_st*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_push(stack_st_X509V3_EXT_METHOD*, v3_ext_method*)
475
                                                                               \
476
5.34k
  OPENSSL_INLINE ptrtype sk_##name##_pop(STACK_OF(name) *sk) {                 \
477
5.34k
    return (ptrtype)OPENSSL_sk_pop((OPENSSL_STACK *)sk);                       \
478
5.34k
  }                                                                            \
Unexecuted instantiation: sk_void_pop
Unexecuted instantiation: sk_OPENSSL_STRING_pop
Unexecuted instantiation: sk_BIO_pop
Unexecuted instantiation: sk_ASN1_INTEGER_pop
Unexecuted instantiation: sk_ASN1_OBJECT_pop
Unexecuted instantiation: sk_ASN1_TYPE_pop
Unexecuted instantiation: sk_CONF_VALUE_pop
sk_CRYPTO_BUFFER_pop
Line
Count
Source
476
5.34k
  OPENSSL_INLINE ptrtype sk_##name##_pop(STACK_OF(name) *sk) {                 \
477
5.34k
    return (ptrtype)OPENSSL_sk_pop((OPENSSL_STACK *)sk);                       \
478
5.34k
  }                                                                            \
Unexecuted instantiation: sk_X509_pop
Unexecuted instantiation: sk_GENERAL_NAME_pop
Unexecuted instantiation: sk_X509_CRL_pop
Unexecuted instantiation: sk_X509_REVOKED_pop
Unexecuted instantiation: sk_X509_NAME_ENTRY_pop
Unexecuted instantiation: sk_X509_NAME_pop
Unexecuted instantiation: sk_X509_EXTENSION_pop
Unexecuted instantiation: sk_GENERAL_SUBTREE_pop
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_pop
Unexecuted instantiation: sk_DIST_POINT_pop
Unexecuted instantiation: sk_POLICYQUALINFO_pop
Unexecuted instantiation: sk_POLICYINFO_pop
Unexecuted instantiation: sk_POLICY_MAPPING_pop
Unexecuted instantiation: sk_X509_ALGOR_pop
Unexecuted instantiation: sk_X509_ATTRIBUTE_pop
Unexecuted instantiation: sk_X509_OBJECT_pop
Unexecuted instantiation: sk_X509_INFO_pop
Unexecuted instantiation: sk_SSL_CIPHER_pop
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_pop
Unexecuted instantiation: sk_SSL_COMP_pop
Unexecuted instantiation: sk_ASN1_VALUE_pop
Unexecuted instantiation: sk_X509_LOOKUP_pop
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_pop(stack_st_STACK_OF_X509_NAME_ENTRY*)
Unexecuted instantiation: sk_BY_DIR_HASH_pop(stack_st_BY_DIR_HASH*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_pop(stack_st_BY_DIR_ENTRY*)
Unexecuted instantiation: sk_X509_POLICY_NODE_pop(stack_st_X509_POLICY_NODE*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_pop(stack_st_X509_POLICY_LEVEL*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_pop(stack_st_X509V3_EXT_METHOD*)
479
                                                                               \
480
53.7k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_dup(const STACK_OF(name) *sk) {   \
481
53.7k
    return (STACK_OF(name) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk);        \
482
53.7k
  }                                                                            \
Unexecuted instantiation: sk_void_dup
Unexecuted instantiation: sk_OPENSSL_STRING_dup
Unexecuted instantiation: sk_BIO_dup
Unexecuted instantiation: sk_ASN1_INTEGER_dup
Unexecuted instantiation: sk_ASN1_OBJECT_dup
Unexecuted instantiation: sk_ASN1_TYPE_dup
Unexecuted instantiation: sk_CONF_VALUE_dup
Unexecuted instantiation: sk_CRYPTO_BUFFER_dup
sk_X509_dup
Line
Count
Source
480
53.7k
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_dup(const STACK_OF(name) *sk) {   \
481
53.7k
    return (STACK_OF(name) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk);        \
482
53.7k
  }                                                                            \
Unexecuted instantiation: sk_GENERAL_NAME_dup
Unexecuted instantiation: sk_X509_CRL_dup
Unexecuted instantiation: sk_X509_REVOKED_dup
Unexecuted instantiation: sk_X509_NAME_ENTRY_dup
Unexecuted instantiation: sk_X509_NAME_dup
Unexecuted instantiation: sk_X509_EXTENSION_dup
Unexecuted instantiation: sk_GENERAL_SUBTREE_dup
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_dup
Unexecuted instantiation: sk_DIST_POINT_dup
Unexecuted instantiation: sk_POLICYQUALINFO_dup
Unexecuted instantiation: sk_POLICYINFO_dup
Unexecuted instantiation: sk_POLICY_MAPPING_dup
Unexecuted instantiation: sk_X509_ALGOR_dup
Unexecuted instantiation: sk_X509_ATTRIBUTE_dup
Unexecuted instantiation: sk_X509_OBJECT_dup
Unexecuted instantiation: sk_X509_INFO_dup
Unexecuted instantiation: sk_SSL_CIPHER_dup
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_dup
Unexecuted instantiation: sk_SSL_COMP_dup
Unexecuted instantiation: sk_ASN1_VALUE_dup
Unexecuted instantiation: sk_X509_LOOKUP_dup
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_dup(stack_st_STACK_OF_X509_NAME_ENTRY const*)
Unexecuted instantiation: sk_BY_DIR_HASH_dup(stack_st_BY_DIR_HASH const*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_dup(stack_st_BY_DIR_ENTRY const*)
Unexecuted instantiation: sk_X509_POLICY_NODE_dup(stack_st_X509_POLICY_NODE const*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_dup(stack_st_X509_POLICY_LEVEL const*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_dup(stack_st_X509V3_EXT_METHOD const*)
483
                                                                               \
484
0
  OPENSSL_INLINE void sk_##name##_sort(STACK_OF(name) *sk) {                   \
485
0
    OPENSSL_sk_sort((OPENSSL_STACK *)sk, sk_##name##_call_cmp_func);           \
486
0
  }                                                                            \
Unexecuted instantiation: sk_void_sort
Unexecuted instantiation: sk_OPENSSL_STRING_sort
Unexecuted instantiation: sk_BIO_sort
Unexecuted instantiation: sk_ASN1_INTEGER_sort
Unexecuted instantiation: sk_ASN1_OBJECT_sort
Unexecuted instantiation: sk_ASN1_TYPE_sort
Unexecuted instantiation: sk_CONF_VALUE_sort
Unexecuted instantiation: sk_CRYPTO_BUFFER_sort
Unexecuted instantiation: sk_X509_sort
Unexecuted instantiation: sk_GENERAL_NAME_sort
Unexecuted instantiation: sk_X509_CRL_sort
Unexecuted instantiation: sk_X509_REVOKED_sort
Unexecuted instantiation: sk_X509_NAME_ENTRY_sort
Unexecuted instantiation: sk_X509_NAME_sort
Unexecuted instantiation: sk_X509_EXTENSION_sort
Unexecuted instantiation: sk_GENERAL_SUBTREE_sort
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_sort
Unexecuted instantiation: sk_DIST_POINT_sort
Unexecuted instantiation: sk_POLICYQUALINFO_sort
Unexecuted instantiation: sk_POLICYINFO_sort
Unexecuted instantiation: sk_POLICY_MAPPING_sort
Unexecuted instantiation: sk_X509_ALGOR_sort
Unexecuted instantiation: sk_X509_ATTRIBUTE_sort
Unexecuted instantiation: sk_X509_OBJECT_sort
Unexecuted instantiation: sk_X509_INFO_sort
Unexecuted instantiation: sk_SSL_CIPHER_sort
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_sort
Unexecuted instantiation: sk_SSL_COMP_sort
Unexecuted instantiation: sk_ASN1_VALUE_sort
Unexecuted instantiation: sk_X509_LOOKUP_sort
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_sort(stack_st_STACK_OF_X509_NAME_ENTRY*)
Unexecuted instantiation: sk_BY_DIR_HASH_sort(stack_st_BY_DIR_HASH*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_sort(stack_st_BY_DIR_ENTRY*)
Unexecuted instantiation: sk_X509_POLICY_NODE_sort(stack_st_X509_POLICY_NODE*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_sort(stack_st_X509_POLICY_LEVEL*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_sort(stack_st_X509V3_EXT_METHOD*)
487
                                                                               \
488
0
  OPENSSL_INLINE int sk_##name##_is_sorted(const STACK_OF(name) *sk) {         \
489
0
    return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk);                    \
490
0
  }                                                                            \
Unexecuted instantiation: sk_void_is_sorted
Unexecuted instantiation: sk_OPENSSL_STRING_is_sorted
Unexecuted instantiation: sk_BIO_is_sorted
Unexecuted instantiation: sk_ASN1_INTEGER_is_sorted
Unexecuted instantiation: sk_ASN1_OBJECT_is_sorted
Unexecuted instantiation: sk_ASN1_TYPE_is_sorted
Unexecuted instantiation: sk_CONF_VALUE_is_sorted
Unexecuted instantiation: sk_CRYPTO_BUFFER_is_sorted
Unexecuted instantiation: sk_X509_is_sorted
Unexecuted instantiation: sk_GENERAL_NAME_is_sorted
Unexecuted instantiation: sk_X509_CRL_is_sorted
Unexecuted instantiation: sk_X509_REVOKED_is_sorted
Unexecuted instantiation: sk_X509_NAME_ENTRY_is_sorted
Unexecuted instantiation: sk_X509_NAME_is_sorted
Unexecuted instantiation: sk_X509_EXTENSION_is_sorted
Unexecuted instantiation: sk_GENERAL_SUBTREE_is_sorted
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_is_sorted
Unexecuted instantiation: sk_DIST_POINT_is_sorted
Unexecuted instantiation: sk_POLICYQUALINFO_is_sorted
Unexecuted instantiation: sk_POLICYINFO_is_sorted
Unexecuted instantiation: sk_POLICY_MAPPING_is_sorted
Unexecuted instantiation: sk_X509_ALGOR_is_sorted
Unexecuted instantiation: sk_X509_ATTRIBUTE_is_sorted
Unexecuted instantiation: sk_X509_OBJECT_is_sorted
Unexecuted instantiation: sk_X509_INFO_is_sorted
Unexecuted instantiation: sk_SSL_CIPHER_is_sorted
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_is_sorted
Unexecuted instantiation: sk_SSL_COMP_is_sorted
Unexecuted instantiation: sk_ASN1_VALUE_is_sorted
Unexecuted instantiation: sk_X509_LOOKUP_is_sorted
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_is_sorted(stack_st_STACK_OF_X509_NAME_ENTRY const*)
Unexecuted instantiation: sk_BY_DIR_HASH_is_sorted(stack_st_BY_DIR_HASH const*)
Unexecuted instantiation: sk_BY_DIR_ENTRY_is_sorted(stack_st_BY_DIR_ENTRY const*)
Unexecuted instantiation: sk_X509_POLICY_NODE_is_sorted(stack_st_X509_POLICY_NODE const*)
Unexecuted instantiation: sk_X509_POLICY_LEVEL_is_sorted(stack_st_X509_POLICY_LEVEL const*)
Unexecuted instantiation: sk_X509V3_EXT_METHOD_is_sorted(stack_st_X509V3_EXT_METHOD const*)
491
                                                                               \
492
  OPENSSL_INLINE sk_##name##_cmp_func sk_##name##_set_cmp_func(                \
493
0
      STACK_OF(name) *sk, sk_##name##_cmp_func comp) {                         \
494
0
    return (sk_##name##_cmp_func)OPENSSL_sk_set_cmp_func(                      \
495
0
        (OPENSSL_STACK *)sk, (OPENSSL_sk_cmp_func)comp);                       \
496
0
  }                                                                            \
Unexecuted instantiation: sk_void_set_cmp_func
Unexecuted instantiation: sk_OPENSSL_STRING_set_cmp_func
Unexecuted instantiation: sk_BIO_set_cmp_func
Unexecuted instantiation: sk_ASN1_INTEGER_set_cmp_func
Unexecuted instantiation: sk_ASN1_OBJECT_set_cmp_func
Unexecuted instantiation: sk_ASN1_TYPE_set_cmp_func
Unexecuted instantiation: sk_CONF_VALUE_set_cmp_func
Unexecuted instantiation: sk_CRYPTO_BUFFER_set_cmp_func
Unexecuted instantiation: sk_X509_set_cmp_func
Unexecuted instantiation: sk_GENERAL_NAME_set_cmp_func
Unexecuted instantiation: sk_X509_CRL_set_cmp_func
Unexecuted instantiation: sk_X509_REVOKED_set_cmp_func
Unexecuted instantiation: sk_X509_NAME_ENTRY_set_cmp_func
Unexecuted instantiation: sk_X509_NAME_set_cmp_func
Unexecuted instantiation: sk_X509_EXTENSION_set_cmp_func
Unexecuted instantiation: sk_GENERAL_SUBTREE_set_cmp_func
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_set_cmp_func
Unexecuted instantiation: sk_DIST_POINT_set_cmp_func
Unexecuted instantiation: sk_POLICYQUALINFO_set_cmp_func
Unexecuted instantiation: sk_POLICYINFO_set_cmp_func
Unexecuted instantiation: sk_POLICY_MAPPING_set_cmp_func
Unexecuted instantiation: sk_X509_ALGOR_set_cmp_func
Unexecuted instantiation: sk_X509_ATTRIBUTE_set_cmp_func
Unexecuted instantiation: sk_X509_OBJECT_set_cmp_func
Unexecuted instantiation: sk_X509_INFO_set_cmp_func
Unexecuted instantiation: sk_SSL_CIPHER_set_cmp_func
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_set_cmp_func
Unexecuted instantiation: sk_SSL_COMP_set_cmp_func
Unexecuted instantiation: sk_ASN1_VALUE_set_cmp_func
Unexecuted instantiation: sk_X509_LOOKUP_set_cmp_func
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_set_cmp_func(stack_st_STACK_OF_X509_NAME_ENTRY*, int (*)(stack_st_X509_NAME_ENTRY const* const*, stack_st_X509_NAME_ENTRY const* const*))
Unexecuted instantiation: sk_BY_DIR_HASH_set_cmp_func(stack_st_BY_DIR_HASH*, int (*)(lookup_dir_hashes_st const* const*, lookup_dir_hashes_st const* const*))
Unexecuted instantiation: sk_BY_DIR_ENTRY_set_cmp_func(stack_st_BY_DIR_ENTRY*, int (*)(lookup_dir_entry_st const* const*, lookup_dir_entry_st const* const*))
Unexecuted instantiation: sk_X509_POLICY_NODE_set_cmp_func(stack_st_X509_POLICY_NODE*, int (*)(x509_policy_node_st const* const*, x509_policy_node_st const* const*))
Unexecuted instantiation: sk_X509_POLICY_LEVEL_set_cmp_func(stack_st_X509_POLICY_LEVEL*, int (*)(x509_policy_level_st const* const*, x509_policy_level_st const* const*))
Unexecuted instantiation: sk_X509V3_EXT_METHOD_set_cmp_func(stack_st_X509V3_EXT_METHOD*, int (*)(v3_ext_method const* const*, v3_ext_method const* const*))
497
                                                                               \
498
  OPENSSL_INLINE STACK_OF(name) *sk_##name##_deep_copy(                        \
499
      const STACK_OF(name) *sk, sk_##name##_copy_func copy_func,               \
500
170k
      sk_##name##_free_func free_func) {                                       \
501
170k
    return (STACK_OF(name) *)OPENSSL_sk_deep_copy(                             \
502
170k
        (const OPENSSL_STACK *)sk, sk_##name##_call_copy_func,                 \
503
170k
        (OPENSSL_sk_copy_func)copy_func, sk_##name##_call_free_func,           \
504
170k
        (OPENSSL_sk_free_func)free_func);                                      \
505
170k
  }                                                                            \
Unexecuted instantiation: sk_void_deep_copy
Unexecuted instantiation: sk_OPENSSL_STRING_deep_copy
Unexecuted instantiation: sk_BIO_deep_copy
Unexecuted instantiation: sk_ASN1_INTEGER_deep_copy
Unexecuted instantiation: sk_ASN1_OBJECT_deep_copy
Unexecuted instantiation: sk_ASN1_TYPE_deep_copy
Unexecuted instantiation: sk_CONF_VALUE_deep_copy
sk_CRYPTO_BUFFER_deep_copy
Line
Count
Source
500
170k
      sk_##name##_free_func free_func) {                                       \
501
170k
    return (STACK_OF(name) *)OPENSSL_sk_deep_copy(                             \
502
170k
        (const OPENSSL_STACK *)sk, sk_##name##_call_copy_func,                 \
503
170k
        (OPENSSL_sk_copy_func)copy_func, sk_##name##_call_free_func,           \
504
170k
        (OPENSSL_sk_free_func)free_func);                                      \
505
170k
  }                                                                            \
Unexecuted instantiation: sk_X509_deep_copy
Unexecuted instantiation: sk_GENERAL_NAME_deep_copy
Unexecuted instantiation: sk_X509_CRL_deep_copy
Unexecuted instantiation: sk_X509_REVOKED_deep_copy
Unexecuted instantiation: sk_X509_NAME_ENTRY_deep_copy
Unexecuted instantiation: sk_X509_NAME_deep_copy
Unexecuted instantiation: sk_X509_EXTENSION_deep_copy
Unexecuted instantiation: sk_GENERAL_SUBTREE_deep_copy
Unexecuted instantiation: sk_ACCESS_DESCRIPTION_deep_copy
Unexecuted instantiation: sk_DIST_POINT_deep_copy
Unexecuted instantiation: sk_POLICYQUALINFO_deep_copy
Unexecuted instantiation: sk_POLICYINFO_deep_copy
Unexecuted instantiation: sk_POLICY_MAPPING_deep_copy
Unexecuted instantiation: sk_X509_ALGOR_deep_copy
Unexecuted instantiation: sk_X509_ATTRIBUTE_deep_copy
Unexecuted instantiation: sk_X509_OBJECT_deep_copy
Unexecuted instantiation: sk_X509_INFO_deep_copy
Unexecuted instantiation: sk_SSL_CIPHER_deep_copy
Unexecuted instantiation: sk_SRTP_PROTECTION_PROFILE_deep_copy
Unexecuted instantiation: sk_SSL_COMP_deep_copy
Unexecuted instantiation: sk_ASN1_VALUE_deep_copy
Unexecuted instantiation: sk_X509_LOOKUP_deep_copy
Unexecuted instantiation: sk_STACK_OF_X509_NAME_ENTRY_deep_copy(stack_st_STACK_OF_X509_NAME_ENTRY const*, stack_st_X509_NAME_ENTRY* (*)(stack_st_X509_NAME_ENTRY const*), void (*)(stack_st_X509_NAME_ENTRY*))
Unexecuted instantiation: sk_BY_DIR_HASH_deep_copy(stack_st_BY_DIR_HASH const*, lookup_dir_hashes_st* (*)(lookup_dir_hashes_st const*), void (*)(lookup_dir_hashes_st*))
Unexecuted instantiation: sk_BY_DIR_ENTRY_deep_copy(stack_st_BY_DIR_ENTRY const*, lookup_dir_entry_st* (*)(lookup_dir_entry_st const*), void (*)(lookup_dir_entry_st*))
Unexecuted instantiation: sk_X509_POLICY_NODE_deep_copy(stack_st_X509_POLICY_NODE const*, x509_policy_node_st* (*)(x509_policy_node_st const*), void (*)(x509_policy_node_st*))
Unexecuted instantiation: sk_X509_POLICY_LEVEL_deep_copy(stack_st_X509_POLICY_LEVEL const*, x509_policy_level_st* (*)(x509_policy_level_st const*), void (*)(x509_policy_level_st*))
Unexecuted instantiation: sk_X509V3_EXT_METHOD_deep_copy(stack_st_X509V3_EXT_METHOD const*, v3_ext_method* (*)(v3_ext_method const*), void (*)(v3_ext_method*))
506
                                                                               \
507
  OPENSSL_GNUC_CLANG_PRAGMA("GCC diagnostic pop")                              \
508
  OPENSSL_MSVC_PRAGMA(warning(pop))
509
510
511
// Built-in stacks.
512
513
typedef char *OPENSSL_STRING;
514
515
DEFINE_STACK_OF(void)
516
DEFINE_NAMED_STACK_OF(OPENSSL_STRING, char)
517
518
519
#if defined(__cplusplus)
520
}  // extern C
521
#endif
522
523
#if !defined(BORINGSSL_NO_CXX)
524
extern "C++" {
525
526
#include <type_traits>
527
528
BSSL_NAMESPACE_BEGIN
529
530
namespace internal {
531
532
// Stacks defined with |DEFINE_CONST_STACK_OF| are freed with |sk_free|.
533
template <typename Stack>
534
struct DeleterImpl<Stack, std::enable_if_t<StackTraits<Stack>::kIsConst>> {
535
29.4k
  static void Free(Stack *sk) {
536
29.4k
    OPENSSL_sk_free(reinterpret_cast<OPENSSL_STACK *>(sk));
537
29.4k
  }
bssl::internal::DeleterImpl<stack_st_SSL_CIPHER, void>::Free(stack_st_SSL_CIPHER*)
Line
Count
Source
535
25.2k
  static void Free(Stack *sk) {
536
25.2k
    OPENSSL_sk_free(reinterpret_cast<OPENSSL_STACK *>(sk));
537
25.2k
  }
bssl::internal::DeleterImpl<stack_st_SRTP_PROTECTION_PROFILE, void>::Free(stack_st_SRTP_PROTECTION_PROFILE*)
Line
Count
Source
535
4.21k
  static void Free(Stack *sk) {
536
4.21k
    OPENSSL_sk_free(reinterpret_cast<OPENSSL_STACK *>(sk));
537
4.21k
  }
538
};
539
540
// Stacks defined with |DEFINE_STACK_OF| are freed with |sk_pop_free| and the
541
// corresponding type's deleter.
542
template <typename Stack>
543
struct DeleterImpl<Stack, std::enable_if_t<!StackTraits<Stack>::kIsConst>> {
544
390k
  static void Free(Stack *sk) {
545
    // sk_FOO_pop_free is defined by macros and bound by name, so we cannot
546
    // access it from C++ here.
547
390k
    using Type = typename StackTraits<Stack>::Type;
548
390k
    OPENSSL_sk_pop_free_ex(
549
390k
        reinterpret_cast<OPENSSL_STACK *>(sk),
550
459k
        [](OPENSSL_sk_free_func /* unused */, void *ptr) {
551
459k
          DeleterImpl<Type>::Free(reinterpret_cast<Type *>(ptr));
552
459k
        },
bssl::internal::DeleterImpl<stack_st_CRYPTO_BUFFER, void>::Free(stack_st_CRYPTO_BUFFER*)::{lambda(void (*)(void*), void*)#1}::operator()(void (*)(void*), void*) const
Line
Count
Source
550
458k
        [](OPENSSL_sk_free_func /* unused */, void *ptr) {
551
458k
          DeleterImpl<Type>::Free(reinterpret_cast<Type *>(ptr));
552
458k
        },
bssl::internal::DeleterImpl<stack_st_X509, void>::Free(stack_st_X509*)::{lambda(void (*)(void*), void*)#1}::operator()(void (*)(void*), void*) const
Line
Count
Source
550
975
        [](OPENSSL_sk_free_func /* unused */, void *ptr) {
551
975
          DeleterImpl<Type>::Free(reinterpret_cast<Type *>(ptr));
552
975
        },
Unexecuted instantiation: bssl::internal::DeleterImpl<stack_st_X509_NAME, void>::Free(stack_st_X509_NAME*)::{lambda(void (*)(void*), void*)#1}::operator()(void (*)(void*), void*) const
bssl::internal::DeleterImpl<stack_st_ACCESS_DESCRIPTION, void>::Free(stack_st_ACCESS_DESCRIPTION*)::{lambda(void (*)(void*), void*)#1}::operator()(void (*)(void*), void*) const
Line
Count
Source
550
204
        [](OPENSSL_sk_free_func /* unused */, void *ptr) {
551
204
          DeleterImpl<Type>::Free(reinterpret_cast<Type *>(ptr));
552
204
        },
553
390k
        nullptr);
554
390k
  }
bssl::internal::DeleterImpl<stack_st_CRYPTO_BUFFER, void>::Free(stack_st_CRYPTO_BUFFER*)
Line
Count
Source
544
370k
  static void Free(Stack *sk) {
545
    // sk_FOO_pop_free is defined by macros and bound by name, so we cannot
546
    // access it from C++ here.
547
370k
    using Type = typename StackTraits<Stack>::Type;
548
370k
    OPENSSL_sk_pop_free_ex(
549
370k
        reinterpret_cast<OPENSSL_STACK *>(sk),
550
370k
        [](OPENSSL_sk_free_func /* unused */, void *ptr) {
551
370k
          DeleterImpl<Type>::Free(reinterpret_cast<Type *>(ptr));
552
370k
        },
553
370k
        nullptr);
554
370k
  }
bssl::internal::DeleterImpl<stack_st_X509, void>::Free(stack_st_X509*)
Line
Count
Source
544
19.8k
  static void Free(Stack *sk) {
545
    // sk_FOO_pop_free is defined by macros and bound by name, so we cannot
546
    // access it from C++ here.
547
19.8k
    using Type = typename StackTraits<Stack>::Type;
548
19.8k
    OPENSSL_sk_pop_free_ex(
549
19.8k
        reinterpret_cast<OPENSSL_STACK *>(sk),
550
19.8k
        [](OPENSSL_sk_free_func /* unused */, void *ptr) {
551
19.8k
          DeleterImpl<Type>::Free(reinterpret_cast<Type *>(ptr));
552
19.8k
        },
553
19.8k
        nullptr);
554
19.8k
  }
Unexecuted instantiation: bssl::internal::DeleterImpl<stack_st_X509_NAME, void>::Free(stack_st_X509_NAME*)
bssl::internal::DeleterImpl<stack_st_ACCESS_DESCRIPTION, void>::Free(stack_st_ACCESS_DESCRIPTION*)
Line
Count
Source
544
42
  static void Free(Stack *sk) {
545
    // sk_FOO_pop_free is defined by macros and bound by name, so we cannot
546
    // access it from C++ here.
547
42
    using Type = typename StackTraits<Stack>::Type;
548
42
    OPENSSL_sk_pop_free_ex(
549
42
        reinterpret_cast<OPENSSL_STACK *>(sk),
550
42
        [](OPENSSL_sk_free_func /* unused */, void *ptr) {
551
42
          DeleterImpl<Type>::Free(reinterpret_cast<Type *>(ptr));
552
42
        },
553
42
        nullptr);
554
42
  }
555
};
556
557
template <typename Stack>
558
class StackIteratorImpl {
559
 public:
560
  using Type = typename StackTraits<Stack>::Type;
561
  // Iterators must be default-constructable.
562
  StackIteratorImpl() : sk_(nullptr), idx_(0) {}
563
689k
  StackIteratorImpl(const Stack *sk, size_t idx) : sk_(sk), idx_(idx) {}
bssl::internal::StackIteratorImpl<stack_st_SRTP_PROTECTION_PROFILE>::StackIteratorImpl(stack_st_SRTP_PROTECTION_PROFILE const*, unsigned long)
Line
Count
Source
563
4
  StackIteratorImpl(const Stack *sk, size_t idx) : sk_(sk), idx_(idx) {}
bssl::internal::StackIteratorImpl<stack_st_SSL_CIPHER>::StackIteratorImpl(stack_st_SSL_CIPHER const*, unsigned long)
Line
Count
Source
563
134k
  StackIteratorImpl(const Stack *sk, size_t idx) : sk_(sk), idx_(idx) {}
bssl::internal::StackIteratorImpl<stack_st_CRYPTO_BUFFER>::StackIteratorImpl(stack_st_CRYPTO_BUFFER const*, unsigned long)
Line
Count
Source
563
462k
  StackIteratorImpl(const Stack *sk, size_t idx) : sk_(sk), idx_(idx) {}
bssl::internal::StackIteratorImpl<stack_st_X509>::StackIteratorImpl(stack_st_X509 const*, unsigned long)
Line
Count
Source
563
92.4k
  StackIteratorImpl(const Stack *sk, size_t idx) : sk_(sk), idx_(idx) {}
Unexecuted instantiation: bssl::internal::StackIteratorImpl<stack_st_X509_NAME>::StackIteratorImpl(stack_st_X509_NAME const*, unsigned long)
564
565
1.86M
  bool operator==(StackIteratorImpl other) const {
566
1.86M
    return sk_ == other.sk_ && idx_ == other.idx_;
567
1.86M
  }
bssl::internal::StackIteratorImpl<stack_st_SRTP_PROTECTION_PROFILE>::operator==(bssl::internal::StackIteratorImpl<stack_st_SRTP_PROTECTION_PROFILE>) const
Line
Count
Source
565
2
  bool operator==(StackIteratorImpl other) const {
566
2
    return sk_ == other.sk_ && idx_ == other.idx_;
567
2
  }
bssl::internal::StackIteratorImpl<stack_st_SSL_CIPHER>::operator==(bssl::internal::StackIteratorImpl<stack_st_SSL_CIPHER>) const
Line
Count
Source
565
1.41M
  bool operator==(StackIteratorImpl other) const {
566
1.41M
    return sk_ == other.sk_ && idx_ == other.idx_;
567
1.41M
  }
bssl::internal::StackIteratorImpl<stack_st_CRYPTO_BUFFER>::operator==(bssl::internal::StackIteratorImpl<stack_st_CRYPTO_BUFFER>) const
Line
Count
Source
565
396k
  bool operator==(StackIteratorImpl other) const {
566
396k
    return sk_ == other.sk_ && idx_ == other.idx_;
567
396k
  }
bssl::internal::StackIteratorImpl<stack_st_X509>::operator==(bssl::internal::StackIteratorImpl<stack_st_X509>) const
Line
Count
Source
565
48.3k
  bool operator==(StackIteratorImpl other) const {
566
48.3k
    return sk_ == other.sk_ && idx_ == other.idx_;
567
48.3k
  }
Unexecuted instantiation: bssl::internal::StackIteratorImpl<stack_st_X509_NAME>::operator==(bssl::internal::StackIteratorImpl<stack_st_X509_NAME>) const
568
1.86M
  bool operator!=(StackIteratorImpl other) const {
569
1.86M
    return !(*this == other);
570
1.86M
  }
bssl::internal::StackIteratorImpl<stack_st_SRTP_PROTECTION_PROFILE>::operator!=(bssl::internal::StackIteratorImpl<stack_st_SRTP_PROTECTION_PROFILE>) const
Line
Count
Source
568
2
  bool operator!=(StackIteratorImpl other) const {
569
2
    return !(*this == other);
570
2
  }
bssl::internal::StackIteratorImpl<stack_st_SSL_CIPHER>::operator!=(bssl::internal::StackIteratorImpl<stack_st_SSL_CIPHER>) const
Line
Count
Source
568
1.41M
  bool operator!=(StackIteratorImpl other) const {
569
1.41M
    return !(*this == other);
570
1.41M
  }
bssl::internal::StackIteratorImpl<stack_st_CRYPTO_BUFFER>::operator!=(bssl::internal::StackIteratorImpl<stack_st_CRYPTO_BUFFER>) const
Line
Count
Source
568
396k
  bool operator!=(StackIteratorImpl other) const {
569
396k
    return !(*this == other);
570
396k
  }
bssl::internal::StackIteratorImpl<stack_st_X509>::operator!=(bssl::internal::StackIteratorImpl<stack_st_X509>) const
Line
Count
Source
568
48.3k
  bool operator!=(StackIteratorImpl other) const {
569
48.3k
    return !(*this == other);
570
48.3k
  }
Unexecuted instantiation: bssl::internal::StackIteratorImpl<stack_st_X509_NAME>::operator!=(bssl::internal::StackIteratorImpl<stack_st_X509_NAME>) const
571
572
1.52M
  Type *operator*() const {
573
1.52M
    return reinterpret_cast<Type *>(
574
1.52M
        OPENSSL_sk_value(reinterpret_cast<const OPENSSL_STACK *>(sk_), idx_));
575
1.52M
  }
Unexecuted instantiation: bssl::internal::StackIteratorImpl<stack_st_SRTP_PROTECTION_PROFILE>::operator*() const
bssl::internal::StackIteratorImpl<stack_st_SSL_CIPHER>::operator*() const
Line
Count
Source
572
1.34M
  Type *operator*() const {
573
1.34M
    return reinterpret_cast<Type *>(
574
1.34M
        OPENSSL_sk_value(reinterpret_cast<const OPENSSL_STACK *>(sk_), idx_));
575
1.34M
  }
bssl::internal::StackIteratorImpl<stack_st_CRYPTO_BUFFER>::operator*() const
Line
Count
Source
572
174k
  Type *operator*() const {
573
174k
    return reinterpret_cast<Type *>(
574
174k
        OPENSSL_sk_value(reinterpret_cast<const OPENSSL_STACK *>(sk_), idx_));
575
174k
  }
bssl::internal::StackIteratorImpl<stack_st_X509>::operator*() const
Line
Count
Source
572
2.09k
  Type *operator*() const {
573
2.09k
    return reinterpret_cast<Type *>(
574
2.09k
        OPENSSL_sk_value(reinterpret_cast<const OPENSSL_STACK *>(sk_), idx_));
575
2.09k
  }
Unexecuted instantiation: bssl::internal::StackIteratorImpl<stack_st_X509_NAME>::operator*() const
576
577
1.51M
  StackIteratorImpl &operator++(/* prefix */) {
578
1.51M
    idx_++;
579
1.51M
    return *this;
580
1.51M
  }
Unexecuted instantiation: bssl::internal::StackIteratorImpl<stack_st_SRTP_PROTECTION_PROFILE>::operator++()
bssl::internal::StackIteratorImpl<stack_st_SSL_CIPHER>::operator++()
Line
Count
Source
577
1.34M
  StackIteratorImpl &operator++(/* prefix */) {
578
1.34M
    idx_++;
579
1.34M
    return *this;
580
1.34M
  }
bssl::internal::StackIteratorImpl<stack_st_CRYPTO_BUFFER>::operator++()
Line
Count
Source
577
164k
  StackIteratorImpl &operator++(/* prefix */) {
578
164k
    idx_++;
579
164k
    return *this;
580
164k
  }
bssl::internal::StackIteratorImpl<stack_st_X509>::operator++()
Line
Count
Source
577
2.09k
  StackIteratorImpl &operator++(/* prefix */) {
578
2.09k
    idx_++;
579
2.09k
    return *this;
580
2.09k
  }
Unexecuted instantiation: bssl::internal::StackIteratorImpl<stack_st_X509_NAME>::operator++()
581
582
  StackIteratorImpl operator++(int /* postfix */) {
583
    StackIteratorImpl copy(*this);
584
    ++(*this);
585
    return copy;
586
  }
587
588
 private:
589
  const Stack *sk_;
590
  size_t idx_;
591
};
592
593
template <typename Stack>
594
using StackIterator =
595
    std::enable_if_t<StackTraits<Stack>::kIsStack, StackIteratorImpl<Stack>>;
596
597
}  // namespace internal
598
599
// PushToStack pushes |elem| to |sk|. It returns true on success and false on
600
// allocation failure.
601
template <typename Stack>
602
inline std::enable_if_t<!internal::StackTraits<Stack>::kIsConst, bool>
603
PushToStack(Stack *sk,
604
483k
            UniquePtr<typename internal::StackTraits<Stack>::Type> elem) {
605
483k
  if (!OPENSSL_sk_push(reinterpret_cast<OPENSSL_STACK *>(sk), elem.get())) {
606
0
    return false;
607
0
  }
608
  // OPENSSL_sk_push takes ownership on success.
609
483k
  elem.release();
610
483k
  return true;
611
483k
}
_ZN4bssl11PushToStackI22stack_st_CRYPTO_BUFFEREENSt3__19enable_ifIXntsr8internal11StackTraitsIT_EE8kIsConstEbE4typeEPS4_NS2_10unique_ptrINS_8internal11StackTraitsIS4_E4TypeENS9_7DeleterEEE
Line
Count
Source
604
288k
            UniquePtr<typename internal::StackTraits<Stack>::Type> elem) {
605
288k
  if (!OPENSSL_sk_push(reinterpret_cast<OPENSSL_STACK *>(sk), elem.get())) {
606
0
    return false;
607
0
  }
608
  // OPENSSL_sk_push takes ownership on success.
609
288k
  elem.release();
610
288k
  return true;
611
288k
}
_ZN4bssl11PushToStackI13stack_st_X509EENSt3__19enable_ifIXntsr8internal11StackTraitsIT_EE8kIsConstEbE4typeEPS4_NS2_10unique_ptrINS_8internal11StackTraitsIS4_E4TypeENS9_7DeleterEEE
Line
Count
Source
604
193k
            UniquePtr<typename internal::StackTraits<Stack>::Type> elem) {
605
193k
  if (!OPENSSL_sk_push(reinterpret_cast<OPENSSL_STACK *>(sk), elem.get())) {
606
0
    return false;
607
0
  }
608
  // OPENSSL_sk_push takes ownership on success.
609
193k
  elem.release();
610
193k
  return true;
611
193k
}
Unexecuted instantiation: _ZN4bssl11PushToStackI18stack_st_X509_NAMEEENSt3__19enable_ifIXntsr8internal11StackTraitsIT_EE8kIsConstEbE4typeEPS4_NS2_10unique_ptrINS_8internal11StackTraitsIS4_E4TypeENS9_7DeleterEEE
Unexecuted instantiation: _ZN4bssl11PushToStackI20stack_st_ASN1_OBJECTEENSt3__19enable_ifIXntsr8internal11StackTraitsIT_EE8kIsConstEbE4typeEPS4_NS2_10unique_ptrINS_8internal11StackTraitsIS4_E4TypeENS9_7DeleterEEE
_ZN4bssl11PushToStackI27stack_st_ACCESS_DESCRIPTIONEENSt3__19enable_ifIXntsr8internal11StackTraitsIT_EE8kIsConstEbE4typeEPS4_NS2_10unique_ptrINS_8internal11StackTraitsIS4_E4TypeENS9_7DeleterEEE
Line
Count
Source
604
249
            UniquePtr<typename internal::StackTraits<Stack>::Type> elem) {
605
249
  if (!OPENSSL_sk_push(reinterpret_cast<OPENSSL_STACK *>(sk), elem.get())) {
606
0
    return false;
607
0
  }
608
  // OPENSSL_sk_push takes ownership on success.
609
249
  elem.release();
610
249
  return true;
611
249
}
612
613
BSSL_NAMESPACE_END
614
615
// Define begin() and end() for stack types so C++ range for loops work.
616
template <typename Stack>
617
344k
inline bssl::internal::StackIterator<Stack> begin(const Stack *sk) {
618
344k
  return bssl::internal::StackIterator<Stack>(sk, 0);
619
344k
}
_Z5beginI32stack_st_SRTP_PROTECTION_PROFILEENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
Line
Count
Source
617
2
inline bssl::internal::StackIterator<Stack> begin(const Stack *sk) {
618
2
  return bssl::internal::StackIterator<Stack>(sk, 0);
619
2
}
_Z5beginI19stack_st_SSL_CIPHERENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
Line
Count
Source
617
67.4k
inline bssl::internal::StackIterator<Stack> begin(const Stack *sk) {
618
67.4k
  return bssl::internal::StackIterator<Stack>(sk, 0);
619
67.4k
}
_Z5beginI22stack_st_CRYPTO_BUFFERENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
Line
Count
Source
617
231k
inline bssl::internal::StackIterator<Stack> begin(const Stack *sk) {
618
231k
  return bssl::internal::StackIterator<Stack>(sk, 0);
619
231k
}
_Z5beginI13stack_st_X509ENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
Line
Count
Source
617
46.2k
inline bssl::internal::StackIterator<Stack> begin(const Stack *sk) {
618
46.2k
  return bssl::internal::StackIterator<Stack>(sk, 0);
619
46.2k
}
Unexecuted instantiation: _Z5beginI18stack_st_X509_NAMEENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
620
621
template <typename Stack>
622
344k
inline bssl::internal::StackIterator<Stack> end(const Stack *sk) {
623
344k
  return bssl::internal::StackIterator<Stack>(
624
344k
      sk, OPENSSL_sk_num(reinterpret_cast<const OPENSSL_STACK *>(sk)));
625
344k
}
_Z3endI32stack_st_SRTP_PROTECTION_PROFILEENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
Line
Count
Source
622
2
inline bssl::internal::StackIterator<Stack> end(const Stack *sk) {
623
2
  return bssl::internal::StackIterator<Stack>(
624
2
      sk, OPENSSL_sk_num(reinterpret_cast<const OPENSSL_STACK *>(sk)));
625
2
}
_Z3endI19stack_st_SSL_CIPHERENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
Line
Count
Source
622
67.4k
inline bssl::internal::StackIterator<Stack> end(const Stack *sk) {
623
67.4k
  return bssl::internal::StackIterator<Stack>(
624
67.4k
      sk, OPENSSL_sk_num(reinterpret_cast<const OPENSSL_STACK *>(sk)));
625
67.4k
}
_Z3endI22stack_st_CRYPTO_BUFFERENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
Line
Count
Source
622
231k
inline bssl::internal::StackIterator<Stack> end(const Stack *sk) {
623
231k
  return bssl::internal::StackIterator<Stack>(
624
231k
      sk, OPENSSL_sk_num(reinterpret_cast<const OPENSSL_STACK *>(sk)));
625
231k
}
_Z3endI13stack_st_X509ENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
Line
Count
Source
622
46.2k
inline bssl::internal::StackIterator<Stack> end(const Stack *sk) {
623
46.2k
  return bssl::internal::StackIterator<Stack>(
624
46.2k
      sk, OPENSSL_sk_num(reinterpret_cast<const OPENSSL_STACK *>(sk)));
625
46.2k
}
Unexecuted instantiation: _Z3endI18stack_st_X509_NAMEENSt3__19enable_ifIXsr11StackTraitsIT_EE8kIsStackEN4bssl8internal17StackIteratorImplIS3_EEE4typeEPKS3_
626
627
}  // extern C++
628
#endif
629
630
#endif  // OPENSSL_HEADER_STACK_H