mirror of
https://github.com/github/codeql.git
synced 2026-04-27 09:45:15 +02:00
Merge pull request #4162 from jbj/ssa-ref-parameters
C++: SSA and range analysis for reference parameters
This commit is contained in:
@@ -573,3 +573,15 @@
|
||||
| test.cpp:75:22:75:30 | c_times_2 | 0 |
|
||||
| test.cpp:77:5:77:13 | c_times_2 | 0 |
|
||||
| test.cpp:79:3:79:11 | c_times_2 | 0 |
|
||||
| test.cpp:83:16:83:22 | aliased | -2147483648 |
|
||||
| test.cpp:85:7:85:7 | i | -2147483648 |
|
||||
| test.cpp:86:12:86:12 | i | 2 |
|
||||
| test.cpp:88:7:88:8 | ci | -2147483648 |
|
||||
| test.cpp:89:12:89:13 | ci | 2 |
|
||||
| test.cpp:91:7:91:13 | aliased | -2147483648 |
|
||||
| test.cpp:92:12:92:18 | aliased | -2147483648 |
|
||||
| test.cpp:94:7:94:11 | alias | -2147483648 |
|
||||
| test.cpp:95:12:95:16 | alias | -2147483648 |
|
||||
| test.cpp:97:10:97:10 | i | -2147483648 |
|
||||
| test.cpp:97:22:97:22 | i | -2147483648 |
|
||||
| test.cpp:98:5:98:5 | i | -2147483648 |
|
||||
|
||||
@@ -78,3 +78,25 @@ void use_after_cast(unsigned char c)
|
||||
}
|
||||
c_times_2;
|
||||
}
|
||||
|
||||
int ref_to_number(int &i, const int &ci, int &aliased) {
|
||||
int &alias = aliased; // no range analysis for either of the two aliased variables
|
||||
|
||||
if (i >= 2)
|
||||
return i;
|
||||
|
||||
if (ci >= 2)
|
||||
return ci;
|
||||
|
||||
if (aliased >= 2)
|
||||
return aliased;
|
||||
|
||||
if (alias >= 2)
|
||||
return alias;
|
||||
|
||||
for (; i <= 12345; i++) { // test that widening works for references
|
||||
i;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -573,3 +573,15 @@
|
||||
| test.cpp:75:22:75:30 | c_times_2 | 510 |
|
||||
| test.cpp:77:5:77:13 | c_times_2 | 510 |
|
||||
| test.cpp:79:3:79:11 | c_times_2 | 510 |
|
||||
| test.cpp:83:16:83:22 | aliased | 2147483647 |
|
||||
| test.cpp:85:7:85:7 | i | 2147483647 |
|
||||
| test.cpp:86:12:86:12 | i | 2147483647 |
|
||||
| test.cpp:88:7:88:8 | ci | 2147483647 |
|
||||
| test.cpp:89:12:89:13 | ci | 2147483647 |
|
||||
| test.cpp:91:7:91:13 | aliased | 2147483647 |
|
||||
| test.cpp:92:12:92:18 | aliased | 2147483647 |
|
||||
| test.cpp:94:7:94:11 | alias | 2147483647 |
|
||||
| test.cpp:95:12:95:16 | alias | 2147483647 |
|
||||
| test.cpp:97:10:97:10 | i | 65535 |
|
||||
| test.cpp:97:22:97:22 | i | 32767 |
|
||||
| test.cpp:98:5:98:5 | i | 32767 |
|
||||
|
||||
Reference in New Issue
Block a user