You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Evaluate any non-trivial switch condition just once
goto-program conversion should not turn switch(E) { case 1:... case 2:
...} into if(E == 1 || E == 2 || ...) for a non-trivial expression E.
Instead, the value of E must be copied into a temporary to avoid
repeated evaluation of E. We would already do this when E had side
effects, but even side-effect-free expression could result in expensive
assertions being generated when those expressions themselves would
trigger them with goto_check.
This change reduces verification time of a proof of
s2n_stuffer_skip_whitespace from several minutes down to seconds.
^\[main.pointer_dereference.\d+\] line 10 dereference failure: pointer NULL in \*p: SUCCESS$
6
+
^VERIFICATION SUCCESSFUL$
7
+
^EXIT=0$
8
+
^SIGNAL=0$
9
+
--
10
+
^warning: ignoring
11
+
\[main.pointer_dereference.\d+\] line 10 dereference failure: pointer NULL in \*p: SUCCESS\n.*\[main.pointer_dereference.\d+\] line 10 dereference failure: pointer NULL in \*p: SUCCESS\n
12
+
--
13
+
A pointer check for the switch value should be generated, but there should only
0 commit comments