projects
/
re2c
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1b5a5f4
)
src/dfa/closure_posix.cc: fix pack() to drop two highest bits
224/head
author
Sergei Trofimovich
<slyfox@gentoo.org>
Mon, 22 Oct 2018 22:05:56 +0000
(23:05 +0100)
committer
Sergei Trofimovich
<slyfox@gentoo.org>
Mon, 22 Oct 2018 22:05:56 +0000
(23:05 +0100)
```c
longest | (leftmost << 30);
```
assumes `longest` does not exceed 30 bits. It could if
it's a negative value originally.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
re2c/src/dfa/closure_posix.cc
patch
|
blob
|
history
diff --git
a/re2c/src/dfa/closure_posix.cc
b/re2c/src/dfa/closure_posix.cc
index c33e730207326521ffe5b55d5e1f0bd5813d4385..d110d73ff4f4ba4700e6ffe4ffe72589a36466fb 100644
(file)
--- a/
re2c/src/dfa/closure_posix.cc
+++ b/
re2c/src/dfa/closure_posix.cc
@@
-204,6
+204,7
@@
void orders(determ_context_t &ctx)
static uint32_t pack_u32(uint32_t longest, uint32_t leftmost)
{
// leftmost: higher 2 bits, longest: lower 30 bits
+ longest &= ~0u >> 2;
return longest | (leftmost << 30);
}