This one may be a false positive, I'm not sure. If it is, I'll happily mark
it that way at the coverity site.
2098 static VALUE
2099 rb_ary_fill(int argc, VALUE *argv, VALUE ary)
2100 {
2101 VALUE item, arg1, arg2;
Event var_decl: Declared variable "beg" without initializer
Also see events: [uninit_use]
2102 long beg, end, len;
2103 VALUE *p, *pend;
2104 int block_p = Qfalse;
2105
At conditional (1): "rb_block_given_p != 0" taking false path
2106 if (rb_block_given_p()) {
2107 block_p = Qtrue;
2108 rb_scan_args(argc, argv, "02", &arg1, &arg2);
2109 argc += 1; /* hackish */
2110 }
2111 else {
2112 rb_scan_args(argc, argv, "12", &item, &arg1, &arg2);
2113 }
2114 switch (argc) {
2115 case 1:
2116 beg = 0;
2117 len = RARRAY(ary)->len;
2118 break;
2119 case 2:
2120 if (rb_range_beg_len(arg1, &beg, &len, RARRAY(ary)->len, 1)) {
2121 break;
2122 }
2123 /* fall through */
2124 case 3:
2125 beg = NIL_P(arg1) ? 0 : NUM2LONG(arg1);
2126 if (beg < 0) {
2127 beg = RARRAY(ary)->len + beg;
2128 if (beg < 0) beg = 0;
2129 }
2130 len = NIL_P(arg2) ? RARRAY(ary)->len - beg : NUM2LONG(arg2);
2131 break;
2132 }
At conditional (2): "ary" taking true path
2133 rb_ary_modify(ary);
Event uninit_use: Using uninitialized value "beg"
Also see events: [var_decl]
2134 end = beg + len;
2135 if (end > RARRAY(ary)->len) {
2136 if (end >= RARRAY(ary)->aux.capa) {
2137 REALLOC_N(RARRAY(ary)->ptr, VALUE, end);
2138 RARRAY(ary)->aux.capa = end;
2139 }
2140 rb_mem_clear(RARRAY(ary)->ptr + RARRAY(ary)->len, end -
RARRAY(ary)->len);
2141 RARRAY(ary)->len = end;
2142 }
2143
2144 if (block_p) {
2145 VALUE v;
2146 long i;
2147
2148 for (i=beg; i<end; i++) {
2149 v = rb_yield(LONG2NUM(i));
2150 if (i>=RARRAY(ary)->len) break;
2151 RARRAY(ary)->ptr[i] = v;
2152 }
2153 }
2154 else {
2155 p = RARRAY(ary)->ptr + beg;
2156 pend = p + len;
2157 while (p < pend) {
2158 *p++ = item;
2159 }
2160 }
2161 return ary;
2162 }