Skip to content

Commit 69e70d7

Browse files
committed
Reapply "Merge pull request #20645 from paldepind/cpp/range-analysis-measure"
This reverts commit e7c029a.
1 parent 96f57b2 commit 69e70d7

File tree

8 files changed

+6392
-418
lines changed

8 files changed

+6392
-418
lines changed

cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll

Lines changed: 398 additions & 30 deletions
Large diffs are not rendered by default.

cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected

Lines changed: 513 additions & 191 deletions
Large diffs are not rendered by default.

cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected

Lines changed: 4605 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import cpp
2+
import semmle.code.cpp.rangeanalysis.SimpleRangeAnalysis
3+
4+
from Expr e
5+
select e, SimpleRangeAnalysisInternal::estimateNrOfBounds(e)

cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected

Lines changed: 72 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,77 @@
7272
| test.c:405:22:405:82 | ... ? ... : ... | 0.13204114 | 0.42186276 | 0.13204114 |
7373
| test.c:405:26:405:69 | ... ? ... : ... | 0.42186276 | 0.42186276 | 0.44996679 |
7474
| test.c:405:30:405:56 | ... ? ... : ... | 0.42186276 | 0.42186276 | 0.53843358 |
75-
| test.c:418:20:418:36 | ... ? ... : ... | 0.0 | 0.0 | 100.0 |
76-
| test.c:630:5:630:14 | ... ? ... : ... | 0.0 | 1.0 | 0.0 |
77-
| test.c:631:5:631:14 | ... ? ... : ... | 0.0 | 0.0 | 1.0 |
75+
| test.c:432:4:606:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
76+
| test.c:432:5:434:49 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
77+
| test.c:435:6:517:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
78+
| test.c:436:8:454:41 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
79+
| test.c:439:10:443:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
80+
| test.c:439:31:439:79 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
81+
| test.c:441:13:443:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
82+
| test.c:448:12:453:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
83+
| test.c:449:12:449:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
84+
| test.c:451:15:453:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
85+
| test.c:455:6:474:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
86+
| test.c:458:8:462:19 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
87+
| test.c:458:29:458:77 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
88+
| test.c:460:11:462:19 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
89+
| test.c:463:6:463:54 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
90+
| test.c:467:10:471:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
91+
| test.c:467:31:467:79 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
92+
| test.c:469:13:471:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
93+
| test.c:472:9:474:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
94+
| test.c:476:10:495:43 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
95+
| test.c:479:12:484:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
96+
| test.c:480:12:480:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
97+
| test.c:482:15:484:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
98+
| test.c:489:14:494:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
99+
| test.c:490:14:490:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
100+
| test.c:492:17:494:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
101+
| test.c:496:9:517:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
102+
| test.c:499:14:504:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
103+
| test.c:500:14:500:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
104+
| test.c:502:17:504:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
105+
| test.c:505:12:505:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
106+
| test.c:509:12:514:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
107+
| test.c:510:12:510:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
108+
| test.c:512:15:514:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
109+
| test.c:515:11:517:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
110+
| test.c:518:9:520:51 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
111+
| test.c:521:9:606:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
112+
| test.c:522:14:541:47 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
113+
| test.c:525:16:530:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
114+
| test.c:526:16:526:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
115+
| test.c:528:19:530:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
116+
| test.c:535:18:540:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
117+
| test.c:536:18:536:66 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
118+
| test.c:538:21:540:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
119+
| test.c:542:12:563:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
120+
| test.c:545:14:550:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
121+
| test.c:546:14:546:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
122+
| test.c:548:17:550:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
123+
| test.c:551:12:551:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
124+
| test.c:555:16:560:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
125+
| test.c:556:16:556:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
126+
| test.c:558:19:560:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
127+
| test.c:561:15:563:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
128+
| test.c:565:12:584:45 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
129+
| test.c:568:14:573:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
130+
| test.c:569:14:569:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
131+
| test.c:571:17:573:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
132+
| test.c:578:16:583:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
133+
| test.c:579:16:579:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
134+
| test.c:581:19:583:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
135+
| test.c:585:11:606:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
136+
| test.c:588:16:593:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
137+
| test.c:589:16:589:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
138+
| test.c:591:19:593:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
139+
| test.c:594:14:594:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
140+
| test.c:598:14:603:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
141+
| test.c:599:14:599:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
142+
| test.c:601:17:603:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
143+
| test.c:604:13:606:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 |
144+
| test.c:632:20:632:36 | ... ? ... : ... | 0.0 | 0.0 | 100.0 |
145+
| test.c:844:5:844:14 | ... ? ... : ... | 0.0 | 1.0 | 0.0 |
146+
| test.c:845:5:845:14 | ... ? ... : ... | 0.0 | 0.0 | 1.0 |
78147
| test.cpp:121:3:121:12 | ... ? ... : ... | 0.0 | 1.0 | 0.0 |
79148
| test.cpp:122:3:122:12 | ... ? ... : ... | 0.0 | 0.0 | 1.0 |

cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected

Lines changed: 72 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,77 @@
7272
| test.c:405:22:405:82 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.13204114 |
7373
| test.c:405:26:405:69 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.44996679 |
7474
| test.c:405:30:405:56 | ... ? ... : ... | 0.53843358 | 0.42186276 | 0.53843358 |
75-
| test.c:418:20:418:36 | ... ? ... : ... | 100.0 | 99.0 | 100.0 |
76-
| test.c:630:5:630:14 | ... ? ... : ... | 32767.0 | 32767.0 | 0.0 |
77-
| test.c:631:5:631:14 | ... ? ... : ... | 32767.0 | 0.0 | 32767.0 |
75+
| test.c:432:4:606:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
76+
| test.c:432:5:434:49 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
77+
| test.c:435:6:517:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
78+
| test.c:436:8:454:41 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
79+
| test.c:439:10:443:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
80+
| test.c:439:31:439:79 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
81+
| test.c:441:13:443:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
82+
| test.c:448:12:453:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
83+
| test.c:449:12:449:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
84+
| test.c:451:15:453:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
85+
| test.c:455:6:474:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
86+
| test.c:458:8:462:19 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
87+
| test.c:458:29:458:77 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
88+
| test.c:460:11:462:19 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
89+
| test.c:463:6:463:54 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
90+
| test.c:467:10:471:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
91+
| test.c:467:31:467:79 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
92+
| test.c:469:13:471:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
93+
| test.c:472:9:474:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
94+
| test.c:476:10:495:43 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
95+
| test.c:479:12:484:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
96+
| test.c:480:12:480:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
97+
| test.c:482:15:484:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
98+
| test.c:489:14:494:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
99+
| test.c:490:14:490:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
100+
| test.c:492:17:494:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
101+
| test.c:496:9:517:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
102+
| test.c:499:14:504:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
103+
| test.c:500:14:500:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
104+
| test.c:502:17:504:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
105+
| test.c:505:12:505:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
106+
| test.c:509:12:514:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
107+
| test.c:510:12:510:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
108+
| test.c:512:15:514:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
109+
| test.c:515:11:517:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
110+
| test.c:518:9:520:51 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
111+
| test.c:521:9:606:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
112+
| test.c:522:14:541:47 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
113+
| test.c:525:16:530:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
114+
| test.c:526:16:526:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
115+
| test.c:528:19:530:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
116+
| test.c:535:18:540:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
117+
| test.c:536:18:536:66 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
118+
| test.c:538:21:540:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
119+
| test.c:542:12:563:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
120+
| test.c:545:14:550:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
121+
| test.c:546:14:546:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
122+
| test.c:548:17:550:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
123+
| test.c:551:12:551:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
124+
| test.c:555:16:560:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
125+
| test.c:556:16:556:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
126+
| test.c:558:19:560:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
127+
| test.c:561:15:563:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
128+
| test.c:565:12:584:45 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
129+
| test.c:568:14:573:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
130+
| test.c:569:14:569:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
131+
| test.c:571:17:573:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
132+
| test.c:578:16:583:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
133+
| test.c:579:16:579:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
134+
| test.c:581:19:583:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
135+
| test.c:585:11:606:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
136+
| test.c:588:16:593:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
137+
| test.c:589:16:589:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
138+
| test.c:591:19:593:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
139+
| test.c:594:14:594:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
140+
| test.c:598:14:603:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
141+
| test.c:599:14:599:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
142+
| test.c:601:17:603:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
143+
| test.c:604:13:606:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 |
144+
| test.c:632:20:632:36 | ... ? ... : ... | 100.0 | 99.0 | 100.0 |
145+
| test.c:844:5:844:14 | ... ? ... : ... | 32767.0 | 32767.0 | 0.0 |
146+
| test.c:845:5:845:14 | ... ? ... : ... | 32767.0 | 0.0 | 32767.0 |
78147
| test.cpp:121:3:121:12 | ... ? ... : ... | 32767.0 | 32767.0 | 0.0 |
79148
| test.cpp:122:3:122:12 | ... ? ... : ... | 32767.0 | 0.0 | 32767.0 |

0 commit comments

Comments
 (0)