Coverage Report

Created: 2026-06-03 06:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ruby/internal/array.h
Line
Count
Source
1
#ifndef INTERNAL_ARRAY_H                                 /*-*-C-*-vi:se ft=c:*/
2
#define INTERNAL_ARRAY_H
3
/**
4
 * @author     Ruby developers <ruby-core@ruby-lang.org>
5
 * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.
6
 *             Permission  is hereby  granted,  to  either redistribute  and/or
7
 *             modify this file, provided that  the conditions mentioned in the
8
 *             file COPYING are met.  Consult the file for details.
9
 * @brief      Internal header for Array.
10
 */
11
#include "ruby/internal/config.h"
12
#include <stddef.h>                 /* for size_t */
13
#include "internal/static_assert.h" /* for STATIC_ASSERT */
14
#include "ruby/internal/stdbool.h"         /* for bool */
15
#include "ruby/ruby.h"              /* for RARRAY_LEN */
16
17
#ifndef ARRAY_DEBUG
18
# define ARRAY_DEBUG (0+RUBY_DEBUG)
19
#endif
20
21
5.77M
#define RARRAY_SHARED_FLAG      ELTS_SHARED
22
498k
#define RARRAY_SHARED_ROOT_FLAG FL_USER12
23
#define RARRAY_PTR_IN_USE_FLAG  FL_USER14
24
25
/* array.c */
26
VALUE rb_ary_hash_values(long len, const VALUE *elements);
27
VALUE rb_ary_last(int, const VALUE *, VALUE);
28
void rb_ary_set_len(VALUE, long);
29
void rb_ary_delete_same(VALUE, VALUE);
30
VALUE rb_ary_hidden_new_fill(long capa);
31
VALUE rb_ary_at(VALUE, VALUE);
32
size_t rb_ary_memsize(VALUE);
33
VALUE rb_to_array_type(VALUE obj);
34
VALUE rb_to_array(VALUE obj);
35
void rb_ary_cancel_sharing(VALUE ary);
36
size_t rb_ary_size_as_embedded(VALUE ary);
37
void rb_ary_make_embedded(VALUE ary);
38
bool rb_ary_embeddable_p(VALUE ary);
39
VALUE rb_ary_diff(VALUE ary1, VALUE ary2);
40
VALUE rb_ary_compact_bang(VALUE ary);
41
RUBY_EXTERN VALUE rb_cArray_empty_frozen;
42
43
static inline VALUE rb_ary_entry_internal(VALUE ary, long offset);
44
static inline bool ARY_PTR_USING_P(VALUE ary);
45
46
VALUE rb_ary_tmp_new_from_values(VALUE, long, const VALUE *);
47
VALUE rb_check_to_array(VALUE ary);
48
VALUE rb_ary_behead(VALUE, long);
49
VALUE rb_ary_aref1(VALUE ary, VALUE i);
50
51
struct rb_execution_context_struct;
52
VALUE rb_ec_ary_new_from_values(struct rb_execution_context_struct *ec, long n, const VALUE *elts);
53
54
// YJIT needs this function to never allocate and never raise
55
static inline VALUE
56
rb_ary_entry_internal(VALUE ary, long offset)
57
25.8k
{
58
25.8k
    long len = RARRAY_LEN(ary);
59
25.8k
    const VALUE *ptr = RARRAY_CONST_PTR(ary);
60
25.8k
    if (len == 0) return Qnil;
61
25.8k
    if (offset < 0) {
62
124
        offset += len;
63
124
        if (offset < 0) return Qnil;
64
124
    }
65
25.7k
    else if (len <= offset) {
66
8
        return Qnil;
67
8
    }
68
25.7k
    return ptr[offset];
69
25.8k
}
array.c:rb_ary_entry_internal
Line
Count
Source
57
25.8k
{
58
25.8k
    long len = RARRAY_LEN(ary);
59
25.8k
    const VALUE *ptr = RARRAY_CONST_PTR(ary);
60
25.8k
    if (len == 0) return Qnil;
61
25.8k
    if (offset < 0) {
62
124
        offset += len;
63
124
        if (offset < 0) return Qnil;
64
124
    }
65
25.7k
    else if (len <= offset) {
66
8
        return Qnil;
67
8
    }
68
25.7k
    return ptr[offset];
69
25.8k
}
Unexecuted instantiation: bignum.c:rb_ary_entry_internal
Unexecuted instantiation: class.c:rb_ary_entry_internal
Unexecuted instantiation: complex.c:rb_ary_entry_internal
Unexecuted instantiation: enum.c:rb_ary_entry_internal
Unexecuted instantiation: enumerator.c:rb_ary_entry_internal
Unexecuted instantiation: error.c:rb_ary_entry_internal
Unexecuted instantiation: eval.c:rb_ary_entry_internal
Unexecuted instantiation: file.c:rb_ary_entry_internal
Unexecuted instantiation: gc.c:rb_ary_entry_internal
Unexecuted instantiation: hash.c:rb_ary_entry_internal
Unexecuted instantiation: imemo.c:rb_ary_entry_internal
Unexecuted instantiation: io.c:rb_ary_entry_internal
Unexecuted instantiation: io_buffer.c:rb_ary_entry_internal
Unexecuted instantiation: iseq.c:rb_ary_entry_internal
Unexecuted instantiation: load.c:rb_ary_entry_internal
Unexecuted instantiation: marshal.c:rb_ary_entry_internal
Unexecuted instantiation: memory_view.c:rb_ary_entry_internal
Unexecuted instantiation: node.c:rb_ary_entry_internal
Unexecuted instantiation: node_dump.c:rb_ary_entry_internal
Unexecuted instantiation: numeric.c:rb_ary_entry_internal
Unexecuted instantiation: object.c:rb_ary_entry_internal
Unexecuted instantiation: pack.c:rb_ary_entry_internal
Unexecuted instantiation: proc.c:rb_ary_entry_internal
Unexecuted instantiation: process.c:rb_ary_entry_internal
Unexecuted instantiation: ractor.c:rb_ary_entry_internal
Unexecuted instantiation: random.c:rb_ary_entry_internal
Unexecuted instantiation: range.c:rb_ary_entry_internal
Unexecuted instantiation: rational.c:rb_ary_entry_internal
Unexecuted instantiation: re.c:rb_ary_entry_internal
Unexecuted instantiation: ruby.c:rb_ary_entry_internal
Unexecuted instantiation: scheduler.c:rb_ary_entry_internal
Unexecuted instantiation: set.c:rb_ary_entry_internal
Unexecuted instantiation: shape.c:rb_ary_entry_internal
Unexecuted instantiation: signal.c:rb_ary_entry_internal
Unexecuted instantiation: st.c:rb_ary_entry_internal
Unexecuted instantiation: string.c:rb_ary_entry_internal
Unexecuted instantiation: struct.c:rb_ary_entry_internal
Unexecuted instantiation: symbol.c:rb_ary_entry_internal
Unexecuted instantiation: thread.c:rb_ary_entry_internal
Unexecuted instantiation: time.c:rb_ary_entry_internal
Unexecuted instantiation: transcode.c:rb_ary_entry_internal
Unexecuted instantiation: util.c:rb_ary_entry_internal
Unexecuted instantiation: variable.c:rb_ary_entry_internal
Unexecuted instantiation: version.c:rb_ary_entry_internal
Unexecuted instantiation: vm.c:rb_ary_entry_internal
Unexecuted instantiation: vm_backtrace.c:rb_ary_entry_internal
Unexecuted instantiation: vm_dump.c:rb_ary_entry_internal
Unexecuted instantiation: vm_sync.c:rb_ary_entry_internal
Unexecuted instantiation: vm_trace.c:rb_ary_entry_internal
Unexecuted instantiation: weakmap.c:rb_ary_entry_internal
Unexecuted instantiation: builtin.c:rb_ary_entry_internal
Unexecuted instantiation: ast.c:rb_ary_entry_internal
Unexecuted instantiation: box.c:rb_ary_entry_internal
Unexecuted instantiation: compile.c:rb_ary_entry_internal
Unexecuted instantiation: concurrent_set.c:rb_ary_entry_internal
Unexecuted instantiation: cont.c:rb_ary_entry_internal
Unexecuted instantiation: debug.c:rb_ary_entry_internal
Unexecuted instantiation: dir.c:rb_ary_entry_internal
Unexecuted instantiation: parse.c:rb_ary_entry_internal
70
71
static inline bool
72
ARY_PTR_USING_P(VALUE ary)
73
0
{
74
0
    return FL_TEST_RAW(ary, RARRAY_PTR_IN_USE_FLAG);
75
0
}
Unexecuted instantiation: array.c:ARY_PTR_USING_P
Unexecuted instantiation: bignum.c:ARY_PTR_USING_P
Unexecuted instantiation: class.c:ARY_PTR_USING_P
Unexecuted instantiation: complex.c:ARY_PTR_USING_P
Unexecuted instantiation: enum.c:ARY_PTR_USING_P
Unexecuted instantiation: enumerator.c:ARY_PTR_USING_P
Unexecuted instantiation: error.c:ARY_PTR_USING_P
Unexecuted instantiation: eval.c:ARY_PTR_USING_P
Unexecuted instantiation: file.c:ARY_PTR_USING_P
Unexecuted instantiation: gc.c:ARY_PTR_USING_P
Unexecuted instantiation: hash.c:ARY_PTR_USING_P
Unexecuted instantiation: imemo.c:ARY_PTR_USING_P
Unexecuted instantiation: io.c:ARY_PTR_USING_P
Unexecuted instantiation: io_buffer.c:ARY_PTR_USING_P
Unexecuted instantiation: iseq.c:ARY_PTR_USING_P
Unexecuted instantiation: load.c:ARY_PTR_USING_P
Unexecuted instantiation: marshal.c:ARY_PTR_USING_P
Unexecuted instantiation: memory_view.c:ARY_PTR_USING_P
Unexecuted instantiation: node.c:ARY_PTR_USING_P
Unexecuted instantiation: node_dump.c:ARY_PTR_USING_P
Unexecuted instantiation: numeric.c:ARY_PTR_USING_P
Unexecuted instantiation: object.c:ARY_PTR_USING_P
Unexecuted instantiation: pack.c:ARY_PTR_USING_P
Unexecuted instantiation: proc.c:ARY_PTR_USING_P
Unexecuted instantiation: process.c:ARY_PTR_USING_P
Unexecuted instantiation: ractor.c:ARY_PTR_USING_P
Unexecuted instantiation: random.c:ARY_PTR_USING_P
Unexecuted instantiation: range.c:ARY_PTR_USING_P
Unexecuted instantiation: rational.c:ARY_PTR_USING_P
Unexecuted instantiation: re.c:ARY_PTR_USING_P
Unexecuted instantiation: ruby.c:ARY_PTR_USING_P
Unexecuted instantiation: scheduler.c:ARY_PTR_USING_P
Unexecuted instantiation: set.c:ARY_PTR_USING_P
Unexecuted instantiation: shape.c:ARY_PTR_USING_P
Unexecuted instantiation: signal.c:ARY_PTR_USING_P
Unexecuted instantiation: st.c:ARY_PTR_USING_P
Unexecuted instantiation: string.c:ARY_PTR_USING_P
Unexecuted instantiation: struct.c:ARY_PTR_USING_P
Unexecuted instantiation: symbol.c:ARY_PTR_USING_P
Unexecuted instantiation: thread.c:ARY_PTR_USING_P
Unexecuted instantiation: time.c:ARY_PTR_USING_P
Unexecuted instantiation: transcode.c:ARY_PTR_USING_P
Unexecuted instantiation: util.c:ARY_PTR_USING_P
Unexecuted instantiation: variable.c:ARY_PTR_USING_P
Unexecuted instantiation: version.c:ARY_PTR_USING_P
Unexecuted instantiation: vm.c:ARY_PTR_USING_P
Unexecuted instantiation: vm_backtrace.c:ARY_PTR_USING_P
Unexecuted instantiation: vm_dump.c:ARY_PTR_USING_P
Unexecuted instantiation: vm_sync.c:ARY_PTR_USING_P
Unexecuted instantiation: vm_trace.c:ARY_PTR_USING_P
Unexecuted instantiation: weakmap.c:ARY_PTR_USING_P
Unexecuted instantiation: builtin.c:ARY_PTR_USING_P
Unexecuted instantiation: ast.c:ARY_PTR_USING_P
Unexecuted instantiation: box.c:ARY_PTR_USING_P
Unexecuted instantiation: compile.c:ARY_PTR_USING_P
Unexecuted instantiation: concurrent_set.c:ARY_PTR_USING_P
Unexecuted instantiation: cont.c:ARY_PTR_USING_P
Unexecuted instantiation: debug.c:ARY_PTR_USING_P
Unexecuted instantiation: dir.c:ARY_PTR_USING_P
Unexecuted instantiation: parse.c:ARY_PTR_USING_P
76
77
RBIMPL_ATTR_MAYBE_UNUSED()
78
static inline int
79
ary_should_not_be_shared_and_embedded(VALUE ary)
80
0
{
81
0
    return !FL_ALL_RAW(ary, RARRAY_SHARED_FLAG|RARRAY_EMBED_FLAG);
82
0
}
Unexecuted instantiation: array.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: bignum.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: class.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: complex.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: enum.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: enumerator.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: error.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: eval.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: file.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: gc.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: hash.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: imemo.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: io.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: io_buffer.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: iseq.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: load.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: marshal.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: memory_view.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: node.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: node_dump.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: numeric.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: object.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: pack.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: proc.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: process.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: ractor.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: random.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: range.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: rational.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: re.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: ruby.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: scheduler.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: set.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: shape.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: signal.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: st.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: string.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: struct.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: symbol.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: thread.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: time.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: transcode.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: util.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: variable.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: version.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: vm.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: vm_backtrace.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: vm_dump.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: vm_sync.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: vm_trace.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: weakmap.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: builtin.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: ast.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: box.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: compile.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: concurrent_set.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: cont.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: debug.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: dir.c:ary_should_not_be_shared_and_embedded
Unexecuted instantiation: parse.c:ary_should_not_be_shared_and_embedded
83
84
static inline bool
85
ARY_SHARED_P(VALUE ary)
86
5.77M
{
87
5.77M
    assert(RB_TYPE_P(ary, T_ARRAY));
88
5.77M
    assert(ary_should_not_be_shared_and_embedded(ary));
89
5.77M
    return FL_TEST_RAW(ary, RARRAY_SHARED_FLAG);
90
5.77M
}
array.c:ARY_SHARED_P
Line
Count
Source
86
5.23M
{
87
5.23M
    assert(RB_TYPE_P(ary, T_ARRAY));
88
5.23M
    assert(ary_should_not_be_shared_and_embedded(ary));
89
5.23M
    return FL_TEST_RAW(ary, RARRAY_SHARED_FLAG);
90
5.23M
}
Unexecuted instantiation: bignum.c:ARY_SHARED_P
Unexecuted instantiation: class.c:ARY_SHARED_P
Unexecuted instantiation: complex.c:ARY_SHARED_P
Unexecuted instantiation: enum.c:ARY_SHARED_P
Unexecuted instantiation: enumerator.c:ARY_SHARED_P
Unexecuted instantiation: error.c:ARY_SHARED_P
Unexecuted instantiation: eval.c:ARY_SHARED_P
Unexecuted instantiation: file.c:ARY_SHARED_P
gc.c:ARY_SHARED_P
Line
Count
Source
86
540k
{
87
540k
    assert(RB_TYPE_P(ary, T_ARRAY));
88
540k
    assert(ary_should_not_be_shared_and_embedded(ary));
89
540k
    return FL_TEST_RAW(ary, RARRAY_SHARED_FLAG);
90
540k
}
Unexecuted instantiation: hash.c:ARY_SHARED_P
Unexecuted instantiation: imemo.c:ARY_SHARED_P
Unexecuted instantiation: io.c:ARY_SHARED_P
Unexecuted instantiation: io_buffer.c:ARY_SHARED_P
Unexecuted instantiation: iseq.c:ARY_SHARED_P
Unexecuted instantiation: load.c:ARY_SHARED_P
Unexecuted instantiation: marshal.c:ARY_SHARED_P
Unexecuted instantiation: memory_view.c:ARY_SHARED_P
Unexecuted instantiation: node.c:ARY_SHARED_P
Unexecuted instantiation: node_dump.c:ARY_SHARED_P
Unexecuted instantiation: numeric.c:ARY_SHARED_P
Unexecuted instantiation: object.c:ARY_SHARED_P
Unexecuted instantiation: pack.c:ARY_SHARED_P
Unexecuted instantiation: proc.c:ARY_SHARED_P
Unexecuted instantiation: process.c:ARY_SHARED_P
Unexecuted instantiation: ractor.c:ARY_SHARED_P
Unexecuted instantiation: random.c:ARY_SHARED_P
Unexecuted instantiation: range.c:ARY_SHARED_P
Unexecuted instantiation: rational.c:ARY_SHARED_P
Unexecuted instantiation: re.c:ARY_SHARED_P
Unexecuted instantiation: ruby.c:ARY_SHARED_P
Unexecuted instantiation: scheduler.c:ARY_SHARED_P
Unexecuted instantiation: set.c:ARY_SHARED_P
Unexecuted instantiation: shape.c:ARY_SHARED_P
Unexecuted instantiation: signal.c:ARY_SHARED_P
Unexecuted instantiation: st.c:ARY_SHARED_P
Unexecuted instantiation: string.c:ARY_SHARED_P
Unexecuted instantiation: struct.c:ARY_SHARED_P
Unexecuted instantiation: symbol.c:ARY_SHARED_P
Unexecuted instantiation: thread.c:ARY_SHARED_P
Unexecuted instantiation: time.c:ARY_SHARED_P
Unexecuted instantiation: transcode.c:ARY_SHARED_P
Unexecuted instantiation: util.c:ARY_SHARED_P
Unexecuted instantiation: variable.c:ARY_SHARED_P
Unexecuted instantiation: version.c:ARY_SHARED_P
Unexecuted instantiation: vm.c:ARY_SHARED_P
Unexecuted instantiation: vm_backtrace.c:ARY_SHARED_P
Unexecuted instantiation: vm_dump.c:ARY_SHARED_P
Unexecuted instantiation: vm_sync.c:ARY_SHARED_P
Unexecuted instantiation: vm_trace.c:ARY_SHARED_P
Unexecuted instantiation: weakmap.c:ARY_SHARED_P
Unexecuted instantiation: builtin.c:ARY_SHARED_P
Unexecuted instantiation: ast.c:ARY_SHARED_P
Unexecuted instantiation: box.c:ARY_SHARED_P
Unexecuted instantiation: compile.c:ARY_SHARED_P
Unexecuted instantiation: concurrent_set.c:ARY_SHARED_P
Unexecuted instantiation: cont.c:ARY_SHARED_P
Unexecuted instantiation: debug.c:ARY_SHARED_P
Unexecuted instantiation: dir.c:ARY_SHARED_P
Unexecuted instantiation: parse.c:ARY_SHARED_P
91
92
static inline bool
93
ARY_EMBED_P(VALUE ary)
94
10.5M
{
95
10.5M
    assert(RB_TYPE_P(ary, T_ARRAY));
96
10.5M
    assert(ary_should_not_be_shared_and_embedded(ary));
97
10.5M
    return FL_TEST_RAW(ary, RARRAY_EMBED_FLAG);
98
10.5M
}
array.c:ARY_EMBED_P
Line
Count
Source
94
10.5M
{
95
10.5M
    assert(RB_TYPE_P(ary, T_ARRAY));
96
10.5M
    assert(ary_should_not_be_shared_and_embedded(ary));
97
10.5M
    return FL_TEST_RAW(ary, RARRAY_EMBED_FLAG);
98
10.5M
}
Unexecuted instantiation: bignum.c:ARY_EMBED_P
Unexecuted instantiation: class.c:ARY_EMBED_P
Unexecuted instantiation: complex.c:ARY_EMBED_P
Unexecuted instantiation: enum.c:ARY_EMBED_P
Unexecuted instantiation: enumerator.c:ARY_EMBED_P
Unexecuted instantiation: error.c:ARY_EMBED_P
Unexecuted instantiation: eval.c:ARY_EMBED_P
Unexecuted instantiation: file.c:ARY_EMBED_P
Unexecuted instantiation: gc.c:ARY_EMBED_P
Unexecuted instantiation: hash.c:ARY_EMBED_P
Unexecuted instantiation: imemo.c:ARY_EMBED_P
Unexecuted instantiation: io.c:ARY_EMBED_P
Unexecuted instantiation: io_buffer.c:ARY_EMBED_P
Unexecuted instantiation: iseq.c:ARY_EMBED_P
Unexecuted instantiation: load.c:ARY_EMBED_P
Unexecuted instantiation: marshal.c:ARY_EMBED_P
Unexecuted instantiation: memory_view.c:ARY_EMBED_P
Unexecuted instantiation: node.c:ARY_EMBED_P
Unexecuted instantiation: node_dump.c:ARY_EMBED_P
Unexecuted instantiation: numeric.c:ARY_EMBED_P
Unexecuted instantiation: object.c:ARY_EMBED_P
Unexecuted instantiation: pack.c:ARY_EMBED_P
Unexecuted instantiation: proc.c:ARY_EMBED_P
Unexecuted instantiation: process.c:ARY_EMBED_P
Unexecuted instantiation: ractor.c:ARY_EMBED_P
Unexecuted instantiation: random.c:ARY_EMBED_P
Unexecuted instantiation: range.c:ARY_EMBED_P
Unexecuted instantiation: rational.c:ARY_EMBED_P
Unexecuted instantiation: re.c:ARY_EMBED_P
Unexecuted instantiation: ruby.c:ARY_EMBED_P
Unexecuted instantiation: scheduler.c:ARY_EMBED_P
Unexecuted instantiation: set.c:ARY_EMBED_P
Unexecuted instantiation: shape.c:ARY_EMBED_P
Unexecuted instantiation: signal.c:ARY_EMBED_P
Unexecuted instantiation: st.c:ARY_EMBED_P
Unexecuted instantiation: string.c:ARY_EMBED_P
Unexecuted instantiation: struct.c:ARY_EMBED_P
Unexecuted instantiation: symbol.c:ARY_EMBED_P
Unexecuted instantiation: thread.c:ARY_EMBED_P
Unexecuted instantiation: time.c:ARY_EMBED_P
Unexecuted instantiation: transcode.c:ARY_EMBED_P
Unexecuted instantiation: util.c:ARY_EMBED_P
Unexecuted instantiation: variable.c:ARY_EMBED_P
Unexecuted instantiation: version.c:ARY_EMBED_P
Unexecuted instantiation: vm.c:ARY_EMBED_P
Unexecuted instantiation: vm_backtrace.c:ARY_EMBED_P
Unexecuted instantiation: vm_dump.c:ARY_EMBED_P
Unexecuted instantiation: vm_sync.c:ARY_EMBED_P
Unexecuted instantiation: vm_trace.c:ARY_EMBED_P
Unexecuted instantiation: weakmap.c:ARY_EMBED_P
Unexecuted instantiation: builtin.c:ARY_EMBED_P
Unexecuted instantiation: ast.c:ARY_EMBED_P
Unexecuted instantiation: box.c:ARY_EMBED_P
Unexecuted instantiation: compile.c:ARY_EMBED_P
Unexecuted instantiation: concurrent_set.c:ARY_EMBED_P
Unexecuted instantiation: cont.c:ARY_EMBED_P
Unexecuted instantiation: debug.c:ARY_EMBED_P
Unexecuted instantiation: dir.c:ARY_EMBED_P
Unexecuted instantiation: parse.c:ARY_EMBED_P
99
100
static inline VALUE
101
ARY_SHARED_ROOT(VALUE ary)
102
57.1k
{
103
57.1k
    assert(ARY_SHARED_P(ary));
104
57.1k
    return RARRAY(ary)->as.heap.aux.shared_root;
105
57.1k
}
array.c:ARY_SHARED_ROOT
Line
Count
Source
102
243
{
103
243
    assert(ARY_SHARED_P(ary));
104
243
    return RARRAY(ary)->as.heap.aux.shared_root;
105
243
}
Unexecuted instantiation: bignum.c:ARY_SHARED_ROOT
Unexecuted instantiation: class.c:ARY_SHARED_ROOT
Unexecuted instantiation: complex.c:ARY_SHARED_ROOT
Unexecuted instantiation: enum.c:ARY_SHARED_ROOT
Unexecuted instantiation: enumerator.c:ARY_SHARED_ROOT
Unexecuted instantiation: error.c:ARY_SHARED_ROOT
Unexecuted instantiation: eval.c:ARY_SHARED_ROOT
Unexecuted instantiation: file.c:ARY_SHARED_ROOT
gc.c:ARY_SHARED_ROOT
Line
Count
Source
102
56.8k
{
103
56.8k
    assert(ARY_SHARED_P(ary));
104
56.8k
    return RARRAY(ary)->as.heap.aux.shared_root;
105
56.8k
}
Unexecuted instantiation: hash.c:ARY_SHARED_ROOT
Unexecuted instantiation: imemo.c:ARY_SHARED_ROOT
Unexecuted instantiation: io.c:ARY_SHARED_ROOT
Unexecuted instantiation: io_buffer.c:ARY_SHARED_ROOT
Unexecuted instantiation: iseq.c:ARY_SHARED_ROOT
Unexecuted instantiation: load.c:ARY_SHARED_ROOT
Unexecuted instantiation: marshal.c:ARY_SHARED_ROOT
Unexecuted instantiation: memory_view.c:ARY_SHARED_ROOT
Unexecuted instantiation: node.c:ARY_SHARED_ROOT
Unexecuted instantiation: node_dump.c:ARY_SHARED_ROOT
Unexecuted instantiation: numeric.c:ARY_SHARED_ROOT
Unexecuted instantiation: object.c:ARY_SHARED_ROOT
Unexecuted instantiation: pack.c:ARY_SHARED_ROOT
Unexecuted instantiation: proc.c:ARY_SHARED_ROOT
Unexecuted instantiation: process.c:ARY_SHARED_ROOT
Unexecuted instantiation: ractor.c:ARY_SHARED_ROOT
Unexecuted instantiation: random.c:ARY_SHARED_ROOT
Unexecuted instantiation: range.c:ARY_SHARED_ROOT
Unexecuted instantiation: rational.c:ARY_SHARED_ROOT
Unexecuted instantiation: re.c:ARY_SHARED_ROOT
Unexecuted instantiation: ruby.c:ARY_SHARED_ROOT
Unexecuted instantiation: scheduler.c:ARY_SHARED_ROOT
Unexecuted instantiation: set.c:ARY_SHARED_ROOT
Unexecuted instantiation: shape.c:ARY_SHARED_ROOT
Unexecuted instantiation: signal.c:ARY_SHARED_ROOT
Unexecuted instantiation: st.c:ARY_SHARED_ROOT
Unexecuted instantiation: string.c:ARY_SHARED_ROOT
Unexecuted instantiation: struct.c:ARY_SHARED_ROOT
Unexecuted instantiation: symbol.c:ARY_SHARED_ROOT
Unexecuted instantiation: thread.c:ARY_SHARED_ROOT
Unexecuted instantiation: time.c:ARY_SHARED_ROOT
Unexecuted instantiation: transcode.c:ARY_SHARED_ROOT
Unexecuted instantiation: util.c:ARY_SHARED_ROOT
Unexecuted instantiation: variable.c:ARY_SHARED_ROOT
Unexecuted instantiation: version.c:ARY_SHARED_ROOT
Unexecuted instantiation: vm.c:ARY_SHARED_ROOT
Unexecuted instantiation: vm_backtrace.c:ARY_SHARED_ROOT
Unexecuted instantiation: vm_dump.c:ARY_SHARED_ROOT
Unexecuted instantiation: vm_sync.c:ARY_SHARED_ROOT
Unexecuted instantiation: vm_trace.c:ARY_SHARED_ROOT
Unexecuted instantiation: weakmap.c:ARY_SHARED_ROOT
Unexecuted instantiation: builtin.c:ARY_SHARED_ROOT
Unexecuted instantiation: ast.c:ARY_SHARED_ROOT
Unexecuted instantiation: box.c:ARY_SHARED_ROOT
Unexecuted instantiation: compile.c:ARY_SHARED_ROOT
Unexecuted instantiation: concurrent_set.c:ARY_SHARED_ROOT
Unexecuted instantiation: cont.c:ARY_SHARED_ROOT
Unexecuted instantiation: debug.c:ARY_SHARED_ROOT
Unexecuted instantiation: dir.c:ARY_SHARED_ROOT
Unexecuted instantiation: parse.c:ARY_SHARED_ROOT
106
107
static inline bool
108
ARY_SHARED_ROOT_P(VALUE ary)
109
498k
{
110
498k
    assert(RB_TYPE_P(ary, T_ARRAY));
111
498k
    return FL_TEST_RAW(ary, RARRAY_SHARED_ROOT_FLAG);
112
498k
}
array.c:ARY_SHARED_ROOT_P
Line
Count
Source
109
498k
{
110
498k
    assert(RB_TYPE_P(ary, T_ARRAY));
111
498k
    return FL_TEST_RAW(ary, RARRAY_SHARED_ROOT_FLAG);
112
498k
}
Unexecuted instantiation: bignum.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: class.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: complex.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: enum.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: enumerator.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: error.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: eval.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: file.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: gc.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: hash.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: imemo.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: io.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: io_buffer.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: iseq.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: load.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: marshal.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: memory_view.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: node.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: node_dump.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: numeric.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: object.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: pack.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: proc.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: process.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: ractor.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: random.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: range.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: rational.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: re.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: ruby.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: scheduler.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: set.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: shape.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: signal.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: st.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: string.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: struct.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: symbol.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: thread.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: time.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: transcode.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: util.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: variable.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: version.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: vm.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: vm_backtrace.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: vm_dump.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: vm_sync.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: vm_trace.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: weakmap.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: builtin.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: ast.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: box.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: compile.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: concurrent_set.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: cont.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: debug.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: dir.c:ARY_SHARED_ROOT_P
Unexecuted instantiation: parse.c:ARY_SHARED_ROOT_P
113
114
static inline long
115
ARY_SHARED_ROOT_REFCNT(VALUE ary)
116
223
{
117
223
    assert(ARY_SHARED_ROOT_P(ary));
118
223
    return RARRAY(ary)->as.heap.aux.capa;
119
223
}
array.c:ARY_SHARED_ROOT_REFCNT
Line
Count
Source
116
223
{
117
223
    assert(ARY_SHARED_ROOT_P(ary));
118
223
    return RARRAY(ary)->as.heap.aux.capa;
119
223
}
Unexecuted instantiation: bignum.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: class.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: complex.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: enum.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: enumerator.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: error.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: eval.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: file.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: gc.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: hash.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: imemo.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: io.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: io_buffer.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: iseq.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: load.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: marshal.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: memory_view.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: node.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: node_dump.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: numeric.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: object.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: pack.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: proc.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: process.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: ractor.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: random.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: range.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: rational.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: re.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: ruby.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: scheduler.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: set.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: shape.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: signal.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: st.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: string.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: struct.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: symbol.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: thread.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: time.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: transcode.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: util.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: variable.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: version.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: vm.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: vm_backtrace.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: vm_dump.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: vm_sync.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: vm_trace.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: weakmap.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: builtin.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: ast.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: box.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: compile.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: concurrent_set.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: cont.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: debug.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: dir.c:ARY_SHARED_ROOT_REFCNT
Unexecuted instantiation: parse.c:ARY_SHARED_ROOT_REFCNT
120
121
#undef rb_ary_new_from_args
122
#if RBIMPL_HAS_WARNING("-Wgnu-zero-variadic-macro-arguments")
123
# /* Skip it; clang -pedantic doesn't like the following */
124
#elif defined(__GNUC__) && defined(HAVE_VA_ARGS_MACRO)
125
#define rb_ary_new_from_args(n, ...) \
126
    __extension__ ({ \
127
        const VALUE args_to_new_ary[] = {__VA_ARGS__}; \
128
        if (__builtin_constant_p(n)) { \
129
            STATIC_ASSERT(rb_ary_new_from_args, numberof(args_to_new_ary) == (n)); \
130
        } \
131
        rb_ary_new_from_values(numberof(args_to_new_ary), args_to_new_ary); \
132
    })
133
#endif
134
135
#undef RARRAY_AREF
136
RBIMPL_ATTR_PURE_UNLESS_DEBUG()
137
RBIMPL_ATTR_ARTIFICIAL()
138
static inline VALUE
139
RARRAY_AREF(VALUE ary, long i)
140
82.3k
{
141
82.3k
    VALUE val;
142
82.3k
    RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY);
143
144
82.3k
    RUBY_ASSERT(i < RARRAY_LEN(ary));
145
146
82.3k
    RBIMPL_WARNING_PUSH();
147
#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13
148
    RBIMPL_WARNING_IGNORED(-Warray-bounds);
149
#endif
150
82.3k
    val = RARRAY_CONST_PTR(ary)[i];
151
82.3k
    RBIMPL_WARNING_POP();
152
82.3k
    return val;
153
82.3k
}
array.c:RARRAY_AREF
Line
Count
Source
140
13.4k
{
141
13.4k
    VALUE val;
142
13.4k
    RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY);
143
144
13.4k
    RUBY_ASSERT(i < RARRAY_LEN(ary));
145
146
13.4k
    RBIMPL_WARNING_PUSH();
147
#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13
148
    RBIMPL_WARNING_IGNORED(-Warray-bounds);
149
#endif
150
13.4k
    val = RARRAY_CONST_PTR(ary)[i];
151
13.4k
    RBIMPL_WARNING_POP();
152
13.4k
    return val;
153
13.4k
}
Unexecuted instantiation: bignum.c:RARRAY_AREF
Unexecuted instantiation: class.c:RARRAY_AREF
Unexecuted instantiation: complex.c:RARRAY_AREF
Unexecuted instantiation: enum.c:RARRAY_AREF
Unexecuted instantiation: enumerator.c:RARRAY_AREF
Unexecuted instantiation: error.c:RARRAY_AREF
Unexecuted instantiation: eval.c:RARRAY_AREF
Unexecuted instantiation: file.c:RARRAY_AREF
Unexecuted instantiation: gc.c:RARRAY_AREF
Unexecuted instantiation: hash.c:RARRAY_AREF
Unexecuted instantiation: imemo.c:RARRAY_AREF
Unexecuted instantiation: io.c:RARRAY_AREF
Unexecuted instantiation: io_buffer.c:RARRAY_AREF
iseq.c:RARRAY_AREF
Line
Count
Source
140
68.5k
{
141
68.5k
    VALUE val;
142
68.5k
    RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY);
143
144
68.5k
    RUBY_ASSERT(i < RARRAY_LEN(ary));
145
146
68.5k
    RBIMPL_WARNING_PUSH();
147
#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13
148
    RBIMPL_WARNING_IGNORED(-Warray-bounds);
149
#endif
150
68.5k
    val = RARRAY_CONST_PTR(ary)[i];
151
68.5k
    RBIMPL_WARNING_POP();
152
68.5k
    return val;
153
68.5k
}
Unexecuted instantiation: load.c:RARRAY_AREF
Unexecuted instantiation: marshal.c:RARRAY_AREF
Unexecuted instantiation: memory_view.c:RARRAY_AREF
Unexecuted instantiation: node.c:RARRAY_AREF
Unexecuted instantiation: node_dump.c:RARRAY_AREF
numeric.c:RARRAY_AREF
Line
Count
Source
140
402
{
141
402
    VALUE val;
142
402
    RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY);
143
144
402
    RUBY_ASSERT(i < RARRAY_LEN(ary));
145
146
402
    RBIMPL_WARNING_PUSH();
147
#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13
148
    RBIMPL_WARNING_IGNORED(-Warray-bounds);
149
#endif
150
402
    val = RARRAY_CONST_PTR(ary)[i];
151
402
    RBIMPL_WARNING_POP();
152
402
    return val;
153
402
}
Unexecuted instantiation: object.c:RARRAY_AREF
Unexecuted instantiation: pack.c:RARRAY_AREF
Unexecuted instantiation: proc.c:RARRAY_AREF
Unexecuted instantiation: process.c:RARRAY_AREF
Unexecuted instantiation: ractor.c:RARRAY_AREF
Unexecuted instantiation: random.c:RARRAY_AREF
Unexecuted instantiation: range.c:RARRAY_AREF
Unexecuted instantiation: rational.c:RARRAY_AREF
Unexecuted instantiation: re.c:RARRAY_AREF
Unexecuted instantiation: ruby.c:RARRAY_AREF
Unexecuted instantiation: scheduler.c:RARRAY_AREF
Unexecuted instantiation: set.c:RARRAY_AREF
Unexecuted instantiation: shape.c:RARRAY_AREF
Unexecuted instantiation: signal.c:RARRAY_AREF
Unexecuted instantiation: st.c:RARRAY_AREF
Unexecuted instantiation: string.c:RARRAY_AREF
struct.c:RARRAY_AREF
Line
Count
Source
140
36
{
141
36
    VALUE val;
142
36
    RBIMPL_ASSERT_TYPE(ary, RUBY_T_ARRAY);
143
144
36
    RUBY_ASSERT(i < RARRAY_LEN(ary));
145
146
36
    RBIMPL_WARNING_PUSH();
147
#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 13
148
    RBIMPL_WARNING_IGNORED(-Warray-bounds);
149
#endif
150
36
    val = RARRAY_CONST_PTR(ary)[i];
151
36
    RBIMPL_WARNING_POP();
152
36
    return val;
153
36
}
Unexecuted instantiation: symbol.c:RARRAY_AREF
Unexecuted instantiation: thread.c:RARRAY_AREF
Unexecuted instantiation: time.c:RARRAY_AREF
Unexecuted instantiation: transcode.c:RARRAY_AREF
Unexecuted instantiation: util.c:RARRAY_AREF
Unexecuted instantiation: variable.c:RARRAY_AREF
Unexecuted instantiation: version.c:RARRAY_AREF
Unexecuted instantiation: vm.c:RARRAY_AREF
Unexecuted instantiation: vm_backtrace.c:RARRAY_AREF
Unexecuted instantiation: vm_dump.c:RARRAY_AREF
Unexecuted instantiation: vm_sync.c:RARRAY_AREF
Unexecuted instantiation: vm_trace.c:RARRAY_AREF
Unexecuted instantiation: weakmap.c:RARRAY_AREF
Unexecuted instantiation: builtin.c:RARRAY_AREF
Unexecuted instantiation: ast.c:RARRAY_AREF
Unexecuted instantiation: box.c:RARRAY_AREF
Unexecuted instantiation: compile.c:RARRAY_AREF
Unexecuted instantiation: concurrent_set.c:RARRAY_AREF
Unexecuted instantiation: cont.c:RARRAY_AREF
Unexecuted instantiation: debug.c:RARRAY_AREF
Unexecuted instantiation: dir.c:RARRAY_AREF
Unexecuted instantiation: parse.c:RARRAY_AREF
154
155
#endif /* INTERNAL_ARRAY_H */