Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d8d3bfd

Browse files
committed
C++: expand aggregate literals test to cover ordering of child exprs
1 parent 7556f22 commit d8d3bfd

4 files changed

Lines changed: 73 additions & 0 deletions

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
| aggregate_literals.c:24:29:24:61 | {...} | file://:0:0:0:0 | someStruct[2] | 0 | aggregate_literals.c:24:31:24:44 | {...} | 0 |
2+
| aggregate_literals.c:24:29:24:61 | {...} | file://:0:0:0:0 | someStruct[2] | 1 | aggregate_literals.c:24:47:24:60 | {...} | 1 |
3+
| aggregate_literals.c:30:20:30:28 | {...} | file://:0:0:0:0 | int[2] | 0 | aggregate_literals.c:30:23:30:23 | x | 0 |
4+
| aggregate_literals.c:30:20:30:28 | {...} | file://:0:0:0:0 | int[2] | 1 | aggregate_literals.c:30:26:30:26 | y | 1 |
5+
| aggregate_literals.c:32:20:32:25 | {...} | file://:0:0:0:0 | int[2] | 0 | aggregate_literals.c:32:23:32:23 | x | 0 |
6+
| aggregate_literals.c:34:20:34:31 | {...} | file://:0:0:0:0 | int[2] | 0 | aggregate_literals.c:34:29:34:29 | y | 1 |
7+
| aggregate_literals.c:51:11:55:5 | {...} | file://:0:0:0:0 | int[3] | 0 | aggregate_literals.c:52:13:52:13 | x | 2 |
8+
| aggregate_literals.c:51:11:55:5 | {...} | file://:0:0:0:0 | int[3] | 1 | aggregate_literals.c:53:13:53:13 | y | 0 |
9+
| aggregate_literals.c:51:11:55:5 | {...} | file://:0:0:0:0 | int[3] | 2 | aggregate_literals.c:54:7:54:9 | ... + ... | 1 |
10+
| aggregate_literals.c:57:13:67:5 | {...} | file://:0:0:0:0 | someOtherStruct[3] | 0 | aggregate_literals.c:58:13:61:7 | {...} | 1 |
11+
| aggregate_literals.c:57:13:67:5 | {...} | file://:0:0:0:0 | someOtherStruct[3] | 1 | aggregate_literals.c:62:13:65:7 | {...} | 0 |
12+
| aggregate_literals.c:73:5:83:5 | {...} | file://:0:0:0:0 | someStruct[3] | 0 | aggregate_literals.c:74:7:77:7 | {...} | 0 |
13+
| aggregate_literals.c:73:5:83:5 | {...} | file://:0:0:0:0 | someStruct[3] | 1 | aggregate_literals.c:78:7:81:7 | {...} | 1 |
14+
| aggregate_literals.c:84:5:88:5 | {...} | file://:0:0:0:0 | int[3] | 0 | aggregate_literals.c:85:7:85:8 | 99 | 0 |
15+
| aggregate_literals.c:84:5:88:5 | {...} | file://:0:0:0:0 | int[3] | 1 | aggregate_literals.c:86:7:86:9 | ... * ... | 1 |
16+
| aggregate_literals.c:89:5:99:5 | {...} | file://:0:0:0:0 | someOtherStruct[3] | 0 | aggregate_literals.c:90:7:93:7 | {...} | 0 |
17+
| aggregate_literals.c:89:5:99:5 | {...} | file://:0:0:0:0 | someOtherStruct[3] | 1 | aggregate_literals.c:94:7:97:7 | {...} | 1 |
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import cpp
2+
3+
// Test that the child expressions of the aggregate literal are in the same
4+
// order as in the source code and still match the element being initialized
5+
// (which, in the case of designated initializers, will not necessarily match
6+
// the order of the array elements).
7+
8+
from ArrayAggregateLiteral aal, int childIndex, int elementIndex
9+
where aal.getElementExpr(elementIndex) = aal.getChild(childIndex)
10+
select aal, aal.getType().getUnspecifiedType(), childIndex,
11+
aal.getChild(childIndex), elementIndex
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
| aggregate_literals.c:17:31:20:5 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 0 | aggregate_literals.c:18:14:18:18 | ... + ... | aggregate_literals.c:2:9:2:9 | i |
2+
| aggregate_literals.c:17:31:20:5 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 1 | aggregate_literals.c:19:14:19:18 | ... - ... | aggregate_literals.c:3:9:3:9 | j |
3+
| aggregate_literals.c:22:31:22:47 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 0 | aggregate_literals.c:22:34:22:38 | ... + ... | aggregate_literals.c:2:9:2:9 | i |
4+
| aggregate_literals.c:22:31:22:47 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 1 | aggregate_literals.c:22:41:22:45 | ... - ... | aggregate_literals.c:3:9:3:9 | j |
5+
| aggregate_literals.c:24:31:24:44 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 0 | aggregate_literals.c:24:32:24:36 | ... + ... | aggregate_literals.c:2:9:2:9 | i |
6+
| aggregate_literals.c:24:31:24:44 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 1 | aggregate_literals.c:24:39:24:43 | ... - ... | aggregate_literals.c:3:9:3:9 | j |
7+
| aggregate_literals.c:24:47:24:60 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 0 | aggregate_literals.c:24:48:24:52 | ... * ... | aggregate_literals.c:2:9:2:9 | i |
8+
| aggregate_literals.c:24:47:24:60 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 1 | aggregate_literals.c:24:55:24:59 | ... / ... | aggregate_literals.c:3:9:3:9 | j |
9+
| aggregate_literals.c:26:31:26:36 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 0 | aggregate_literals.c:26:34:26:34 | x | aggregate_literals.c:2:9:2:9 | i |
10+
| aggregate_literals.c:28:31:28:41 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 0 | aggregate_literals.c:28:39:28:39 | y | aggregate_literals.c:3:9:3:9 | j |
11+
| aggregate_literals.c:36:29:36:34 | {...} | aggregate_literals.c:11:7:11:15 | someUnion | 0 | aggregate_literals.c:36:32:36:32 | x | aggregate_literals.c:12:9:12:9 | n |
12+
| aggregate_literals.c:37:29:37:39 | {...} | aggregate_literals.c:11:7:11:15 | someUnion | 0 | aggregate_literals.c:37:37:37:37 | x | aggregate_literals.c:12:9:12:9 | n |
13+
| aggregate_literals.c:38:29:38:41 | {...} | aggregate_literals.c:11:7:11:15 | someUnion | 0 | aggregate_literals.c:38:37:38:39 | 5.0 | aggregate_literals.c:13:12:13:12 | d |
14+
| aggregate_literals.c:50:38:69:3 | {...} | aggregate_literals.c:41:8:41:20 | complexStruct | 0 | aggregate_literals.c:51:11:55:5 | {...} | aggregate_literals.c:43:9:43:10 | as |
15+
| aggregate_literals.c:50:38:69:3 | {...} | aggregate_literals.c:41:8:41:20 | complexStruct | 1 | aggregate_literals.c:56:10:56:11 | 42 | aggregate_literals.c:45:9:45:9 | z |
16+
| aggregate_literals.c:50:38:69:3 | {...} | aggregate_literals.c:41:8:41:20 | complexStruct | 2 | aggregate_literals.c:57:13:67:5 | {...} | aggregate_literals.c:44:28:44:31 | soss |
17+
| aggregate_literals.c:58:13:61:7 | {...} | aggregate_literals.c:6:8:6:22 | someOtherStruct | 0 | aggregate_literals.c:59:14:59:16 | ... + ... | aggregate_literals.c:7:9:7:9 | a |
18+
| aggregate_literals.c:58:13:61:7 | {...} | aggregate_literals.c:6:8:6:22 | someOtherStruct | 1 | aggregate_literals.c:60:14:60:16 | ... - ... | aggregate_literals.c:8:9:8:9 | b |
19+
| aggregate_literals.c:62:13:65:7 | {...} | aggregate_literals.c:6:8:6:22 | someOtherStruct | 0 | aggregate_literals.c:63:14:63:16 | ... * ... | aggregate_literals.c:8:9:8:9 | b |
20+
| aggregate_literals.c:62:13:65:7 | {...} | aggregate_literals.c:6:8:6:22 | someOtherStruct | 1 | aggregate_literals.c:64:14:64:16 | ... / ... | aggregate_literals.c:7:9:7:9 | a |
21+
| aggregate_literals.c:72:38:101:3 | {...} | aggregate_literals.c:41:8:41:20 | complexStruct | 0 | aggregate_literals.c:73:5:83:5 | {...} | aggregate_literals.c:42:23:42:25 | sss |
22+
| aggregate_literals.c:72:38:101:3 | {...} | aggregate_literals.c:41:8:41:20 | complexStruct | 1 | aggregate_literals.c:84:5:88:5 | {...} | aggregate_literals.c:43:9:43:10 | as |
23+
| aggregate_literals.c:72:38:101:3 | {...} | aggregate_literals.c:41:8:41:20 | complexStruct | 2 | aggregate_literals.c:89:5:99:5 | {...} | aggregate_literals.c:44:28:44:31 | soss |
24+
| aggregate_literals.c:74:7:77:7 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 0 | aggregate_literals.c:75:9:75:9 | x | aggregate_literals.c:2:9:2:9 | i |
25+
| aggregate_literals.c:74:7:77:7 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 1 | aggregate_literals.c:76:9:76:9 | y | aggregate_literals.c:3:9:3:9 | j |
26+
| aggregate_literals.c:78:7:81:7 | {...} | aggregate_literals.c:1:8:1:17 | someStruct | 0 | aggregate_literals.c:79:9:79:11 | ... + ... | aggregate_literals.c:2:9:2:9 | i |
27+
| aggregate_literals.c:90:7:93:7 | {...} | aggregate_literals.c:6:8:6:22 | someOtherStruct | 0 | aggregate_literals.c:91:9:91:11 | 123 | aggregate_literals.c:7:9:7:9 | a |
28+
| aggregate_literals.c:90:7:93:7 | {...} | aggregate_literals.c:6:8:6:22 | someOtherStruct | 1 | aggregate_literals.c:92:9:92:11 | ... + ... | aggregate_literals.c:8:9:8:9 | b |
29+
| aggregate_literals.c:94:7:97:7 | {...} | aggregate_literals.c:6:8:6:22 | someOtherStruct | 0 | aggregate_literals.c:95:9:95:9 | x | aggregate_literals.c:7:9:7:9 | a |
30+
| aggregate_literals_cpp.cpp:23:29:23:40 | {...} | aggregate_literals_cpp.cpp:1:8:1:26 | StructWithBitfields | 0 | aggregate_literals_cpp.cpp:23:32:23:32 | x | aggregate_literals_cpp.cpp:4:18:4:18 | a |
31+
| aggregate_literals_cpp.cpp:23:29:23:40 | {...} | aggregate_literals_cpp.cpp:1:8:1:26 | StructWithBitfields | 1 | aggregate_literals_cpp.cpp:23:35:23:35 | y | aggregate_literals_cpp.cpp:8:18:8:18 | b |
32+
| aggregate_literals_cpp.cpp:23:29:23:40 | {...} | aggregate_literals_cpp.cpp:1:8:1:26 | StructWithBitfields | 2 | aggregate_literals_cpp.cpp:23:38:23:38 | z | aggregate_literals_cpp.cpp:10:18:10:18 | c |
33+
| aggregate_literals_cpp.cpp:24:29:24:37 | {...} | aggregate_literals_cpp.cpp:1:8:1:26 | StructWithBitfields | 0 | aggregate_literals_cpp.cpp:24:32:24:32 | x | aggregate_literals_cpp.cpp:4:18:4:18 | a |
34+
| aggregate_literals_cpp.cpp:24:29:24:37 | {...} | aggregate_literals_cpp.cpp:1:8:1:26 | StructWithBitfields | 1 | aggregate_literals_cpp.cpp:24:35:24:35 | y | aggregate_literals_cpp.cpp:8:18:8:18 | b |
35+
| aggregate_literals_cpp.cpp:26:26:26:31 | {...} | aggregate_literals_cpp.cpp:13:7:13:22 | UnionWithMethods | 0 | aggregate_literals_cpp.cpp:26:29:26:29 | x | aggregate_literals_cpp.cpp:18:12:18:12 | d |
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import cpp
2+
3+
// Test that the child expressions of the aggregate literal are in the same
4+
// order as in the source code and still match the field being initialized
5+
// (which, in the case of designated initializers, will not necessarily match
6+
// the order in which the fields were declared).
7+
8+
from ClassAggregateLiteral cal, int i, Field f
9+
where cal.getFieldExpr(f) = cal.getChild(i)
10+
select cal, cal.getType().getUnspecifiedType(), i, cal.getChild(i), f

0 commit comments

Comments
 (0)