File tree Expand file tree Collapse file tree 4 files changed +11
-4
lines changed
include/ruby/internal/arithmetic Expand file tree Collapse file tree 4 files changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -12898,10 +12898,14 @@ regexec.$(OBJEXT): {$(VPATH)}st.h
12898
12898
regexec.$(OBJEXT): {$(VPATH)}subst.h
12899
12899
regparse.$(OBJEXT): $(hdrdir)/ruby.h
12900
12900
regparse.$(OBJEXT): $(hdrdir)/ruby/ruby.h
12901
+ regparse.$(OBJEXT): $(top_srcdir)/internal/compilers.h
12902
+ regparse.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h
12903
+ regparse.$(OBJEXT): $(top_srcdir)/internal/warnings.h
12901
12904
regparse.$(OBJEXT): {$(VPATH)}assert.h
12902
12905
regparse.$(OBJEXT): {$(VPATH)}backward/2/assume.h
12903
12906
regparse.$(OBJEXT): {$(VPATH)}backward/2/attributes.h
12904
12907
regparse.$(OBJEXT): {$(VPATH)}backward/2/bool.h
12908
+ regparse.$(OBJEXT): {$(VPATH)}backward/2/gcc_version_since.h
12905
12909
regparse.$(OBJEXT): {$(VPATH)}backward/2/inttypes.h
12906
12910
regparse.$(OBJEXT): {$(VPATH)}backward/2/limits.h
12907
12911
regparse.$(OBJEXT): {$(VPATH)}backward/2/long_long.h
Original file line number Diff line number Diff line change @@ -115,7 +115,7 @@ RB_INT2FIX(long i)
115
115
/* :NOTE: VALUE can be wider than long. As j being unsigned, 2j+1 is fully
116
116
* defined. Also it can be compiled into a single LEA instruction. */
117
117
const unsigned long j = i;
118
- const unsigned long k = 2 * j + RUBY_FIXNUM_FLAG;
118
+ const unsigned long k = (j << 1 ) + RUBY_FIXNUM_FLAG;
119
119
const long l = k;
120
120
const SIGNED_VALUE m = l; /* Sign extend */
121
121
const VALUE n = m;
Original file line number Diff line number Diff line change @@ -232,12 +232,12 @@ enum {
232
232
};
233
233
234
234
#define NUMPARAM_ID_P (id ) numparam_id_p(id)
235
- #define NUMPARAM_ID_TO_IDX (id ) (unsigned int )(((id) >> ID_SCOPE_SHIFT) - tNUMPARAM_1 + 1 )
236
- #define NUMPARAM_IDX_TO_ID (idx ) TOKEN2LOCALID((tNUMPARAM_1 + (idx) - 1 ))
235
+ #define NUMPARAM_ID_TO_IDX (id ) (unsigned int )(((id) >> ID_SCOPE_SHIFT) - ( tNUMPARAM_1 - 1 ) )
236
+ #define NUMPARAM_IDX_TO_ID (idx ) TOKEN2LOCALID((tNUMPARAM_1 - 1 + (idx)))
237
237
static int
238
238
numparam_id_p (ID id)
239
239
{
240
- if (!is_local_id (id)) return 0 ;
240
+ if (!is_local_id (id) || id < (tNUMPARAM_1 << ID_SCOPE_SHIFT) ) return 0 ;
241
241
unsigned int idx = NUMPARAM_ID_TO_IDX (id);
242
242
return idx > 0 && idx <= NUMPARAM_MAX;
243
243
}
Original file line number Diff line number Diff line change 37
37
38
38
#include "regparse.h"
39
39
#include <stdarg.h>
40
+ #include "internal/sanitizers.h"
40
41
41
42
#define WARN_BUFSIZE 256
42
43
@@ -394,6 +395,8 @@ str_end_cmp(st_data_t xp, st_data_t yp)
394
395
return 0 ;
395
396
}
396
397
398
+ NO_SANITIZE ("unsigned-integer-overflow" , static st_index_t str_end_hash (st_data_t xp ));
399
+
397
400
static st_index_t
398
401
str_end_hash (st_data_t xp )
399
402
{
You can’t perform that action at this time.
0 commit comments