mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
Merge remote-tracking branch 'upstream/master' into dbartol/floats
This commit is contained in:
@@ -143,3 +143,9 @@ void multidimensionalNew(int x, int y) {
|
||||
auto p2 = new char[20][20];
|
||||
auto p3 = new char[x][30][30];
|
||||
}
|
||||
|
||||
void directOperatorCall() {
|
||||
void *ptr;
|
||||
ptr = operator new(sizeof(int));
|
||||
operator delete(ptr);
|
||||
}
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
newExprs
|
||||
| allocators.cpp:49:3:49:9 | new | int | operator new(unsigned long) -> void * | 4 | 4 | |
|
||||
| allocators.cpp:50:3:50:15 | new | int | operator new(size_t, float) -> void * | 4 | 4 | |
|
||||
| allocators.cpp:51:3:51:11 | new | int | operator new(unsigned long) -> void * | 4 | 4 | |
|
||||
| allocators.cpp:52:3:52:14 | new | String | operator new(unsigned long) -> void * | 8 | 8 | |
|
||||
| allocators.cpp:53:3:53:27 | new | String | operator new(size_t, float) -> void * | 8 | 8 | |
|
||||
| allocators.cpp:54:3:54:17 | new | Overaligned | operator new(unsigned long, align_val_t) -> void * | 256 | 128 | aligned |
|
||||
| allocators.cpp:55:3:55:25 | new | Overaligned | operator new(size_t, align_val_t, float) -> void * | 256 | 128 | aligned |
|
||||
| allocators.cpp:107:3:107:18 | new | FailedInit | FailedInit::operator new(size_t) -> void * | 1 | 1 | |
|
||||
| allocators.cpp:109:3:109:35 | new | FailedInitOveraligned | FailedInitOveraligned::operator new(size_t, align_val_t, float) -> void * | 128 | 128 | aligned |
|
||||
| allocators.cpp:129:3:129:21 | new | int | operator new(size_t, void *) -> void * | 4 | 4 | |
|
||||
| allocators.cpp:135:3:135:26 | new | int | operator new(size_t, const nothrow_t &) -> void * | 4 | 4 | |
|
||||
| allocators.cpp:49:3:49:9 | new | int | operator new(unsigned long) -> void * | 4 | 4 | | |
|
||||
| allocators.cpp:50:3:50:15 | new | int | operator new(size_t, float) -> void * | 4 | 4 | | |
|
||||
| allocators.cpp:51:3:51:11 | new | int | operator new(unsigned long) -> void * | 4 | 4 | | |
|
||||
| allocators.cpp:52:3:52:14 | new | String | operator new(unsigned long) -> void * | 8 | 8 | | |
|
||||
| allocators.cpp:53:3:53:27 | new | String | operator new(size_t, float) -> void * | 8 | 8 | | |
|
||||
| allocators.cpp:54:3:54:17 | new | Overaligned | operator new(unsigned long, align_val_t) -> void * | 256 | 128 | aligned | |
|
||||
| allocators.cpp:55:3:55:25 | new | Overaligned | operator new(size_t, align_val_t, float) -> void * | 256 | 128 | aligned | |
|
||||
| allocators.cpp:107:3:107:18 | new | FailedInit | FailedInit::operator new(size_t) -> void * | 1 | 1 | | |
|
||||
| allocators.cpp:109:3:109:35 | new | FailedInitOveraligned | FailedInitOveraligned::operator new(size_t, align_val_t, float) -> void * | 128 | 128 | aligned | |
|
||||
| allocators.cpp:129:3:129:21 | new | int | operator new(size_t, void *) -> void * | 4 | 4 | | & ... |
|
||||
| allocators.cpp:135:3:135:26 | new | int | operator new(size_t, const nothrow_t &) -> void * | 4 | 4 | | |
|
||||
newArrayExprs
|
||||
| allocators.cpp:68:3:68:12 | new[] | int[] | int | operator new[](unsigned long) -> void * | 4 | 4 | | n |
|
||||
| allocators.cpp:69:3:69:18 | new[] | int[] | int | operator new[](size_t, float) -> void * | 4 | 4 | | n |
|
||||
| allocators.cpp:70:3:70:15 | new[] | String[] | String | operator new[](unsigned long) -> void * | 8 | 8 | | n |
|
||||
| allocators.cpp:71:3:71:20 | new[] | Overaligned[] | Overaligned | operator new[](unsigned long, align_val_t) -> void * | 256 | 128 | aligned | n |
|
||||
| allocators.cpp:72:3:72:16 | new[] | String[10] | String | operator new[](unsigned long) -> void * | 8 | 8 | | |
|
||||
| allocators.cpp:108:3:108:19 | new[] | FailedInit[] | FailedInit | FailedInit::operator new[](size_t) -> void * | 1 | 1 | | n |
|
||||
| allocators.cpp:110:3:110:37 | new[] | FailedInitOveraligned[10] | FailedInitOveraligned | FailedInitOveraligned::operator new[](size_t, align_val_t, float) -> void * | 128 | 128 | aligned | |
|
||||
| allocators.cpp:132:3:132:17 | new[] | int[1] | int | operator new[](size_t, void *) -> void * | 4 | 4 | | |
|
||||
| allocators.cpp:136:3:136:26 | new[] | int[2] | int | operator new[](size_t, const nothrow_t &) -> void * | 4 | 4 | | |
|
||||
| allocators.cpp:142:13:142:27 | new[] | char[][10] | char[10] | operator new[](unsigned long) -> void * | 10 | 1 | | x |
|
||||
| allocators.cpp:143:13:143:28 | new[] | char[20][20] | char[20] | operator new[](unsigned long) -> void * | 20 | 1 | | |
|
||||
| allocators.cpp:144:13:144:31 | new[] | char[][30][30] | char[30][30] | operator new[](unsigned long) -> void * | 900 | 1 | | x |
|
||||
| allocators.cpp:68:3:68:12 | new[] | int[] | int | operator new[](unsigned long) -> void * | 4 | 4 | | n | |
|
||||
| allocators.cpp:69:3:69:18 | new[] | int[] | int | operator new[](size_t, float) -> void * | 4 | 4 | | n | |
|
||||
| allocators.cpp:70:3:70:15 | new[] | String[] | String | operator new[](unsigned long) -> void * | 8 | 8 | | n | |
|
||||
| allocators.cpp:71:3:71:20 | new[] | Overaligned[] | Overaligned | operator new[](unsigned long, align_val_t) -> void * | 256 | 128 | aligned | n | |
|
||||
| allocators.cpp:72:3:72:16 | new[] | String[10] | String | operator new[](unsigned long) -> void * | 8 | 8 | | | |
|
||||
| allocators.cpp:108:3:108:19 | new[] | FailedInit[] | FailedInit | FailedInit::operator new[](size_t) -> void * | 1 | 1 | | n | |
|
||||
| allocators.cpp:110:3:110:37 | new[] | FailedInitOveraligned[10] | FailedInitOveraligned | FailedInitOveraligned::operator new[](size_t, align_val_t, float) -> void * | 128 | 128 | aligned | | |
|
||||
| allocators.cpp:132:3:132:17 | new[] | int[1] | int | operator new[](size_t, void *) -> void * | 4 | 4 | | | buf |
|
||||
| allocators.cpp:136:3:136:26 | new[] | int[2] | int | operator new[](size_t, const nothrow_t &) -> void * | 4 | 4 | | | |
|
||||
| allocators.cpp:142:13:142:27 | new[] | char[][10] | char[10] | operator new[](unsigned long) -> void * | 10 | 1 | | x | |
|
||||
| allocators.cpp:143:13:143:28 | new[] | char[20][20] | char[20] | operator new[](unsigned long) -> void * | 20 | 1 | | | |
|
||||
| allocators.cpp:144:13:144:31 | new[] | char[][30][30] | char[30][30] | operator new[](unsigned long) -> void * | 900 | 1 | | x | |
|
||||
newExprDeallocators
|
||||
| allocators.cpp:52:3:52:14 | new | String | operator delete(void *, unsigned long) -> void | 8 | 8 | sized |
|
||||
| allocators.cpp:53:3:53:27 | new | String | operator delete(void *, float) -> void | 8 | 8 | |
|
||||
@@ -46,3 +46,65 @@ deleteArrayExprs
|
||||
| allocators.cpp:81:3:81:45 | delete[] | Overaligned | operator delete[](void *, unsigned long, align_val_t) -> void | 256 | 128 | sized aligned |
|
||||
| allocators.cpp:82:3:82:49 | delete[] | PolymorphicBase | operator delete[](void *, unsigned long) -> void | 8 | 8 | sized |
|
||||
| allocators.cpp:83:3:83:23 | delete[] | int | operator delete[](void *, unsigned long) -> void | 4 | 4 | sized |
|
||||
allocationFunctions
|
||||
| allocators.cpp:7:7:7:18 | operator new | getSizeArg = 0, requiresDealloc |
|
||||
| allocators.cpp:8:7:8:20 | operator new[] | getSizeArg = 0, requiresDealloc |
|
||||
| allocators.cpp:9:7:9:18 | operator new | getSizeArg = 0, requiresDealloc |
|
||||
| allocators.cpp:10:7:10:20 | operator new[] | getSizeArg = 0, requiresDealloc |
|
||||
| allocators.cpp:121:7:121:18 | operator new | getPlacementArgument = 1, getSizeArg = 0 |
|
||||
| allocators.cpp:122:7:122:20 | operator new[] | getPlacementArgument = 1, getSizeArg = 0 |
|
||||
| allocators.cpp:123:7:123:18 | operator new | getSizeArg = 0, requiresDealloc |
|
||||
| allocators.cpp:124:7:124:20 | operator new[] | getSizeArg = 0, requiresDealloc |
|
||||
| file://:0:0:0:0 | operator new | getSizeArg = 0, requiresDealloc |
|
||||
| file://:0:0:0:0 | operator new | getSizeArg = 0, requiresDealloc |
|
||||
| file://:0:0:0:0 | operator new[] | getSizeArg = 0, requiresDealloc |
|
||||
| file://:0:0:0:0 | operator new[] | getSizeArg = 0, requiresDealloc |
|
||||
allocationExprs
|
||||
| allocators.cpp:49:3:49:9 | new | getSizeBytes = 4, requiresDealloc |
|
||||
| allocators.cpp:50:3:50:15 | new | getSizeBytes = 4, requiresDealloc |
|
||||
| allocators.cpp:51:3:51:11 | new | getSizeBytes = 4, requiresDealloc |
|
||||
| allocators.cpp:52:3:52:14 | new | getSizeBytes = 8, requiresDealloc |
|
||||
| allocators.cpp:53:3:53:27 | new | getSizeBytes = 8, requiresDealloc |
|
||||
| allocators.cpp:54:3:54:17 | new | getSizeBytes = 256, requiresDealloc |
|
||||
| allocators.cpp:55:3:55:25 | new | getSizeBytes = 256, requiresDealloc |
|
||||
| allocators.cpp:68:3:68:12 | new[] | getSizeExpr = n, getSizeMult = 4, requiresDealloc |
|
||||
| allocators.cpp:69:3:69:18 | new[] | getSizeExpr = n, getSizeMult = 4, requiresDealloc |
|
||||
| allocators.cpp:70:3:70:15 | new[] | getSizeExpr = n, getSizeMult = 8, requiresDealloc |
|
||||
| allocators.cpp:71:3:71:20 | new[] | getSizeExpr = n, getSizeMult = 256, requiresDealloc |
|
||||
| allocators.cpp:72:3:72:16 | new[] | getSizeBytes = 80, requiresDealloc |
|
||||
| allocators.cpp:107:3:107:18 | new | getSizeBytes = 1, requiresDealloc |
|
||||
| allocators.cpp:108:3:108:19 | new[] | getSizeExpr = n, getSizeMult = 1, requiresDealloc |
|
||||
| allocators.cpp:109:3:109:35 | new | getSizeBytes = 128, requiresDealloc |
|
||||
| allocators.cpp:110:3:110:37 | new[] | getSizeBytes = 1280, requiresDealloc |
|
||||
| allocators.cpp:129:3:129:21 | new | getSizeBytes = 4 |
|
||||
| allocators.cpp:132:3:132:17 | new[] | getSizeBytes = 4 |
|
||||
| allocators.cpp:135:3:135:26 | new | getSizeBytes = 4, requiresDealloc |
|
||||
| allocators.cpp:136:3:136:26 | new[] | getSizeBytes = 8, requiresDealloc |
|
||||
| allocators.cpp:142:13:142:27 | new[] | getSizeExpr = x, getSizeMult = 10, requiresDealloc |
|
||||
| allocators.cpp:143:13:143:28 | new[] | getSizeBytes = 400, requiresDealloc |
|
||||
| allocators.cpp:144:13:144:31 | new[] | getSizeExpr = x, getSizeMult = 900, requiresDealloc |
|
||||
| allocators.cpp:149:8:149:19 | call to operator new | getSizeBytes = 4, getSizeExpr = sizeof(int), getSizeMult = 1, requiresDealloc |
|
||||
deallocationFunctions
|
||||
| allocators.cpp:11:6:11:20 | operator delete | getFreedArg = 0 |
|
||||
| allocators.cpp:12:6:12:22 | operator delete[] | getFreedArg = 0 |
|
||||
| allocators.cpp:13:6:13:20 | operator delete | getFreedArg = 0 |
|
||||
| allocators.cpp:14:6:14:22 | operator delete[] | getFreedArg = 0 |
|
||||
| file://:0:0:0:0 | operator delete | getFreedArg = 0 |
|
||||
| file://:0:0:0:0 | operator delete | getFreedArg = 0 |
|
||||
| file://:0:0:0:0 | operator delete | getFreedArg = 0 |
|
||||
| file://:0:0:0:0 | operator delete[] | getFreedArg = 0 |
|
||||
| file://:0:0:0:0 | operator delete[] | getFreedArg = 0 |
|
||||
deallocationExprs
|
||||
| allocators.cpp:59:3:59:35 | delete | getFreedExpr = 0 |
|
||||
| allocators.cpp:60:3:60:38 | delete | getFreedExpr = 0 |
|
||||
| allocators.cpp:61:3:61:44 | delete | getFreedExpr = 0 |
|
||||
| allocators.cpp:62:3:62:43 | delete | getFreedExpr = 0 |
|
||||
| allocators.cpp:63:3:63:47 | delete | getFreedExpr = 0 |
|
||||
| allocators.cpp:64:3:64:44 | delete | getFreedExpr = 0 |
|
||||
| allocators.cpp:78:3:78:37 | delete[] | getFreedExpr = 0 |
|
||||
| allocators.cpp:79:3:79:40 | delete[] | getFreedExpr = 0 |
|
||||
| allocators.cpp:80:3:80:46 | delete[] | getFreedExpr = 0 |
|
||||
| allocators.cpp:81:3:81:45 | delete[] | getFreedExpr = 0 |
|
||||
| allocators.cpp:82:3:82:49 | delete[] | getFreedExpr = 0 |
|
||||
| allocators.cpp:83:3:83:23 | delete[] | getFreedExpr = call to GetPointer |
|
||||
| allocators.cpp:150:2:150:16 | call to operator delete | getFreedExpr = ptr |
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import default
|
||||
import semmle.code.cpp.models.implementations.Allocation
|
||||
|
||||
query predicate newExprs(NewExpr expr, string type, string sig, int size, int alignment, string form) {
|
||||
query predicate newExprs(
|
||||
NewExpr expr, string type, string sig, int size, int alignment, string form, string placement
|
||||
) {
|
||||
exists(Function allocator, Type allocatedType |
|
||||
expr.getAllocator() = allocator and
|
||||
sig = allocator.getFullSignature() and
|
||||
@@ -8,13 +11,16 @@ query predicate newExprs(NewExpr expr, string type, string sig, int size, int al
|
||||
type = allocatedType.toString() and
|
||||
size = allocatedType.getSize() and
|
||||
alignment = allocatedType.getAlignment() and
|
||||
if expr.hasAlignedAllocation() then form = "aligned" else form = ""
|
||||
(if expr.hasAlignedAllocation() then form = "aligned" else form = "") and
|
||||
if exists(expr.getPlacementPointer())
|
||||
then placement = expr.getPlacementPointer().toString()
|
||||
else placement = ""
|
||||
)
|
||||
}
|
||||
|
||||
query predicate newArrayExprs(
|
||||
NewArrayExpr expr, string t1, string t2, string sig, int size, int alignment, string form,
|
||||
string extents
|
||||
string extents, string placement
|
||||
) {
|
||||
exists(Function allocator, Type arrayType, Type elementType |
|
||||
expr.getAllocator() = allocator and
|
||||
@@ -26,7 +32,10 @@ query predicate newArrayExprs(
|
||||
size = elementType.getSize() and
|
||||
alignment = elementType.getAlignment() and
|
||||
(if expr.hasAlignedAllocation() then form = "aligned" else form = "") and
|
||||
extents = concat(Expr e | e = expr.getExtent() | e.toString(), ", ")
|
||||
extents = concat(Expr e | e = expr.getExtent() | e.toString(), ", ") and
|
||||
if exists(expr.getPlacementPointer())
|
||||
then placement = expr.getPlacementPointer().toString()
|
||||
else placement = ""
|
||||
)
|
||||
}
|
||||
|
||||
@@ -101,3 +110,54 @@ query predicate deleteArrayExprs(
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
string describeAllocationFunction(AllocationFunction f) {
|
||||
result = "getSizeArg = " + f.getSizeArg().toString()
|
||||
or
|
||||
result = "getSizeMult = " + f.getSizeMult().toString()
|
||||
or
|
||||
result = "getReallocPtrArg = " + f.getReallocPtrArg().toString()
|
||||
or
|
||||
f.requiresDealloc() and
|
||||
result = "requiresDealloc"
|
||||
or
|
||||
result =
|
||||
"getPlacementArgument = " + f.(OperatorNewAllocationFunction).getPlacementArgument().toString()
|
||||
}
|
||||
|
||||
query predicate allocationFunctions(AllocationFunction f, string descr) {
|
||||
descr = concat(describeAllocationFunction(f), ", ")
|
||||
}
|
||||
|
||||
string describeAllocationExpr(AllocationExpr e) {
|
||||
result = "getSizeExpr = " + e.getSizeExpr().toString()
|
||||
or
|
||||
result = "getSizeMult = " + e.getSizeMult().toString()
|
||||
or
|
||||
result = "getSizeBytes = " + e.getSizeBytes().toString()
|
||||
or
|
||||
result = "getReallocPtr = " + e.getReallocPtr().toString()
|
||||
or
|
||||
e.requiresDealloc() and
|
||||
result = "requiresDealloc"
|
||||
}
|
||||
|
||||
query predicate allocationExprs(AllocationExpr e, string descr) {
|
||||
descr = concat(describeAllocationExpr(e), ", ")
|
||||
}
|
||||
|
||||
string describeDeallocationFunction(DeallocationFunction f) {
|
||||
result = "getFreedArg = " + f.getFreedArg().toString()
|
||||
}
|
||||
|
||||
query predicate deallocationFunctions(DeallocationFunction f, string descr) {
|
||||
descr = concat(describeDeallocationFunction(f), ", ")
|
||||
}
|
||||
|
||||
string describeDeallocationExpr(DeallocationExpr e) {
|
||||
result = "getFreedExpr = " + e.getFreedExpr().toString()
|
||||
}
|
||||
|
||||
query predicate deallocationExprs(DeallocationExpr e, string descr) {
|
||||
descr = concat(describeDeallocationExpr(e), ", ")
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
| allocators.cpp:129:3:129:21 | new | allocators.cpp:129:7:129:13 | & ... |
|
||||
| allocators.cpp:132:3:132:17 | new[] | allocators.cpp:132:7:132:9 | buf |
|
||||
@@ -1,4 +0,0 @@
|
||||
import cpp
|
||||
|
||||
from NewOrNewArrayExpr new
|
||||
select new, new.getPlacementPointer() as placement
|
||||
@@ -86,4 +86,14 @@ namespace std {
|
||||
|
||||
void test_std_move() {
|
||||
sink(std::move(getenv("VAR")));
|
||||
}
|
||||
|
||||
void flow_to_outparam(char ** ret, char *arg) {
|
||||
*ret = arg;
|
||||
}
|
||||
|
||||
void test_outparams() {
|
||||
char *p2 = nullptr;
|
||||
flow_to_outparam(&p2, getenv("VAR"));
|
||||
sink(p2); // tainted
|
||||
}
|
||||
@@ -101,6 +101,14 @@
|
||||
| defaulttainttracking.cpp:88:18:88:23 | call to getenv | defaulttainttracking.cpp:88:18:88:23 | call to getenv |
|
||||
| defaulttainttracking.cpp:88:18:88:23 | call to getenv | defaulttainttracking.cpp:88:18:88:30 | (reference to) |
|
||||
| defaulttainttracking.cpp:88:18:88:23 | call to getenv | test_diff.cpp:1:11:1:20 | p#0 |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:9:11:9:20 | p#0 |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:91:42:91:44 | arg |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:92:12:92:14 | arg |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:96:11:96:12 | p2 |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:97:27:97:32 | call to getenv |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:98:10:98:11 | (const char *)... |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:98:10:98:11 | p2 |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | test_diff.cpp:1:11:1:20 | p#0 |
|
||||
| globals.cpp:5:20:5:25 | call to getenv | globals.cpp:2:17:2:25 | sinkParam |
|
||||
| globals.cpp:5:20:5:25 | call to getenv | globals.cpp:5:12:5:16 | local |
|
||||
| globals.cpp:5:20:5:25 | call to getenv | globals.cpp:5:20:5:25 | call to getenv |
|
||||
|
||||
@@ -15,6 +15,14 @@
|
||||
| defaulttainttracking.cpp:88:18:88:23 | call to getenv | defaulttainttracking.cpp:88:8:88:32 | (reference dereference) | IR only |
|
||||
| defaulttainttracking.cpp:88:18:88:23 | call to getenv | defaulttainttracking.cpp:88:18:88:30 | (reference to) | IR only |
|
||||
| defaulttainttracking.cpp:88:18:88:23 | call to getenv | test_diff.cpp:1:11:1:20 | p#0 | IR only |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:9:11:9:20 | p#0 | IR only |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:91:31:91:33 | ret | AST only |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:92:5:92:8 | * ... | AST only |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:92:6:92:8 | ret | AST only |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:96:11:96:12 | p2 | IR only |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:98:10:98:11 | (const char *)... | IR only |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | defaulttainttracking.cpp:98:10:98:11 | p2 | IR only |
|
||||
| defaulttainttracking.cpp:97:27:97:32 | call to getenv | test_diff.cpp:1:11:1:20 | p#0 | IR only |
|
||||
| globals.cpp:13:15:13:20 | call to getenv | globals.cpp:13:5:13:11 | global1 | AST only |
|
||||
| globals.cpp:23:15:23:20 | call to getenv | globals.cpp:23:5:23:11 | global2 | AST only |
|
||||
| test_diff.cpp:104:12:104:15 | argv | test_diff.cpp:104:11:104:20 | (...) | IR only |
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
uniqueEnclosingCallable
|
||||
uniqueTypeBound
|
||||
uniqueTypeRepr
|
||||
uniqueNodeLocation
|
||||
| dispatch.cpp:60:18:60:29 | call to Bottom | Node should have one location but has 2. |
|
||||
| dispatch.cpp:61:18:61:29 | call to Middle | Node should have one location but has 2. |
|
||||
| dispatch.cpp:65:10:65:21 | call to Bottom | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to Bottom | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to Bottom | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to Middle | Node should have one location but has 2. |
|
||||
missingLocation
|
||||
uniqueNodeToString
|
||||
missingToString
|
||||
parameterCallable
|
||||
localFlowIsLocal
|
||||
compatibleTypesReflexive
|
||||
unreachableNodeCCtx
|
||||
localCallNodes
|
||||
postIsNotPre
|
||||
postHasUniquePre
|
||||
uniquePostUpdate
|
||||
postIsInSameCallable
|
||||
reverseRead
|
||||
storeIsPostUpdate
|
||||
argHasPostUpdate
|
||||
| dispatch.cpp:78:23:78:39 | * ... | ArgumentNode is missing PostUpdateNode. |
|
||||
| lambdas.cpp:18:7:18:7 | a | ArgumentNode is missing PostUpdateNode. |
|
||||
| lambdas.cpp:25:2:25:2 | b | ArgumentNode is missing PostUpdateNode. |
|
||||
| lambdas.cpp:32:2:32:2 | c | ArgumentNode is missing PostUpdateNode. |
|
||||
| lambdas.cpp:38:2:38:2 | d | ArgumentNode is missing PostUpdateNode. |
|
||||
| lambdas.cpp:45:2:45:2 | e | ArgumentNode is missing PostUpdateNode. |
|
||||
@@ -0,0 +1 @@
|
||||
import semmle.code.cpp.dataflow.internal.DataFlowImplConsistency::Consistency
|
||||
@@ -0,0 +1,36 @@
|
||||
uniqueEnclosingCallable
|
||||
uniqueTypeBound
|
||||
uniqueTypeRepr
|
||||
uniqueNodeLocation
|
||||
| BarrierGuard.cpp:2:11:2:13 | p#0 | Node should have one location but has 6. |
|
||||
| acrossLinkTargets.cpp:2:11:2:13 | p#0 | Node should have one location but has 6. |
|
||||
| clang.cpp:4:11:4:13 | p#0 | Node should have one location but has 6. |
|
||||
| clang.cpp:4:27:4:35 | p#0 | Node should have one location but has 2. |
|
||||
| clang.cpp:4:51:4:53 | p#0 | Node should have one location but has 2. |
|
||||
| dispatch.cpp:2:11:2:13 | p#0 | Node should have one location but has 6. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| globals.cpp:2:11:2:13 | p#0 | Node should have one location but has 6. |
|
||||
| test.cpp:2:11:2:13 | p#0 | Node should have one location but has 6. |
|
||||
| test.cpp:2:27:2:35 | p#0 | Node should have one location but has 2. |
|
||||
| test.cpp:2:51:2:53 | p#0 | Node should have one location but has 2. |
|
||||
missingLocation
|
||||
| Nodes without location: 4 |
|
||||
uniqueNodeToString
|
||||
| lambdas.cpp:2:6:2:9 | (no string representation) | Node should have one toString but has 0. |
|
||||
missingToString
|
||||
| Nodes without toString: 1 |
|
||||
parameterCallable
|
||||
localFlowIsLocal
|
||||
compatibleTypesReflexive
|
||||
unreachableNodeCCtx
|
||||
localCallNodes
|
||||
postIsNotPre
|
||||
postHasUniquePre
|
||||
uniquePostUpdate
|
||||
postIsInSameCallable
|
||||
reverseRead
|
||||
storeIsPostUpdate
|
||||
argHasPostUpdate
|
||||
@@ -0,0 +1 @@
|
||||
import semmle.code.cpp.ir.dataflow.internal.DataFlowImplConsistency::Consistency
|
||||
@@ -460,3 +460,13 @@ void throughStmtExpr(int source1, int clean1) {
|
||||
});
|
||||
sink(local); // tainted
|
||||
}
|
||||
|
||||
void intOutparamSource(int *p) {
|
||||
*p = source();
|
||||
}
|
||||
|
||||
void viaOutparam() {
|
||||
int x = 0;
|
||||
intOutparamSource(&x);
|
||||
sink(x); // tainted [FALSE NEGATIVE]
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
uniqueEnclosingCallable
|
||||
| C.cpp:37:24:37:33 | 0 | Node should have one enclosing callable but has 0. |
|
||||
| C.cpp:37:24:37:33 | new | Node should have one enclosing callable but has 0. |
|
||||
uniqueTypeBound
|
||||
| complex.cpp:22:11:22:17 | constructor init of field f [post-this] | Node should have one type bound but has 0. |
|
||||
| complex.cpp:22:11:22:17 | constructor init of field f [pre-this] | Node should have one type bound but has 0. |
|
||||
uniqueTypeRepr
|
||||
| complex.cpp:22:11:22:17 | constructor init of field f [post-this] | Node should have one type representation but has 0. |
|
||||
| complex.cpp:22:11:22:17 | constructor init of field f [pre-this] | Node should have one type representation but has 0. |
|
||||
uniqueNodeLocation
|
||||
| A.cpp:38:7:38:8 | call to C | Node should have one location but has 2. |
|
||||
| A.cpp:39:7:39:8 | call to C | Node should have one location but has 2. |
|
||||
| A.cpp:41:15:41:21 | call to C | Node should have one location but has 2. |
|
||||
| A.cpp:47:12:47:18 | call to C | Node should have one location but has 2. |
|
||||
| A.cpp:57:17:57:23 | call to C | Node should have one location but has 2. |
|
||||
| A.cpp:64:21:64:28 | call to C2 | Node should have one location but has 2. |
|
||||
| A.cpp:73:25:73:32 | call to C2 | Node should have one location but has 2. |
|
||||
| A.cpp:126:12:126:18 | call to C | Node should have one location but has 2. |
|
||||
| A.cpp:142:14:142:20 | call to C | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to C | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to C | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to C | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to C | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to C | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to C | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to C | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to C2 | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to C2 | Node should have one location but has 2. |
|
||||
missingLocation
|
||||
uniqueNodeToString
|
||||
missingToString
|
||||
parameterCallable
|
||||
localFlowIsLocal
|
||||
compatibleTypesReflexive
|
||||
unreachableNodeCCtx
|
||||
localCallNodes
|
||||
postIsNotPre
|
||||
postHasUniquePre
|
||||
uniquePostUpdate
|
||||
postIsInSameCallable
|
||||
reverseRead
|
||||
storeIsPostUpdate
|
||||
argHasPostUpdate
|
||||
| A.cpp:41:15:41:21 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| A.cpp:55:12:55:19 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| A.cpp:57:17:57:23 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| A.cpp:64:21:64:28 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| A.cpp:73:25:73:32 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| A.cpp:126:12:126:18 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| A.cpp:160:32:160:59 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| D.cpp:29:24:29:40 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| D.cpp:36:24:36:40 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| D.cpp:43:24:43:40 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| D.cpp:50:24:50:40 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| D.cpp:57:25:57:41 | new | ArgumentNode is missing PostUpdateNode. |
|
||||
| by_reference.cpp:51:8:51:8 | s | ArgumentNode is missing PostUpdateNode. |
|
||||
| by_reference.cpp:57:8:57:8 | s | ArgumentNode is missing PostUpdateNode. |
|
||||
| by_reference.cpp:63:8:63:8 | s | ArgumentNode is missing PostUpdateNode. |
|
||||
@@ -0,0 +1 @@
|
||||
import semmle.code.cpp.dataflow.internal.DataFlowImplConsistency::Consistency
|
||||
@@ -0,0 +1,26 @@
|
||||
uniqueEnclosingCallable
|
||||
uniqueTypeBound
|
||||
uniqueTypeRepr
|
||||
uniqueNodeLocation
|
||||
| D.cpp:1:17:1:17 | o | Node should have one location but has 2. |
|
||||
| by_reference.cpp:1:17:1:17 | o | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
missingLocation
|
||||
| Nodes without location: 4 |
|
||||
uniqueNodeToString
|
||||
missingToString
|
||||
parameterCallable
|
||||
localFlowIsLocal
|
||||
compatibleTypesReflexive
|
||||
unreachableNodeCCtx
|
||||
localCallNodes
|
||||
postIsNotPre
|
||||
postHasUniquePre
|
||||
uniquePostUpdate
|
||||
postIsInSameCallable
|
||||
reverseRead
|
||||
storeIsPostUpdate
|
||||
argHasPostUpdate
|
||||
@@ -0,0 +1 @@
|
||||
import semmle.code.cpp.ir.dataflow.internal.DataFlowImplConsistency::Consistency
|
||||
@@ -73,3 +73,18 @@
|
||||
| test.cpp:100:17:100:22 | buffer | test.cpp:93:18:93:18 | s | |
|
||||
| test.cpp:100:17:100:22 | buffer | test.cpp:97:7:97:12 | buffer | |
|
||||
| test.cpp:100:17:100:22 | buffer | test.cpp:100:17:100:22 | buffer | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:8:24:8:25 | s1 | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:11:20:11:21 | s1 | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:11:36:11:37 | s2 | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:106:17:106:24 | userName | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:106:28:106:33 | call to getenv | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:106:28:106:46 | (const char *)... | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:108:8:108:11 | copy | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:109:2:109:7 | call to strcpy | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:109:9:109:12 | copy | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:109:15:109:22 | userName | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:6:111:27 | ! ... | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:7:111:12 | call to strcmp | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:7:111:27 | (bool)... | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:14:111:17 | (const char *)... | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:14:111:17 | copy | |
|
||||
|
||||
@@ -14,3 +14,6 @@
|
||||
| test.cpp:100:12:100:15 | call to gets | test.cpp:100:2:100:8 | pointer | AST only |
|
||||
| test.cpp:100:17:100:22 | buffer | test.cpp:97:7:97:12 | buffer | AST only |
|
||||
| test.cpp:100:17:100:22 | buffer | test.cpp:100:17:100:22 | array to pointer conversion | IR only |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:11:20:11:21 | s1 | AST only |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:108:8:108:11 | copy | AST only |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:109:9:109:12 | copy | AST only |
|
||||
|
||||
@@ -57,3 +57,15 @@
|
||||
| test.cpp:100:17:100:22 | buffer | test.cpp:93:18:93:18 | s | |
|
||||
| test.cpp:100:17:100:22 | buffer | test.cpp:100:17:100:22 | array to pointer conversion | |
|
||||
| test.cpp:100:17:100:22 | buffer | test.cpp:100:17:100:22 | buffer | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:8:24:8:25 | s1 | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:11:36:11:37 | s2 | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:106:17:106:24 | userName | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:106:28:106:33 | call to getenv | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:106:28:106:46 | (const char *)... | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:109:2:109:7 | call to strcpy | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:109:15:109:22 | userName | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:6:111:27 | ! ... | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:7:111:12 | call to strcmp | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:7:111:27 | (bool)... | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:14:111:17 | (const char *)... | |
|
||||
| test.cpp:106:28:106:33 | call to getenv | test.cpp:111:14:111:17 | copy | |
|
||||
|
||||
@@ -99,3 +99,16 @@ void test_gets()
|
||||
|
||||
pointer = gets(buffer);
|
||||
}
|
||||
|
||||
const char *alias_global_new;
|
||||
|
||||
void newBuffer() {
|
||||
const char *userName = getenv("USER_NAME");
|
||||
char *alias = new char[4096];
|
||||
char *copy = new char[4096];
|
||||
strcpy(copy, userName);
|
||||
alias_global_new = alias; // to force a Chi node on all aliased memory
|
||||
if (!strcmp(copy, "admin")) { // copy should be tainted
|
||||
isAdmin = true;
|
||||
}
|
||||
}
|
||||
@@ -105,6 +105,63 @@
|
||||
| format.cpp:130:23:130:23 | 0 | format.cpp:130:21:130:24 | {...} | TAINT |
|
||||
| format.cpp:131:39:131:45 | ref arg & ... | format.cpp:132:8:132:13 | buffer | |
|
||||
| format.cpp:131:40:131:45 | buffer | format.cpp:131:39:131:45 | & ... | |
|
||||
| stl.cpp:67:12:67:17 | call to source | stl.cpp:71:7:71:7 | a | |
|
||||
| stl.cpp:68:16:68:20 | 123 | stl.cpp:68:16:68:21 | call to basic_string | TAINT |
|
||||
| stl.cpp:68:16:68:21 | call to basic_string | stl.cpp:72:7:72:7 | b | |
|
||||
| stl.cpp:68:16:68:21 | call to basic_string | stl.cpp:74:7:74:7 | b | |
|
||||
| stl.cpp:69:16:69:21 | call to source | stl.cpp:69:16:69:24 | call to basic_string | TAINT |
|
||||
| stl.cpp:69:16:69:24 | call to basic_string | stl.cpp:73:7:73:7 | c | |
|
||||
| stl.cpp:69:16:69:24 | call to basic_string | stl.cpp:75:7:75:7 | c | |
|
||||
| stl.cpp:74:7:74:7 | b | stl.cpp:74:9:74:13 | call to c_str | TAINT |
|
||||
| stl.cpp:75:7:75:7 | c | stl.cpp:75:9:75:13 | call to c_str | TAINT |
|
||||
| stl.cpp:80:20:80:22 | call to basic_stringstream | stl.cpp:83:2:83:4 | ss1 | |
|
||||
| stl.cpp:80:20:80:22 | call to basic_stringstream | stl.cpp:89:7:89:9 | ss1 | |
|
||||
| stl.cpp:80:20:80:22 | call to basic_stringstream | stl.cpp:94:7:94:9 | ss1 | |
|
||||
| stl.cpp:80:25:80:27 | call to basic_stringstream | stl.cpp:84:2:84:4 | ss2 | |
|
||||
| stl.cpp:80:25:80:27 | call to basic_stringstream | stl.cpp:90:7:90:9 | ss2 | |
|
||||
| stl.cpp:80:25:80:27 | call to basic_stringstream | stl.cpp:95:7:95:9 | ss2 | |
|
||||
| stl.cpp:80:30:80:32 | call to basic_stringstream | stl.cpp:85:2:85:4 | ss3 | |
|
||||
| stl.cpp:80:30:80:32 | call to basic_stringstream | stl.cpp:91:7:91:9 | ss3 | |
|
||||
| stl.cpp:80:30:80:32 | call to basic_stringstream | stl.cpp:96:7:96:9 | ss3 | |
|
||||
| stl.cpp:80:35:80:37 | call to basic_stringstream | stl.cpp:86:2:86:4 | ss4 | |
|
||||
| stl.cpp:80:35:80:37 | call to basic_stringstream | stl.cpp:92:7:92:9 | ss4 | |
|
||||
| stl.cpp:80:35:80:37 | call to basic_stringstream | stl.cpp:97:7:97:9 | ss4 | |
|
||||
| stl.cpp:80:40:80:42 | call to basic_stringstream | stl.cpp:87:2:87:4 | ss5 | |
|
||||
| stl.cpp:80:40:80:42 | call to basic_stringstream | stl.cpp:93:7:93:9 | ss5 | |
|
||||
| stl.cpp:80:40:80:42 | call to basic_stringstream | stl.cpp:98:7:98:9 | ss5 | |
|
||||
| stl.cpp:81:16:81:21 | call to source | stl.cpp:81:16:81:24 | call to basic_string | TAINT |
|
||||
| stl.cpp:81:16:81:24 | call to basic_string | stl.cpp:87:9:87:9 | t | |
|
||||
| stl.cpp:83:2:83:4 | ref arg ss1 | stl.cpp:89:7:89:9 | ss1 | |
|
||||
| stl.cpp:83:2:83:4 | ref arg ss1 | stl.cpp:94:7:94:9 | ss1 | |
|
||||
| stl.cpp:84:2:84:4 | ref arg ss2 | stl.cpp:90:7:90:9 | ss2 | |
|
||||
| stl.cpp:84:2:84:4 | ref arg ss2 | stl.cpp:95:7:95:9 | ss2 | |
|
||||
| stl.cpp:85:2:85:4 | ref arg ss3 | stl.cpp:91:7:91:9 | ss3 | |
|
||||
| stl.cpp:85:2:85:4 | ref arg ss3 | stl.cpp:96:7:96:9 | ss3 | |
|
||||
| stl.cpp:86:2:86:4 | ref arg ss4 | stl.cpp:92:7:92:9 | ss4 | |
|
||||
| stl.cpp:86:2:86:4 | ref arg ss4 | stl.cpp:97:7:97:9 | ss4 | |
|
||||
| stl.cpp:87:2:87:4 | ref arg ss5 | stl.cpp:93:7:93:9 | ss5 | |
|
||||
| stl.cpp:87:2:87:4 | ref arg ss5 | stl.cpp:98:7:98:9 | ss5 | |
|
||||
| stl.cpp:101:32:101:37 | source | stl.cpp:106:9:106:14 | source | |
|
||||
| stl.cpp:103:20:103:22 | call to basic_stringstream | stl.cpp:105:2:105:4 | ss1 | |
|
||||
| stl.cpp:103:20:103:22 | call to basic_stringstream | stl.cpp:108:7:108:9 | ss1 | |
|
||||
| stl.cpp:103:20:103:22 | call to basic_stringstream | stl.cpp:110:7:110:9 | ss1 | |
|
||||
| stl.cpp:103:25:103:27 | call to basic_stringstream | stl.cpp:106:2:106:4 | ss2 | |
|
||||
| stl.cpp:103:25:103:27 | call to basic_stringstream | stl.cpp:109:7:109:9 | ss2 | |
|
||||
| stl.cpp:103:25:103:27 | call to basic_stringstream | stl.cpp:111:7:111:9 | ss2 | |
|
||||
| stl.cpp:105:2:105:4 | ss1 [post update] | stl.cpp:108:7:108:9 | ss1 | |
|
||||
| stl.cpp:105:2:105:4 | ss1 [post update] | stl.cpp:110:7:110:9 | ss1 | |
|
||||
| stl.cpp:106:2:106:4 | ss2 [post update] | stl.cpp:109:7:109:9 | ss2 | |
|
||||
| stl.cpp:106:2:106:4 | ss2 [post update] | stl.cpp:111:7:111:9 | ss2 | |
|
||||
| stl.cpp:124:16:124:28 | call to basic_string | stl.cpp:125:7:125:11 | path1 | |
|
||||
| stl.cpp:124:17:124:26 | call to user_input | stl.cpp:124:16:124:28 | call to basic_string | TAINT |
|
||||
| stl.cpp:125:7:125:11 | path1 | stl.cpp:125:13:125:17 | call to c_str | TAINT |
|
||||
| stl.cpp:128:10:128:19 | call to user_input | stl.cpp:128:10:128:21 | call to basic_string | TAINT |
|
||||
| stl.cpp:128:10:128:21 | call to basic_string | stl.cpp:128:2:128:21 | ... = ... | |
|
||||
| stl.cpp:128:10:128:21 | call to basic_string | stl.cpp:129:7:129:11 | path2 | |
|
||||
| stl.cpp:129:7:129:11 | path2 | stl.cpp:129:13:129:17 | call to c_str | TAINT |
|
||||
| stl.cpp:131:15:131:24 | call to user_input | stl.cpp:131:15:131:27 | call to basic_string | TAINT |
|
||||
| stl.cpp:131:15:131:27 | call to basic_string | stl.cpp:132:7:132:11 | path3 | |
|
||||
| stl.cpp:132:7:132:11 | path3 | stl.cpp:132:13:132:17 | call to c_str | TAINT |
|
||||
| taint.cpp:4:27:4:33 | source1 | taint.cpp:6:13:6:19 | source1 | |
|
||||
| taint.cpp:4:40:4:45 | clean1 | taint.cpp:5:8:5:13 | clean1 | |
|
||||
| taint.cpp:4:40:4:45 | clean1 | taint.cpp:6:3:6:8 | clean1 | |
|
||||
@@ -512,3 +569,20 @@
|
||||
| taint.cpp:444:7:444:7 | d [post update] | taint.cpp:447:7:447:7 | d | |
|
||||
| taint.cpp:445:2:445:2 | d [post update] | taint.cpp:446:7:446:7 | d | |
|
||||
| taint.cpp:445:2:445:2 | d [post update] | taint.cpp:447:7:447:7 | d | |
|
||||
| taint.cpp:452:16:452:16 | a | taint.cpp:454:10:454:10 | a | |
|
||||
| taint.cpp:452:24:452:24 | b | taint.cpp:455:6:455:6 | b | |
|
||||
| taint.cpp:454:10:454:10 | a | taint.cpp:456:6:456:6 | c | |
|
||||
| taint.cpp:455:6:455:6 | b | taint.cpp:452:16:452:16 | a | |
|
||||
| taint.cpp:455:6:455:6 | b | taint.cpp:455:2:455:6 | ... = ... | |
|
||||
| taint.cpp:456:6:456:6 | c | taint.cpp:452:24:452:24 | b | |
|
||||
| taint.cpp:456:6:456:6 | c | taint.cpp:456:2:456:6 | ... = ... | |
|
||||
| taint.cpp:462:6:462:11 | call to source | taint.cpp:462:2:462:13 | ... = ... | |
|
||||
| taint.cpp:462:6:462:11 | call to source | taint.cpp:465:7:465:7 | x | |
|
||||
| taint.cpp:462:6:462:11 | call to source | taint.cpp:468:7:468:7 | x | |
|
||||
| taint.cpp:462:6:462:11 | call to source | taint.cpp:470:7:470:7 | x | |
|
||||
| taint.cpp:463:6:463:6 | 0 | taint.cpp:463:2:463:6 | ... = ... | |
|
||||
| taint.cpp:463:6:463:6 | 0 | taint.cpp:466:7:466:7 | y | |
|
||||
| taint.cpp:463:6:463:6 | 0 | taint.cpp:468:10:468:10 | y | |
|
||||
| taint.cpp:463:6:463:6 | 0 | taint.cpp:471:7:471:7 | y | |
|
||||
| taint.cpp:468:7:468:7 | ref arg x | taint.cpp:470:7:470:7 | x | |
|
||||
| taint.cpp:468:10:468:10 | ref arg y | taint.cpp:471:7:471:7 | y | |
|
||||
|
||||
133
cpp/ql/test/library-tests/dataflow/taint-tests/stl.cpp
Normal file
133
cpp/ql/test/library-tests/dataflow/taint-tests/stl.cpp
Normal file
@@ -0,0 +1,133 @@
|
||||
|
||||
typedef unsigned long size_t;
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<class charT> struct char_traits;
|
||||
|
||||
typedef size_t streamsize;
|
||||
|
||||
template <class T> class allocator {
|
||||
public:
|
||||
allocator() throw();
|
||||
};
|
||||
|
||||
template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
|
||||
class basic_string {
|
||||
public:
|
||||
explicit basic_string(const Allocator& a = Allocator());
|
||||
basic_string(const charT* s, const Allocator& a = Allocator());
|
||||
|
||||
const charT* c_str() const;
|
||||
};
|
||||
|
||||
typedef basic_string<char> string;
|
||||
|
||||
template <class charT, class traits = char_traits<charT> >
|
||||
class basic_istream /*: virtual public basic_ios<charT,traits> - not needed for this test */ {
|
||||
public:
|
||||
basic_istream<charT,traits>& operator>>(int& n);
|
||||
};
|
||||
|
||||
template <class charT, class traits = char_traits<charT> >
|
||||
class basic_ostream /*: virtual public basic_ios<charT,traits> - not needed for this test */ {
|
||||
public:
|
||||
typedef charT char_type;
|
||||
basic_ostream<charT,traits>& write(const char_type* s, streamsize n);
|
||||
|
||||
basic_ostream<charT, traits>& operator<<(int n);
|
||||
};
|
||||
|
||||
template<class charT, class traits> basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const charT*);
|
||||
template<class charT, class traits, class Allocator> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& os, const basic_string<charT, traits, Allocator>& str);
|
||||
|
||||
template<class charT, class traits = char_traits<charT>>
|
||||
class basic_iostream : public basic_istream<charT, traits>, public basic_ostream<charT, traits> {
|
||||
public:
|
||||
};
|
||||
|
||||
template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT>>
|
||||
class basic_stringstream : public basic_iostream<charT, traits> {
|
||||
public:
|
||||
explicit basic_stringstream(/*ios_base::openmode which = ios_base::out|ios_base::in - not needed for this test*/);
|
||||
|
||||
basic_string<charT, traits, Allocator> str() const;
|
||||
};
|
||||
|
||||
using stringstream = basic_stringstream<char>;
|
||||
}
|
||||
|
||||
char *source();
|
||||
void sink(const char *s) {};
|
||||
void sink(const std::string &s) {};
|
||||
void sink(const std::stringstream &s) {};
|
||||
|
||||
void test_string()
|
||||
{
|
||||
char *a = source();
|
||||
std::string b("123");
|
||||
std::string c(source());
|
||||
|
||||
sink(a); // tainted
|
||||
sink(b);
|
||||
sink(c); // tainted
|
||||
sink(b.c_str());
|
||||
sink(c.c_str()); // tainted
|
||||
}
|
||||
|
||||
void test_stringstream()
|
||||
{
|
||||
std::stringstream ss1, ss2, ss3, ss4, ss5;
|
||||
std::string t(source());
|
||||
|
||||
ss1 << "1234";
|
||||
ss2 << source();
|
||||
ss3 << "123" << source();
|
||||
ss4 << source() << "456";
|
||||
ss5 << t;
|
||||
|
||||
sink(ss1);
|
||||
sink(ss2); // tainted [NOT DETECTED]
|
||||
sink(ss3); // tainted [NOT DETECTED]
|
||||
sink(ss4); // tainted [NOT DETECTED]
|
||||
sink(ss5); // tainted [NOT DETECTED]
|
||||
sink(ss1.str());
|
||||
sink(ss2.str()); // tainted [NOT DETECTED]
|
||||
sink(ss3.str()); // tainted [NOT DETECTED]
|
||||
sink(ss4.str()); // tainted [NOT DETECTED]
|
||||
sink(ss5.str()); // tainted [NOT DETECTED]
|
||||
}
|
||||
|
||||
void test_stringstream_int(int source)
|
||||
{
|
||||
std::stringstream ss1, ss2;
|
||||
|
||||
ss1 << 1234;
|
||||
ss2 << source;
|
||||
|
||||
sink(ss1);
|
||||
sink(ss2); // tainted [NOT DETECTED]
|
||||
sink(ss1.str());
|
||||
sink(ss2.str()); // tainted [NOT DETECTED]
|
||||
}
|
||||
|
||||
using namespace std;
|
||||
|
||||
char *user_input() {
|
||||
return source();
|
||||
}
|
||||
|
||||
void sink(const char *filename, const char *mode);
|
||||
|
||||
void test_strings2()
|
||||
{
|
||||
string path1 = user_input();
|
||||
sink(path1.c_str(), "r"); // tainted
|
||||
|
||||
string path2;
|
||||
path2 = user_input();
|
||||
sink(path2.c_str(), "r"); // tainted
|
||||
|
||||
string path3(user_input());
|
||||
sink(path3.c_str(), "r"); // tainted
|
||||
}
|
||||
@@ -195,7 +195,7 @@ void test_memcpy(int *source) {
|
||||
sink(x);
|
||||
}
|
||||
|
||||
// --- swap ---
|
||||
// --- std::swap ---
|
||||
|
||||
namespace std {
|
||||
template<class T> constexpr void swap(T& a, T& b);
|
||||
@@ -446,3 +446,27 @@ void test_qualifiers()
|
||||
sink(d); // tainted
|
||||
sink(d.getString()); // tainted
|
||||
}
|
||||
|
||||
// --- non-standard swap ---
|
||||
|
||||
void swop(int &a, int &b)
|
||||
{
|
||||
int c = a;
|
||||
a = b;
|
||||
b = c;
|
||||
}
|
||||
|
||||
void test_swop() {
|
||||
int x, y;
|
||||
|
||||
x = source();
|
||||
y = 0;
|
||||
|
||||
sink(x); // tainted
|
||||
sink(y); // clean
|
||||
|
||||
swop(x, y);
|
||||
|
||||
sink(x); // clean [FALSE POSITIVE]
|
||||
sink(y); // tainted
|
||||
}
|
||||
|
||||
@@ -8,6 +8,12 @@
|
||||
| format.cpp:96:8:96:13 | buffer | format.cpp:95:30:95:43 | call to source |
|
||||
| format.cpp:101:8:101:13 | buffer | format.cpp:100:31:100:45 | call to source |
|
||||
| format.cpp:106:8:106:14 | wbuffer | format.cpp:105:38:105:52 | call to source |
|
||||
| stl.cpp:71:7:71:7 | a | stl.cpp:67:12:67:17 | call to source |
|
||||
| stl.cpp:73:7:73:7 | c | stl.cpp:69:16:69:21 | call to source |
|
||||
| stl.cpp:75:9:75:13 | call to c_str | stl.cpp:69:16:69:21 | call to source |
|
||||
| stl.cpp:125:13:125:17 | call to c_str | stl.cpp:117:10:117:15 | call to source |
|
||||
| stl.cpp:129:13:129:17 | call to c_str | stl.cpp:117:10:117:15 | call to source |
|
||||
| stl.cpp:132:13:132:17 | call to c_str | stl.cpp:117:10:117:15 | call to source |
|
||||
| taint.cpp:8:8:8:13 | clean1 | taint.cpp:4:27:4:33 | source1 |
|
||||
| taint.cpp:16:8:16:14 | source1 | taint.cpp:12:22:12:27 | call to source |
|
||||
| taint.cpp:17:8:17:16 | ++ ... | taint.cpp:12:22:12:27 | call to source |
|
||||
@@ -58,3 +64,6 @@
|
||||
| taint.cpp:439:10:439:18 | call to getMember | taint.cpp:437:15:437:20 | call to source |
|
||||
| taint.cpp:446:7:446:7 | d | taint.cpp:445:14:445:28 | call to source |
|
||||
| taint.cpp:447:9:447:17 | call to getString | taint.cpp:445:14:445:28 | call to source |
|
||||
| taint.cpp:465:7:465:7 | x | taint.cpp:462:6:462:11 | call to source |
|
||||
| taint.cpp:470:7:470:7 | x | taint.cpp:462:6:462:11 | call to source |
|
||||
| taint.cpp:471:7:471:7 | y | taint.cpp:462:6:462:11 | call to source |
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
| format.cpp:96:8:96:13 | format.cpp:95:30:95:43 | AST only |
|
||||
| format.cpp:101:8:101:13 | format.cpp:100:31:100:45 | AST only |
|
||||
| format.cpp:106:8:106:14 | format.cpp:105:38:105:52 | AST only |
|
||||
| stl.cpp:73:7:73:7 | stl.cpp:69:16:69:21 | AST only |
|
||||
| stl.cpp:75:9:75:13 | stl.cpp:69:16:69:21 | AST only |
|
||||
| stl.cpp:125:13:125:17 | stl.cpp:117:10:117:15 | AST only |
|
||||
| stl.cpp:129:13:129:17 | stl.cpp:117:10:117:15 | AST only |
|
||||
| stl.cpp:132:13:132:17 | stl.cpp:117:10:117:15 | AST only |
|
||||
| taint.cpp:41:7:41:13 | taint.cpp:35:12:35:17 | AST only |
|
||||
| taint.cpp:42:7:42:13 | taint.cpp:35:12:35:17 | AST only |
|
||||
| taint.cpp:43:7:43:13 | taint.cpp:37:22:37:27 | AST only |
|
||||
@@ -42,3 +47,4 @@
|
||||
| taint.cpp:439:10:439:18 | taint.cpp:437:15:437:20 | AST only |
|
||||
| taint.cpp:446:7:446:7 | taint.cpp:445:14:445:28 | AST only |
|
||||
| taint.cpp:447:9:447:17 | taint.cpp:445:14:445:28 | AST only |
|
||||
| taint.cpp:471:7:471:7 | taint.cpp:462:6:462:11 | AST only |
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
| stl.cpp:71:7:71:7 | (const char *)... | stl.cpp:67:12:67:17 | call to source |
|
||||
| stl.cpp:71:7:71:7 | a | stl.cpp:67:12:67:17 | call to source |
|
||||
| taint.cpp:8:8:8:13 | clean1 | taint.cpp:4:27:4:33 | source1 |
|
||||
| taint.cpp:16:8:16:14 | source1 | taint.cpp:12:22:12:27 | call to source |
|
||||
| taint.cpp:17:8:17:16 | ++ ... | taint.cpp:12:22:12:27 | call to source |
|
||||
@@ -20,3 +22,5 @@
|
||||
| taint.cpp:382:7:382:7 | a | taint.cpp:377:23:377:28 | source |
|
||||
| taint.cpp:429:7:429:7 | b | taint.cpp:428:13:428:18 | call to source |
|
||||
| taint.cpp:430:9:430:14 | member | taint.cpp:428:13:428:18 | call to source |
|
||||
| taint.cpp:465:7:465:7 | x | taint.cpp:462:6:462:11 | call to source |
|
||||
| taint.cpp:470:7:470:7 | x | taint.cpp:462:6:462:11 | call to source |
|
||||
|
||||
@@ -4104,6 +4104,27 @@ ir.cpp:
|
||||
#-----| Type = [RValueReferenceType] C &&
|
||||
# 628| [Destructor] void C::~C()
|
||||
# 628| params:
|
||||
#-----| body: [Block] { ... }
|
||||
#-----| 0: [ReturnStmt] return ...
|
||||
# 628| destructions:
|
||||
# 628| 0: [DestructorFieldDestruction] destructor field destruction of m_f
|
||||
# 628| Type = [Struct] String
|
||||
# 628| ValueCategory = prvalue
|
||||
# 628| 0: [DestructorCall] call to ~String
|
||||
# 628| Type = [VoidType] void
|
||||
# 628| ValueCategory = prvalue
|
||||
# 628| -1: [ImplicitThisFieldAccess] m_f
|
||||
# 628| Type = [Struct] String
|
||||
# 628| ValueCategory = lvalue
|
||||
# 628| 1: [DestructorFieldDestruction] destructor field destruction of m_b
|
||||
# 628| Type = [Struct] String
|
||||
# 628| ValueCategory = prvalue
|
||||
# 628| 0: [DestructorCall] call to ~String
|
||||
# 628| Type = [VoidType] void
|
||||
# 628| ValueCategory = prvalue
|
||||
# 628| -1: [ImplicitThisFieldAccess] m_b
|
||||
# 628| Type = [Struct] String
|
||||
# 628| ValueCategory = lvalue
|
||||
# 630| [MemberFunction] int C::StaticMemberFunction(int)
|
||||
# 630| params:
|
||||
# 630| 0: [Parameter] x
|
||||
@@ -8531,6 +8552,294 @@ ir.cpp:
|
||||
# 1243| Type = [PointerType] const char *
|
||||
# 1243| ValueCategory = prvalue(load)
|
||||
# 1244| 3: [ReturnStmt] return ...
|
||||
# 1248| [TopLevelFunction] char* strcpy(char*, char const*)
|
||||
# 1248| params:
|
||||
# 1248| 0: [Parameter] destination
|
||||
# 1248| Type = [CharPointerType] char *
|
||||
# 1248| 1: [Parameter] source
|
||||
# 1248| Type = [PointerType] const char *
|
||||
# 1249| [TopLevelFunction] char* strcat(char*, char const*)
|
||||
# 1249| params:
|
||||
# 1249| 0: [Parameter] destination
|
||||
# 1249| Type = [CharPointerType] char *
|
||||
# 1249| 1: [Parameter] source
|
||||
# 1249| Type = [PointerType] const char *
|
||||
# 1251| [TopLevelFunction] void test_strings(char*, char*)
|
||||
# 1251| params:
|
||||
# 1251| 0: [Parameter] s1
|
||||
# 1251| Type = [CharPointerType] char *
|
||||
# 1251| 1: [Parameter] s2
|
||||
# 1251| Type = [CharPointerType] char *
|
||||
# 1251| body: [Block] { ... }
|
||||
# 1252| 0: [DeclStmt] declaration
|
||||
# 1252| 0: [VariableDeclarationEntry] definition of buffer
|
||||
# 1252| Type = [ArrayType] char[1024]
|
||||
# 1252| init: [Initializer] initializer for buffer
|
||||
# 1252| expr: [ArrayAggregateLiteral] {...}
|
||||
# 1252| Type = [ArrayType] char[1024]
|
||||
# 1252| ValueCategory = prvalue
|
||||
# 1252| [0]: [CStyleCast] (char)...
|
||||
# 1252| Conversion = [IntegralConversion] integral conversion
|
||||
# 1252| Type = [PlainCharType] char
|
||||
# 1252| Value = [CStyleCast] 0
|
||||
# 1252| ValueCategory = prvalue
|
||||
# 1252| expr: [Literal] 0
|
||||
# 1252| Type = [IntType] int
|
||||
# 1252| Value = [Literal] 0
|
||||
# 1252| ValueCategory = prvalue
|
||||
# 1254| 1: [ExprStmt] ExprStmt
|
||||
# 1254| 0: [FunctionCall] call to strcpy
|
||||
# 1254| Type = [CharPointerType] char *
|
||||
# 1254| ValueCategory = prvalue
|
||||
# 1254| 0: [ArrayToPointerConversion] array to pointer conversion
|
||||
# 1254| Type = [CharPointerType] char *
|
||||
# 1254| ValueCategory = prvalue
|
||||
# 1254| expr: [VariableAccess] buffer
|
||||
# 1254| Type = [ArrayType] char[1024]
|
||||
# 1254| ValueCategory = lvalue
|
||||
# 1254| 1: [CStyleCast] (const char *)...
|
||||
# 1254| Conversion = [PointerConversion] pointer conversion
|
||||
# 1254| Type = [PointerType] const char *
|
||||
# 1254| ValueCategory = prvalue
|
||||
# 1254| expr: [VariableAccess] s1
|
||||
# 1254| Type = [CharPointerType] char *
|
||||
# 1254| ValueCategory = prvalue(load)
|
||||
# 1255| 2: [ExprStmt] ExprStmt
|
||||
# 1255| 0: [FunctionCall] call to strcat
|
||||
# 1255| Type = [CharPointerType] char *
|
||||
# 1255| ValueCategory = prvalue
|
||||
# 1255| 0: [ArrayToPointerConversion] array to pointer conversion
|
||||
# 1255| Type = [CharPointerType] char *
|
||||
# 1255| ValueCategory = prvalue
|
||||
# 1255| expr: [VariableAccess] buffer
|
||||
# 1255| Type = [ArrayType] char[1024]
|
||||
# 1255| ValueCategory = lvalue
|
||||
# 1255| 1: [CStyleCast] (const char *)...
|
||||
# 1255| Conversion = [PointerConversion] pointer conversion
|
||||
# 1255| Type = [PointerType] const char *
|
||||
# 1255| ValueCategory = prvalue
|
||||
# 1255| expr: [VariableAccess] s2
|
||||
# 1255| Type = [CharPointerType] char *
|
||||
# 1255| ValueCategory = prvalue(load)
|
||||
# 1256| 3: [ReturnStmt] return ...
|
||||
# 1258| [CopyAssignmentOperator] A& A::operator=(A const&)
|
||||
# 1258| params:
|
||||
#-----| 0: [Parameter] p#0
|
||||
#-----| Type = [LValueReferenceType] const A &
|
||||
# 1258| [MoveAssignmentOperator] A& A::operator=(A&&)
|
||||
# 1258| params:
|
||||
#-----| 0: [Parameter] p#0
|
||||
#-----| Type = [RValueReferenceType] A &&
|
||||
# 1261| [MemberFunction] void A::static_member(A*, int)
|
||||
# 1261| params:
|
||||
# 1261| 0: [Parameter] a
|
||||
# 1261| Type = [PointerType] A *
|
||||
# 1261| 1: [Parameter] x
|
||||
# 1261| Type = [IntType] int
|
||||
# 1261| body: [Block] { ... }
|
||||
# 1262| 0: [ExprStmt] ExprStmt
|
||||
# 1262| 0: [AssignExpr] ... = ...
|
||||
# 1262| Type = [IntType] int
|
||||
# 1262| ValueCategory = lvalue
|
||||
# 1262| 0: [PointerFieldAccess] member
|
||||
# 1262| Type = [IntType] int
|
||||
# 1262| ValueCategory = lvalue
|
||||
# 1262| -1: [VariableAccess] a
|
||||
# 1262| Type = [PointerType] A *
|
||||
# 1262| ValueCategory = prvalue(load)
|
||||
# 1262| 1: [VariableAccess] x
|
||||
# 1262| Type = [IntType] int
|
||||
# 1262| ValueCategory = prvalue(load)
|
||||
# 1263| 1: [ReturnStmt] return ...
|
||||
# 1265| [MemberFunction] void A::static_member_without_def()
|
||||
# 1265| params:
|
||||
# 1268| [TopLevelFunction] A* getAnInstanceOfA()
|
||||
# 1268| params:
|
||||
# 1270| [TopLevelFunction] void test_static_member_functions(int, A*)
|
||||
# 1270| params:
|
||||
# 1270| 0: [Parameter] int_arg
|
||||
# 1270| Type = [IntType] int
|
||||
# 1270| 1: [Parameter] a_arg
|
||||
# 1270| Type = [PointerType] A *
|
||||
# 1270| body: [Block] { ... }
|
||||
# 1271| 0: [DeclStmt] declaration
|
||||
# 1271| 0: [VariableDeclarationEntry] definition of c
|
||||
# 1271| Type = [Class] C
|
||||
# 1271| init: [Initializer] initializer for c
|
||||
# 1271| expr: [ConstructorCall] call to C
|
||||
# 1271| Type = [VoidType] void
|
||||
# 1271| ValueCategory = prvalue
|
||||
# 1272| 1: [ExprStmt] ExprStmt
|
||||
# 1272| 0: [FunctionCall] call to StaticMemberFunction
|
||||
# 1272| Type = [IntType] int
|
||||
# 1272| ValueCategory = prvalue
|
||||
# 1272| -1: [VariableAccess] c
|
||||
# 1272| Type = [Class] C
|
||||
# 1272| ValueCategory = lvalue
|
||||
# 1272| 0: [Literal] 10
|
||||
# 1272| Type = [IntType] int
|
||||
# 1272| Value = [Literal] 10
|
||||
# 1272| ValueCategory = prvalue
|
||||
# 1273| 2: [ExprStmt] ExprStmt
|
||||
# 1273| 0: [FunctionCall] call to StaticMemberFunction
|
||||
# 1273| Type = [IntType] int
|
||||
# 1273| ValueCategory = prvalue
|
||||
# 1273| 0: [Literal] 10
|
||||
# 1273| Type = [IntType] int
|
||||
# 1273| Value = [Literal] 10
|
||||
# 1273| ValueCategory = prvalue
|
||||
# 1275| 3: [DeclStmt] declaration
|
||||
# 1275| 0: [VariableDeclarationEntry] definition of a
|
||||
# 1275| Type = [Struct] A
|
||||
# 1276| 4: [ExprStmt] ExprStmt
|
||||
# 1276| 0: [FunctionCall] call to static_member
|
||||
# 1276| Type = [VoidType] void
|
||||
# 1276| ValueCategory = prvalue
|
||||
# 1276| -1: [VariableAccess] a
|
||||
# 1276| Type = [Struct] A
|
||||
# 1276| ValueCategory = lvalue
|
||||
# 1276| 0: [AddressOfExpr] & ...
|
||||
# 1276| Type = [PointerType] A *
|
||||
# 1276| ValueCategory = prvalue
|
||||
# 1276| 0: [VariableAccess] a
|
||||
# 1276| Type = [Struct] A
|
||||
# 1276| ValueCategory = lvalue
|
||||
# 1276| 1: [VariableAccess] int_arg
|
||||
# 1276| Type = [IntType] int
|
||||
# 1276| ValueCategory = prvalue(load)
|
||||
# 1277| 5: [ExprStmt] ExprStmt
|
||||
# 1277| 0: [FunctionCall] call to static_member
|
||||
# 1277| Type = [VoidType] void
|
||||
# 1277| ValueCategory = prvalue
|
||||
# 1277| 0: [AddressOfExpr] & ...
|
||||
# 1277| Type = [PointerType] A *
|
||||
# 1277| ValueCategory = prvalue
|
||||
# 1277| 0: [VariableAccess] a
|
||||
# 1277| Type = [Struct] A
|
||||
# 1277| ValueCategory = lvalue
|
||||
# 1277| 1: [VariableAccess] int_arg
|
||||
# 1277| Type = [IntType] int
|
||||
# 1277| ValueCategory = prvalue(load)
|
||||
# 1279| 6: [ExprStmt] ExprStmt
|
||||
# 1279| 0: [FunctionCall] call to static_member
|
||||
# 1279| Type = [VoidType] void
|
||||
# 1279| ValueCategory = prvalue
|
||||
# 1279| -1: [ParenthesisExpr] (...)
|
||||
# 1279| Type = [PointerType] A *
|
||||
# 1279| ValueCategory = prvalue
|
||||
# 1279| expr: [AddressOfExpr] & ...
|
||||
# 1279| Type = [PointerType] A *
|
||||
# 1279| ValueCategory = prvalue
|
||||
# 1279| 0: [VariableAccess] a
|
||||
# 1279| Type = [Struct] A
|
||||
# 1279| ValueCategory = lvalue
|
||||
# 1279| 0: [VariableAccess] a_arg
|
||||
# 1279| Type = [PointerType] A *
|
||||
# 1279| ValueCategory = prvalue(load)
|
||||
# 1279| 1: [AddExpr] ... + ...
|
||||
# 1279| Type = [IntType] int
|
||||
# 1279| ValueCategory = prvalue
|
||||
# 1279| 0: [VariableAccess] int_arg
|
||||
# 1279| Type = [IntType] int
|
||||
# 1279| ValueCategory = prvalue(load)
|
||||
# 1279| 1: [Literal] 2
|
||||
# 1279| Type = [IntType] int
|
||||
# 1279| Value = [Literal] 2
|
||||
# 1279| ValueCategory = prvalue
|
||||
# 1280| 7: [ExprStmt] ExprStmt
|
||||
# 1280| 0: [FunctionCall] call to static_member
|
||||
# 1280| Type = [VoidType] void
|
||||
# 1280| ValueCategory = prvalue
|
||||
# 1280| -1: [ParenthesisExpr] (...)
|
||||
# 1280| Type = [Struct] A
|
||||
# 1280| ValueCategory = lvalue
|
||||
# 1280| expr: [PointerDereferenceExpr] * ...
|
||||
# 1280| Type = [Struct] A
|
||||
# 1280| ValueCategory = lvalue
|
||||
# 1280| 0: [VariableAccess] a_arg
|
||||
# 1280| Type = [PointerType] A *
|
||||
# 1280| ValueCategory = prvalue(load)
|
||||
# 1280| 0: [AddressOfExpr] & ...
|
||||
# 1280| Type = [PointerType] A *
|
||||
# 1280| ValueCategory = prvalue
|
||||
# 1280| 0: [VariableAccess] a
|
||||
# 1280| Type = [Struct] A
|
||||
# 1280| ValueCategory = lvalue
|
||||
# 1280| 1: [Literal] 99
|
||||
# 1280| Type = [IntType] int
|
||||
# 1280| Value = [Literal] 99
|
||||
# 1280| ValueCategory = prvalue
|
||||
# 1281| 8: [ExprStmt] ExprStmt
|
||||
# 1281| 0: [FunctionCall] call to static_member
|
||||
# 1281| Type = [VoidType] void
|
||||
# 1281| ValueCategory = prvalue
|
||||
# 1281| -1: [VariableAccess] a_arg
|
||||
# 1281| Type = [PointerType] A *
|
||||
# 1281| ValueCategory = prvalue(load)
|
||||
# 1281| 0: [VariableAccess] a_arg
|
||||
# 1281| Type = [PointerType] A *
|
||||
# 1281| ValueCategory = prvalue(load)
|
||||
# 1281| 1: [UnaryMinusExpr] - ...
|
||||
# 1281| Type = [IntType] int
|
||||
# 1281| Value = [UnaryMinusExpr] -1
|
||||
# 1281| ValueCategory = prvalue
|
||||
# 1281| 0: [Literal] 1
|
||||
# 1281| Type = [IntType] int
|
||||
# 1281| Value = [Literal] 1
|
||||
# 1281| ValueCategory = prvalue
|
||||
# 1283| 9: [ExprStmt] ExprStmt
|
||||
# 1283| 0: [FunctionCall] call to static_member_without_def
|
||||
# 1283| Type = [VoidType] void
|
||||
# 1283| ValueCategory = prvalue
|
||||
# 1283| -1: [VariableAccess] a
|
||||
# 1283| Type = [Struct] A
|
||||
# 1283| ValueCategory = lvalue
|
||||
# 1284| 10: [ExprStmt] ExprStmt
|
||||
# 1284| 0: [FunctionCall] call to static_member_without_def
|
||||
# 1284| Type = [VoidType] void
|
||||
# 1284| ValueCategory = prvalue
|
||||
# 1286| 11: [ExprStmt] ExprStmt
|
||||
# 1286| 0: [FunctionCall] call to static_member_without_def
|
||||
# 1286| Type = [VoidType] void
|
||||
# 1286| ValueCategory = prvalue
|
||||
# 1286| -1: [FunctionCall] call to getAnInstanceOfA
|
||||
# 1286| Type = [PointerType] A *
|
||||
# 1286| ValueCategory = prvalue
|
||||
# 1287| 12: [ReturnStmt] return ...
|
||||
# 1289| [TopLevelFunction] int missingReturnValue(bool, int)
|
||||
# 1289| params:
|
||||
# 1289| 0: [Parameter] b
|
||||
# 1289| Type = [BoolType] bool
|
||||
# 1289| 1: [Parameter] x
|
||||
# 1289| Type = [IntType] int
|
||||
# 1289| body: [Block] { ... }
|
||||
# 1290| 0: [IfStmt] if (...) ...
|
||||
# 1290| 0: [VariableAccess] b
|
||||
# 1290| Type = [BoolType] bool
|
||||
# 1290| ValueCategory = prvalue(load)
|
||||
# 1290| 1: [Block] { ... }
|
||||
# 1291| 0: [ReturnStmt] return ...
|
||||
# 1291| 0: [VariableAccess] x
|
||||
# 1291| Type = [IntType] int
|
||||
# 1291| ValueCategory = prvalue(load)
|
||||
# 1293| 1: [ReturnStmt] return ...
|
||||
# 1295| [TopLevelFunction] void returnVoid(int, int)
|
||||
# 1295| params:
|
||||
# 1295| 0: [Parameter] x
|
||||
# 1295| Type = [IntType] int
|
||||
# 1295| 1: [Parameter] y
|
||||
# 1295| Type = [IntType] int
|
||||
# 1295| body: [Block] { ... }
|
||||
# 1296| 0: [ReturnStmt] return ...
|
||||
# 1296| 0: [FunctionCall] call to IntegerOps
|
||||
# 1296| Type = [VoidType] void
|
||||
# 1296| ValueCategory = prvalue
|
||||
# 1296| 0: [VariableAccess] x
|
||||
# 1296| Type = [IntType] int
|
||||
# 1296| ValueCategory = prvalue(load)
|
||||
# 1296| 1: [VariableAccess] y
|
||||
# 1296| Type = [IntType] int
|
||||
# 1296| ValueCategory = prvalue(load)
|
||||
perf-regression.cpp:
|
||||
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
|
||||
# 4| params:
|
||||
|
||||
@@ -13,6 +13,7 @@ instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -13,6 +13,7 @@ instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -1243,4 +1243,57 @@ void staticLocalWithConstructor(const char* dynamic) {
|
||||
static String c(dynamic);
|
||||
}
|
||||
|
||||
// --- strings ---
|
||||
|
||||
char *strcpy(char *destination, const char *source);
|
||||
char *strcat(char *destination, const char *source);
|
||||
|
||||
void test_strings(char *s1, char *s2) {
|
||||
char buffer[1024] = {0};
|
||||
|
||||
strcpy(buffer, s1);
|
||||
strcat(buffer, s2);
|
||||
}
|
||||
|
||||
struct A {
|
||||
int member;
|
||||
|
||||
static void static_member(A* a, int x) {
|
||||
a->member = x;
|
||||
}
|
||||
|
||||
static void static_member_without_def();
|
||||
};
|
||||
|
||||
A* getAnInstanceOfA();
|
||||
|
||||
void test_static_member_functions(int int_arg, A* a_arg) {
|
||||
C c;
|
||||
c.StaticMemberFunction(10);
|
||||
C::StaticMemberFunction(10);
|
||||
|
||||
A a;
|
||||
a.static_member(&a, int_arg);
|
||||
A::static_member(&a, int_arg);
|
||||
|
||||
(&a)->static_member(a_arg, int_arg + 2);
|
||||
(*a_arg).static_member(&a, 99);
|
||||
a_arg->static_member(a_arg, -1);
|
||||
|
||||
a.static_member_without_def();
|
||||
A::static_member_without_def();
|
||||
|
||||
getAnInstanceOfA()->static_member_without_def();
|
||||
}
|
||||
|
||||
int missingReturnValue(bool b, int x) {
|
||||
if (b) {
|
||||
return x;
|
||||
}
|
||||
}
|
||||
|
||||
void returnVoid(int x, int y) {
|
||||
return IntegerOps(x, y);
|
||||
}
|
||||
|
||||
// semmle-extractor-options: -std=c++17 --clang
|
||||
|
||||
@@ -69,7 +69,7 @@ bad_asts.cpp:
|
||||
# 26| mu26_4(unknown) = UnmodeledDefinition :
|
||||
# 26| r26_5(glval<Point &>) = VariableAddress[a] :
|
||||
# 26| mu26_6(Point &) = InitializeParameter[a] : &:r26_5
|
||||
# 26| r26_7(Point &) = Load : &:r26_5, ~mu26_6
|
||||
# 26| r26_7(Point &) = Load : &:r26_5, ~mu26_4
|
||||
# 26| mu26_8(unknown) = InitializeIndirection[a] : &:r26_7
|
||||
# 27| r27_1(glval<Point>) = VariableAddress[b] :
|
||||
# 27| r27_2(glval<Point &>) = VariableAddress[a] :
|
||||
@@ -79,7 +79,7 @@ bad_asts.cpp:
|
||||
# 27| r27_6(Point) = Load : &:r27_5, ~mu26_4
|
||||
# 27| mu27_7(Point) = Store : &:r27_1, r27_6
|
||||
# 28| v28_1(void) = NoOp :
|
||||
# 26| v26_9(void) = ReturnIndirection : &:r26_7, ~mu26_4
|
||||
# 26| v26_9(void) = ReturnIndirection[a] : &:r26_7, ~mu26_4
|
||||
# 26| v26_10(void) = ReturnVoid :
|
||||
# 26| v26_11(void) = UnmodeledUse : mu*
|
||||
# 26| v26_12(void) = AliasedUse : ~mu26_4
|
||||
@@ -802,7 +802,7 @@ ir.cpp:
|
||||
# 153| mu153_4(unknown) = UnmodeledDefinition :
|
||||
# 153| r153_5(glval<int *>) = VariableAddress[p] :
|
||||
# 153| mu153_6(int *) = InitializeParameter[p] : &:r153_5
|
||||
# 153| r153_7(int *) = Load : &:r153_5, ~mu153_6
|
||||
# 153| r153_7(int *) = Load : &:r153_5, ~mu153_4
|
||||
# 153| mu153_8(unknown) = InitializeIndirection[p] : &:r153_7
|
||||
# 153| r153_9(glval<int>) = VariableAddress[i] :
|
||||
# 153| mu153_10(int) = InitializeParameter[i] : &:r153_9
|
||||
@@ -869,7 +869,7 @@ ir.cpp:
|
||||
# 168| r168_6(glval<bool>) = VariableAddress[b] :
|
||||
# 168| mu168_7(bool) = Store : &:r168_6, r168_5
|
||||
# 169| v169_1(void) = NoOp :
|
||||
# 153| v153_11(void) = ReturnIndirection : &:r153_7, ~mu153_4
|
||||
# 153| v153_11(void) = ReturnIndirection[p] : &:r153_7, ~mu153_4
|
||||
# 153| v153_12(void) = ReturnVoid :
|
||||
# 153| v153_13(void) = UnmodeledUse : mu*
|
||||
# 153| v153_14(void) = AliasedUse : ~mu153_4
|
||||
@@ -883,7 +883,7 @@ ir.cpp:
|
||||
# 171| mu171_4(unknown) = UnmodeledDefinition :
|
||||
# 171| r171_5(glval<int *>) = VariableAddress[p] :
|
||||
# 171| mu171_6(int *) = InitializeParameter[p] : &:r171_5
|
||||
# 171| r171_7(int *) = Load : &:r171_5, ~mu171_6
|
||||
# 171| r171_7(int *) = Load : &:r171_5, ~mu171_4
|
||||
# 171| mu171_8(unknown) = InitializeIndirection[p] : &:r171_7
|
||||
# 171| r171_9(glval<int>) = VariableAddress[i] :
|
||||
# 171| mu171_10(int) = InitializeParameter[i] : &:r171_9
|
||||
@@ -956,7 +956,7 @@ ir.cpp:
|
||||
# 184| r184_7(glval<int>) = PointerAdd[4] : r184_4, r184_6
|
||||
# 184| mu184_8(int) = Store : &:r184_7, r184_2
|
||||
# 185| v185_1(void) = NoOp :
|
||||
# 171| v171_11(void) = ReturnIndirection : &:r171_7, ~mu171_4
|
||||
# 171| v171_11(void) = ReturnIndirection[p] : &:r171_7, ~mu171_4
|
||||
# 171| v171_12(void) = ReturnVoid :
|
||||
# 171| v171_13(void) = UnmodeledUse : mu*
|
||||
# 171| v171_14(void) = AliasedUse : ~mu171_4
|
||||
@@ -1005,11 +1005,11 @@ ir.cpp:
|
||||
# 193| mu193_4(unknown) = UnmodeledDefinition :
|
||||
# 193| r193_5(glval<int *>) = VariableAddress[p] :
|
||||
# 193| mu193_6(int *) = InitializeParameter[p] : &:r193_5
|
||||
# 193| r193_7(int *) = Load : &:r193_5, ~mu193_6
|
||||
# 193| r193_7(int *) = Load : &:r193_5, ~mu193_4
|
||||
# 193| mu193_8(unknown) = InitializeIndirection[p] : &:r193_7
|
||||
# 193| r193_9(glval<int *>) = VariableAddress[q] :
|
||||
# 193| mu193_10(int *) = InitializeParameter[q] : &:r193_9
|
||||
# 193| r193_11(int *) = Load : &:r193_9, ~mu193_10
|
||||
# 193| r193_11(int *) = Load : &:r193_9, ~mu193_4
|
||||
# 193| mu193_12(unknown) = InitializeIndirection[q] : &:r193_11
|
||||
# 194| r194_1(glval<bool>) = VariableAddress[b] :
|
||||
# 194| mu194_2(bool) = Uninitialized[b] : &:r194_1
|
||||
@@ -1056,8 +1056,8 @@ ir.cpp:
|
||||
# 201| r201_6(glval<bool>) = VariableAddress[b] :
|
||||
# 201| mu201_7(bool) = Store : &:r201_6, r201_5
|
||||
# 202| v202_1(void) = NoOp :
|
||||
# 193| v193_13(void) = ReturnIndirection : &:r193_7, ~mu193_4
|
||||
# 193| v193_14(void) = ReturnIndirection : &:r193_11, ~mu193_4
|
||||
# 193| v193_13(void) = ReturnIndirection[p] : &:r193_7, ~mu193_4
|
||||
# 193| v193_14(void) = ReturnIndirection[q] : &:r193_11, ~mu193_4
|
||||
# 193| v193_15(void) = ReturnVoid :
|
||||
# 193| v193_16(void) = UnmodeledUse : mu*
|
||||
# 193| v193_17(void) = AliasedUse : ~mu193_4
|
||||
@@ -1071,7 +1071,7 @@ ir.cpp:
|
||||
# 204| mu204_4(unknown) = UnmodeledDefinition :
|
||||
# 204| r204_5(glval<int *>) = VariableAddress[p] :
|
||||
# 204| mu204_6(int *) = InitializeParameter[p] : &:r204_5
|
||||
# 204| r204_7(int *) = Load : &:r204_5, ~mu204_6
|
||||
# 204| r204_7(int *) = Load : &:r204_5, ~mu204_4
|
||||
# 204| mu204_8(unknown) = InitializeIndirection[p] : &:r204_7
|
||||
# 205| r205_1(glval<int *>) = VariableAddress[q] :
|
||||
# 205| mu205_2(int *) = Uninitialized[q] : &:r205_1
|
||||
@@ -1106,7 +1106,7 @@ ir.cpp:
|
||||
# 210| r210_7(glval<int *>) = VariableAddress[q] :
|
||||
# 210| mu210_8(int *) = Store : &:r210_7, r210_6
|
||||
# 211| v211_1(void) = NoOp :
|
||||
# 204| v204_9(void) = ReturnIndirection : &:r204_7, ~mu204_4
|
||||
# 204| v204_9(void) = ReturnIndirection[p] : &:r204_7, ~mu204_4
|
||||
# 204| v204_10(void) = ReturnVoid :
|
||||
# 204| v204_11(void) = UnmodeledUse : mu*
|
||||
# 204| v204_12(void) = AliasedUse : ~mu204_4
|
||||
@@ -1705,7 +1705,7 @@ ir.cpp:
|
||||
# 341| mu341_4(unknown) = UnmodeledDefinition :
|
||||
# 341| r341_5(glval<int *>) = VariableAddress[p] :
|
||||
# 341| mu341_6(int *) = InitializeParameter[p] : &:r341_5
|
||||
# 341| r341_7(int *) = Load : &:r341_5, ~mu341_6
|
||||
# 341| r341_7(int *) = Load : &:r341_5, ~mu341_4
|
||||
# 341| mu341_8(unknown) = InitializeIndirection[p] : &:r341_7
|
||||
# 342| r342_1(int) = Constant[1] :
|
||||
# 342| r342_2(glval<int *>) = VariableAddress[p] :
|
||||
@@ -1717,7 +1717,7 @@ ir.cpp:
|
||||
# 343| r343_3(int *) = Load : &:r343_2, ~mu341_4
|
||||
# 343| r343_4(int) = Load : &:r343_3, ~mu341_4
|
||||
# 343| mu343_5(int) = Store : &:r343_1, r343_4
|
||||
# 341| v341_9(void) = ReturnIndirection : &:r341_7, ~mu341_4
|
||||
# 341| v341_9(void) = ReturnIndirection[p] : &:r341_7, ~mu341_4
|
||||
# 341| r341_10(glval<int>) = VariableAddress[#return] :
|
||||
# 341| v341_11(void) = ReturnValue : &:r341_10, ~mu341_4
|
||||
# 341| v341_12(void) = UnmodeledUse : mu*
|
||||
@@ -2984,11 +2984,11 @@ ir.cpp:
|
||||
# 622| mu622_4(unknown) = UnmodeledDefinition :
|
||||
# 622| r622_5(glval<String &>) = VariableAddress[r] :
|
||||
# 622| mu622_6(String &) = InitializeParameter[r] : &:r622_5
|
||||
# 622| r622_7(String &) = Load : &:r622_5, ~mu622_6
|
||||
# 622| r622_7(String &) = Load : &:r622_5, ~mu622_4
|
||||
# 622| mu622_8(unknown) = InitializeIndirection[r] : &:r622_7
|
||||
# 622| r622_9(glval<String *>) = VariableAddress[p] :
|
||||
# 622| mu622_10(String *) = InitializeParameter[p] : &:r622_9
|
||||
# 622| r622_11(String *) = Load : &:r622_9, ~mu622_10
|
||||
# 622| r622_11(String *) = Load : &:r622_9, ~mu622_4
|
||||
# 622| mu622_12(unknown) = InitializeIndirection[p] : &:r622_11
|
||||
# 622| r622_13(glval<String>) = VariableAddress[s] :
|
||||
# 622| mu622_14(String) = InitializeParameter[s] : &:r622_13
|
||||
@@ -3017,13 +3017,34 @@ ir.cpp:
|
||||
# 625| v625_6(void) = ^BufferReadSideEffect[-1] : &:r625_2, ~mu622_4
|
||||
# 625| mu625_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r625_2
|
||||
# 626| v626_1(void) = NoOp :
|
||||
# 622| v622_15(void) = ReturnIndirection : &:r622_7, ~mu622_4
|
||||
# 622| v622_16(void) = ReturnIndirection : &:r622_11, ~mu622_4
|
||||
# 622| v622_15(void) = ReturnIndirection[r] : &:r622_7, ~mu622_4
|
||||
# 622| v622_16(void) = ReturnIndirection[p] : &:r622_11, ~mu622_4
|
||||
# 622| v622_17(void) = ReturnVoid :
|
||||
# 622| v622_18(void) = UnmodeledUse : mu*
|
||||
# 622| v622_19(void) = AliasedUse : ~mu622_4
|
||||
# 622| v622_20(void) = ExitFunction :
|
||||
|
||||
# 628| void C::~C()
|
||||
# 628| Block 0
|
||||
# 628| v628_1(void) = EnterFunction :
|
||||
# 628| mu628_2(unknown) = AliasedDefinition :
|
||||
# 628| mu628_3(unknown) = InitializeNonLocal :
|
||||
# 628| mu628_4(unknown) = UnmodeledDefinition :
|
||||
# 628| r628_5(glval<C>) = InitializeThis :
|
||||
#-----| v0_1(void) = NoOp :
|
||||
# 628| r628_6(glval<String>) = FieldAddress[m_f] : r628_5
|
||||
# 628| r628_7(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 628| v628_8(void) = Call : func:r628_7, this:r628_6
|
||||
# 628| mu628_9(unknown) = ^CallSideEffect : ~mu628_4
|
||||
# 628| r628_10(glval<String>) = FieldAddress[m_b] : r628_5
|
||||
# 628| r628_11(glval<unknown>) = FunctionAddress[~String] :
|
||||
# 628| v628_12(void) = Call : func:r628_11, this:r628_10
|
||||
# 628| mu628_13(unknown) = ^CallSideEffect : ~mu628_4
|
||||
# 628| v628_14(void) = ReturnVoid :
|
||||
# 628| v628_15(void) = UnmodeledUse : mu*
|
||||
# 628| v628_16(void) = AliasedUse : ~mu628_4
|
||||
# 628| v628_17(void) = ExitFunction :
|
||||
|
||||
# 630| int C::StaticMemberFunction(int)
|
||||
# 630| Block 0
|
||||
# 630| v630_1(void) = EnterFunction :
|
||||
@@ -3203,14 +3224,14 @@ ir.cpp:
|
||||
# 675| mu675_4(unknown) = UnmodeledDefinition :
|
||||
# 675| r675_5(glval<int &>) = VariableAddress[r] :
|
||||
# 675| mu675_6(int &) = InitializeParameter[r] : &:r675_5
|
||||
# 675| r675_7(int &) = Load : &:r675_5, ~mu675_6
|
||||
# 675| r675_7(int &) = Load : &:r675_5, ~mu675_4
|
||||
# 675| mu675_8(unknown) = InitializeIndirection[r] : &:r675_7
|
||||
# 676| r676_1(glval<int>) = VariableAddress[#return] :
|
||||
# 676| r676_2(glval<int &>) = VariableAddress[r] :
|
||||
# 676| r676_3(int &) = Load : &:r676_2, ~mu675_4
|
||||
# 676| r676_4(int) = Load : &:r676_3, ~mu675_4
|
||||
# 676| mu676_5(int) = Store : &:r676_1, r676_4
|
||||
# 675| v675_9(void) = ReturnIndirection : &:r675_7, ~mu675_4
|
||||
# 675| v675_9(void) = ReturnIndirection[r] : &:r675_7, ~mu675_4
|
||||
# 675| r675_10(glval<int>) = VariableAddress[#return] :
|
||||
# 675| v675_11(void) = ReturnValue : &:r675_10, ~mu675_4
|
||||
# 675| v675_12(void) = UnmodeledUse : mu*
|
||||
@@ -3396,14 +3417,14 @@ ir.cpp:
|
||||
# 715| mu715_4(unknown) = UnmodeledDefinition :
|
||||
# 715| r715_5(glval<void *>) = VariableAddress[x] :
|
||||
# 715| mu715_6(void *) = InitializeParameter[x] : &:r715_5
|
||||
# 715| r715_7(void *) = Load : &:r715_5, ~mu715_6
|
||||
# 715| r715_7(void *) = Load : &:r715_5, ~mu715_4
|
||||
# 715| mu715_8(unknown) = InitializeIndirection[x] : &:r715_7
|
||||
# 715| r715_9(glval<char>) = VariableAddress[y] :
|
||||
# 715| mu715_10(char) = InitializeParameter[y] : &:r715_9
|
||||
# 716| r716_1(glval<long>) = VariableAddress[#return] :
|
||||
# 716| r716_2(long) = Constant[0] :
|
||||
# 716| mu716_3(long) = Store : &:r716_1, r716_2
|
||||
# 715| v715_11(void) = ReturnIndirection : &:r715_7, ~mu715_4
|
||||
# 715| v715_11(void) = ReturnIndirection[x] : &:r715_7, ~mu715_4
|
||||
# 715| r715_12(glval<long>) = VariableAddress[#return] :
|
||||
# 715| v715_13(void) = ReturnValue : &:r715_12, ~mu715_4
|
||||
# 715| v715_14(void) = UnmodeledUse : mu*
|
||||
@@ -3520,7 +3541,7 @@ ir.cpp:
|
||||
# 735| Block 10
|
||||
# 735| r735_2(glval<char *>) = VariableAddress[s] :
|
||||
# 735| mu735_3(char *) = InitializeParameter[s] : &:r735_2
|
||||
# 735| r735_4(char *) = Load : &:r735_2, ~mu735_3
|
||||
# 735| r735_4(char *) = Load : &:r735_2, ~mu724_4
|
||||
# 735| mu735_5(unknown) = InitializeIndirection[s] : &:r735_4
|
||||
# 736| r736_1(glval<String>) = VariableAddress[#throw736:5] :
|
||||
# 736| mu736_2(String) = Uninitialized[#throw736:5] : &:r736_1
|
||||
@@ -3543,7 +3564,7 @@ ir.cpp:
|
||||
# 738| Block 12
|
||||
# 738| r738_2(glval<String &>) = VariableAddress[e] :
|
||||
# 738| mu738_3(String &) = InitializeParameter[e] : &:r738_2
|
||||
# 738| r738_4(String &) = Load : &:r738_2, ~mu738_3
|
||||
# 738| r738_4(String &) = Load : &:r738_2, ~mu724_4
|
||||
# 738| mu738_5(unknown) = InitializeIndirection[e] : &:r738_4
|
||||
# 738| v738_6(void) = NoOp :
|
||||
#-----| Goto -> Block 14
|
||||
@@ -3567,7 +3588,7 @@ ir.cpp:
|
||||
# 745| r745_5(glval<Base>) = InitializeThis :
|
||||
#-----| r0_1(glval<Base &>) = VariableAddress[p#0] :
|
||||
#-----| mu0_2(Base &) = InitializeParameter[p#0] : &:r0_1
|
||||
#-----| r0_3(Base &) = Load : &:r0_1, ~mu0_2
|
||||
#-----| r0_3(Base &) = Load : &:r0_1, ~mu745_4
|
||||
#-----| mu0_4(unknown) = InitializeIndirection[p#0] : &:r0_3
|
||||
#-----| r0_5(Base *) = CopyValue : r745_5
|
||||
#-----| r0_6(glval<String>) = FieldAddress[base_s] : r0_5
|
||||
@@ -3590,7 +3611,7 @@ ir.cpp:
|
||||
#-----| r0_20(glval<Base>) = CopyValue : r0_19
|
||||
#-----| r0_21(Base &) = CopyValue : r0_20
|
||||
#-----| mu0_22(Base &) = Store : &:r0_18, r0_21
|
||||
#-----| v0_23(void) = ReturnIndirection : &:r0_3, ~mu745_4
|
||||
#-----| v0_23(void) = ReturnIndirection[p#0] : &:r0_3, ~mu745_4
|
||||
# 745| r745_9(glval<Base &>) = VariableAddress[#return] :
|
||||
# 745| v745_10(void) = ReturnValue : &:r745_9, ~mu745_4
|
||||
# 745| v745_11(void) = UnmodeledUse : mu*
|
||||
@@ -3606,7 +3627,7 @@ ir.cpp:
|
||||
# 745| r745_5(glval<Base>) = InitializeThis :
|
||||
#-----| r0_1(glval<Base &>) = VariableAddress[p#0] :
|
||||
#-----| mu0_2(Base &) = InitializeParameter[p#0] : &:r0_1
|
||||
#-----| r0_3(Base &) = Load : &:r0_1, ~mu0_2
|
||||
#-----| r0_3(Base &) = Load : &:r0_1, ~mu745_4
|
||||
#-----| mu0_4(unknown) = InitializeIndirection[p#0] : &:r0_3
|
||||
# 745| r745_6(glval<String>) = FieldAddress[base_s] : r745_5
|
||||
# 745| r745_7(glval<unknown>) = FunctionAddress[String] :
|
||||
@@ -3614,7 +3635,7 @@ ir.cpp:
|
||||
# 745| mu745_9(unknown) = ^CallSideEffect : ~mu745_4
|
||||
# 745| mu745_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r745_6
|
||||
# 745| v745_11(void) = NoOp :
|
||||
#-----| v0_5(void) = ReturnIndirection : &:r0_3, ~mu745_4
|
||||
#-----| v0_5(void) = ReturnIndirection[p#0] : &:r0_3, ~mu745_4
|
||||
# 745| v745_12(void) = ReturnVoid :
|
||||
# 745| v745_13(void) = UnmodeledUse : mu*
|
||||
# 745| v745_14(void) = AliasedUse : ~mu745_4
|
||||
@@ -3664,7 +3685,7 @@ ir.cpp:
|
||||
# 754| r754_5(glval<Middle>) = InitializeThis :
|
||||
#-----| r0_1(glval<Middle &>) = VariableAddress[p#0] :
|
||||
#-----| mu0_2(Middle &) = InitializeParameter[p#0] : &:r0_1
|
||||
#-----| r0_3(Middle &) = Load : &:r0_1, ~mu0_2
|
||||
#-----| r0_3(Middle &) = Load : &:r0_1, ~mu754_4
|
||||
#-----| mu0_4(unknown) = InitializeIndirection[p#0] : &:r0_3
|
||||
#-----| r0_5(Middle *) = CopyValue : r754_5
|
||||
#-----| r0_6(Base *) = ConvertToNonVirtualBase[Middle : Base] : r0_5
|
||||
@@ -3704,7 +3725,7 @@ ir.cpp:
|
||||
#-----| r0_34(glval<Middle>) = CopyValue : r0_33
|
||||
#-----| r0_35(Middle &) = CopyValue : r0_34
|
||||
#-----| mu0_36(Middle &) = Store : &:r0_32, r0_35
|
||||
#-----| v0_37(void) = ReturnIndirection : &:r0_3, ~mu754_4
|
||||
#-----| v0_37(void) = ReturnIndirection[p#0] : &:r0_3, ~mu754_4
|
||||
# 754| r754_12(glval<Middle &>) = VariableAddress[#return] :
|
||||
# 754| v754_13(void) = ReturnValue : &:r754_12, ~mu754_4
|
||||
# 754| v754_14(void) = UnmodeledUse : mu*
|
||||
@@ -3764,7 +3785,7 @@ ir.cpp:
|
||||
# 763| r763_5(glval<Derived>) = InitializeThis :
|
||||
#-----| r0_1(glval<Derived &>) = VariableAddress[p#0] :
|
||||
#-----| mu0_2(Derived &) = InitializeParameter[p#0] : &:r0_1
|
||||
#-----| r0_3(Derived &) = Load : &:r0_1, ~mu0_2
|
||||
#-----| r0_3(Derived &) = Load : &:r0_1, ~mu763_4
|
||||
#-----| mu0_4(unknown) = InitializeIndirection[p#0] : &:r0_3
|
||||
#-----| r0_5(Derived *) = CopyValue : r763_5
|
||||
#-----| r0_6(Middle *) = ConvertToNonVirtualBase[Derived : Middle] : r0_5
|
||||
@@ -3804,7 +3825,7 @@ ir.cpp:
|
||||
#-----| r0_34(glval<Derived>) = CopyValue : r0_33
|
||||
#-----| r0_35(Derived &) = CopyValue : r0_34
|
||||
#-----| mu0_36(Derived &) = Store : &:r0_32, r0_35
|
||||
#-----| v0_37(void) = ReturnIndirection : &:r0_3, ~mu763_4
|
||||
#-----| v0_37(void) = ReturnIndirection[p#0] : &:r0_3, ~mu763_4
|
||||
# 763| r763_12(glval<Derived &>) = VariableAddress[#return] :
|
||||
# 763| v763_13(void) = ReturnValue : &:r763_12, ~mu763_4
|
||||
# 763| v763_14(void) = UnmodeledUse : mu*
|
||||
@@ -4495,7 +4516,7 @@ ir.cpp:
|
||||
# 883| mu883_6(..(*)(..)) = InitializeParameter[pfn] : &:r883_5
|
||||
# 883| r883_7(glval<void *>) = VariableAddress[p] :
|
||||
# 883| mu883_8(void *) = InitializeParameter[p] : &:r883_7
|
||||
# 883| r883_9(void *) = Load : &:r883_7, ~mu883_8
|
||||
# 883| r883_9(void *) = Load : &:r883_7, ~mu883_4
|
||||
# 883| mu883_10(unknown) = InitializeIndirection[p] : &:r883_9
|
||||
# 884| r884_1(glval<..(*)(..)>) = VariableAddress[pfn] :
|
||||
# 884| r884_2(..(*)(..)) = Load : &:r884_1, ~mu883_4
|
||||
@@ -4508,7 +4529,7 @@ ir.cpp:
|
||||
# 885| r885_4(glval<..(*)(..)>) = VariableAddress[pfn] :
|
||||
# 885| mu885_5(..(*)(..)) = Store : &:r885_4, r885_3
|
||||
# 886| v886_1(void) = NoOp :
|
||||
# 883| v883_11(void) = ReturnIndirection : &:r883_9, ~mu883_4
|
||||
# 883| v883_11(void) = ReturnIndirection[p] : &:r883_9, ~mu883_4
|
||||
# 883| v883_12(void) = ReturnVoid :
|
||||
# 883| v883_13(void) = UnmodeledUse : mu*
|
||||
# 883| v883_14(void) = AliasedUse : ~mu883_4
|
||||
@@ -4524,7 +4545,7 @@ ir.cpp:
|
||||
# 888| mu888_6(int) = InitializeParameter[x] : &:r888_5
|
||||
# 888| r888_7(glval<__va_list_tag *>) = VariableAddress[args] :
|
||||
# 888| mu888_8(__va_list_tag *) = InitializeParameter[args] : &:r888_7
|
||||
# 888| r888_9(__va_list_tag *) = Load : &:r888_7, ~mu888_8
|
||||
# 888| r888_9(__va_list_tag *) = Load : &:r888_7, ~mu888_4
|
||||
# 888| mu888_10(unknown) = InitializeIndirection[args] : &:r888_9
|
||||
# 889| r889_1(glval<__va_list_tag[1]>) = VariableAddress[args2] :
|
||||
# 889| mu889_2(__va_list_tag[1]) = Uninitialized[args2] : &:r889_1
|
||||
@@ -4557,7 +4578,7 @@ ir.cpp:
|
||||
# 893| r893_2(__va_list_tag *) = Convert : r893_1
|
||||
# 893| v893_3(void) = VarArgsEnd : r893_2
|
||||
# 894| v894_1(void) = NoOp :
|
||||
# 888| v888_11(void) = ReturnIndirection : &:r888_9, ~mu888_4
|
||||
# 888| v888_11(void) = ReturnIndirection[args] : &:r888_9, ~mu888_4
|
||||
# 888| v888_12(void) = ReturnVoid :
|
||||
# 888| v888_13(void) = UnmodeledUse : mu*
|
||||
# 888| v888_14(void) = AliasedUse : ~mu888_4
|
||||
@@ -4573,7 +4594,7 @@ ir.cpp:
|
||||
# 896| mu896_6(int) = InitializeParameter[x] : &:r896_5
|
||||
# 896| r896_7(glval<unknown>) = VariableAddress[#ellipsis] :
|
||||
# 896| mu896_8(unknown[11]) = InitializeParameter[#ellipsis] : &:r896_7
|
||||
# 896| r896_9(unknown[11]) = Load : &:r896_7, ~mu896_8
|
||||
# 896| r896_9(unknown[11]) = Load : &:r896_7, ~mu896_4
|
||||
# 896| mu896_10(unknown) = InitializeIndirection[#ellipsis] : &:r896_9
|
||||
# 897| r897_1(glval<__va_list_tag[1]>) = VariableAddress[args] :
|
||||
# 897| mu897_2(__va_list_tag[1]) = Uninitialized[args] : &:r897_1
|
||||
@@ -4697,58 +4718,65 @@ ir.cpp:
|
||||
# 950| r950_2(unsigned long) = Constant[4] :
|
||||
# 950| r950_3(void *) = Call : func:r950_1, 0:r950_2
|
||||
# 950| mu950_4(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 950| r950_5(int *) = Convert : r950_3
|
||||
# 950| mu950_5(unknown) = ^InitializeDynamicAllocation : &:r950_3
|
||||
# 950| r950_6(int *) = Convert : r950_3
|
||||
# 951| r951_1(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 951| r951_2(unsigned long) = Constant[4] :
|
||||
# 951| r951_3(float) = Constant[1.0] :
|
||||
# 951| r951_4(void *) = Call : func:r951_1, 0:r951_2, 1:r951_3
|
||||
# 951| mu951_5(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 951| r951_6(int *) = Convert : r951_4
|
||||
# 951| mu951_6(unknown) = ^InitializeDynamicAllocation : &:r951_4
|
||||
# 951| r951_7(int *) = Convert : r951_4
|
||||
# 952| r952_1(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 952| r952_2(unsigned long) = Constant[4] :
|
||||
# 952| r952_3(void *) = Call : func:r952_1, 0:r952_2
|
||||
# 952| mu952_4(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 952| r952_5(int *) = Convert : r952_3
|
||||
# 952| r952_6(int) = Constant[0] :
|
||||
# 952| mu952_7(int) = Store : &:r952_5, r952_6
|
||||
# 952| mu952_5(unknown) = ^InitializeDynamicAllocation : &:r952_3
|
||||
# 952| r952_6(int *) = Convert : r952_3
|
||||
# 952| r952_7(int) = Constant[0] :
|
||||
# 952| mu952_8(int) = Store : &:r952_6, r952_7
|
||||
# 953| r953_1(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 953| r953_2(unsigned long) = Constant[8] :
|
||||
# 953| r953_3(void *) = Call : func:r953_1, 0:r953_2
|
||||
# 953| mu953_4(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 953| r953_5(String *) = Convert : r953_3
|
||||
# 953| r953_6(glval<unknown>) = FunctionAddress[String] :
|
||||
# 953| v953_7(void) = Call : func:r953_6, this:r953_5
|
||||
# 953| mu953_8(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 953| mu953_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r953_5
|
||||
# 953| mu953_5(unknown) = ^InitializeDynamicAllocation : &:r953_3
|
||||
# 953| r953_6(String *) = Convert : r953_3
|
||||
# 953| r953_7(glval<unknown>) = FunctionAddress[String] :
|
||||
# 953| v953_8(void) = Call : func:r953_7, this:r953_6
|
||||
# 953| mu953_9(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 953| mu953_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r953_6
|
||||
# 954| r954_1(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 954| r954_2(unsigned long) = Constant[8] :
|
||||
# 954| r954_3(float) = Constant[1.0] :
|
||||
# 954| r954_4(void *) = Call : func:r954_1, 0:r954_2, 1:r954_3
|
||||
# 954| mu954_5(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 954| r954_6(String *) = Convert : r954_4
|
||||
# 954| r954_7(glval<unknown>) = FunctionAddress[String] :
|
||||
# 954| r954_8(glval<char[6]>) = StringConstant["hello"] :
|
||||
# 954| r954_9(char *) = Convert : r954_8
|
||||
# 954| v954_10(void) = Call : func:r954_7, this:r954_6, 0:r954_9
|
||||
# 954| mu954_11(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 954| mu954_12(String) = ^IndirectMayWriteSideEffect[-1] : &:r954_6
|
||||
# 954| v954_13(void) = ^BufferReadSideEffect[0] : &:r954_9, ~mu949_4
|
||||
# 954| mu954_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r954_9
|
||||
# 954| mu954_6(unknown) = ^InitializeDynamicAllocation : &:r954_4
|
||||
# 954| r954_7(String *) = Convert : r954_4
|
||||
# 954| r954_8(glval<unknown>) = FunctionAddress[String] :
|
||||
# 954| r954_9(glval<char[6]>) = StringConstant["hello"] :
|
||||
# 954| r954_10(char *) = Convert : r954_9
|
||||
# 954| v954_11(void) = Call : func:r954_8, this:r954_7, 0:r954_10
|
||||
# 954| mu954_12(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 954| mu954_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r954_7
|
||||
# 954| v954_14(void) = ^BufferReadSideEffect[0] : &:r954_10, ~mu949_4
|
||||
# 954| mu954_15(unknown) = ^BufferMayWriteSideEffect[0] : &:r954_10
|
||||
# 955| r955_1(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 955| r955_2(unsigned long) = Constant[256] :
|
||||
# 955| r955_3(align_val_t) = Constant[128] :
|
||||
# 955| r955_4(void *) = Call : func:r955_1, 0:r955_2, 1:r955_3
|
||||
# 955| mu955_5(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 955| r955_6(Overaligned *) = Convert : r955_4
|
||||
# 955| mu955_6(unknown) = ^InitializeDynamicAllocation : &:r955_4
|
||||
# 955| r955_7(Overaligned *) = Convert : r955_4
|
||||
# 956| r956_1(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 956| r956_2(unsigned long) = Constant[256] :
|
||||
# 956| r956_3(align_val_t) = Constant[128] :
|
||||
# 956| r956_4(float) = Constant[1.0] :
|
||||
# 956| r956_5(void *) = Call : func:r956_1, 0:r956_2, 1:r956_3, 2:r956_4
|
||||
# 956| mu956_6(unknown) = ^CallSideEffect : ~mu949_4
|
||||
# 956| r956_7(Overaligned *) = Convert : r956_5
|
||||
# 956| r956_8(Overaligned) = Constant[0] :
|
||||
# 956| mu956_9(Overaligned) = Store : &:r956_7, r956_8
|
||||
# 956| mu956_7(unknown) = ^InitializeDynamicAllocation : &:r956_5
|
||||
# 956| r956_8(Overaligned *) = Convert : r956_5
|
||||
# 956| r956_9(Overaligned) = Constant[0] :
|
||||
# 956| mu956_10(Overaligned) = Store : &:r956_8, r956_9
|
||||
# 957| v957_1(void) = NoOp :
|
||||
# 949| v949_5(void) = ReturnVoid :
|
||||
# 949| v949_6(void) = UnmodeledUse : mu*
|
||||
@@ -4757,85 +4785,93 @@ ir.cpp:
|
||||
|
||||
# 959| void OperatorNewArray(int)
|
||||
# 959| Block 0
|
||||
# 959| v959_1(void) = EnterFunction :
|
||||
# 959| mu959_2(unknown) = AliasedDefinition :
|
||||
# 959| mu959_3(unknown) = InitializeNonLocal :
|
||||
# 959| mu959_4(unknown) = UnmodeledDefinition :
|
||||
# 959| r959_5(glval<int>) = VariableAddress[n] :
|
||||
# 959| mu959_6(int) = InitializeParameter[n] : &:r959_5
|
||||
# 960| r960_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 960| r960_2(unsigned long) = Constant[40] :
|
||||
# 960| r960_3(void *) = Call : func:r960_1, 0:r960_2
|
||||
# 960| mu960_4(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 960| r960_5(int *) = Convert : r960_3
|
||||
# 961| r961_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 961| r961_2(glval<int>) = VariableAddress[n] :
|
||||
# 961| r961_3(int) = Load : &:r961_2, ~mu959_4
|
||||
# 961| r961_4(unsigned long) = Convert : r961_3
|
||||
# 961| r961_5(unsigned long) = Constant[4] :
|
||||
# 961| r961_6(unsigned long) = Mul : r961_4, r961_5
|
||||
# 961| r961_7(void *) = Call : func:r961_1, 0:r961_6
|
||||
# 961| mu961_8(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 961| r961_9(int *) = Convert : r961_7
|
||||
# 962| r962_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 962| r962_2(glval<int>) = VariableAddress[n] :
|
||||
# 962| r962_3(int) = Load : &:r962_2, ~mu959_4
|
||||
# 962| r962_4(unsigned long) = Convert : r962_3
|
||||
# 962| r962_5(unsigned long) = Constant[4] :
|
||||
# 962| r962_6(unsigned long) = Mul : r962_4, r962_5
|
||||
# 962| r962_7(float) = Constant[1.0] :
|
||||
# 962| r962_8(void *) = Call : func:r962_1, 0:r962_6, 1:r962_7
|
||||
# 962| mu962_9(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 962| r962_10(int *) = Convert : r962_8
|
||||
# 963| r963_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 963| r963_2(glval<int>) = VariableAddress[n] :
|
||||
# 963| r963_3(int) = Load : &:r963_2, ~mu959_4
|
||||
# 963| r963_4(unsigned long) = Convert : r963_3
|
||||
# 963| r963_5(unsigned long) = Constant[8] :
|
||||
# 963| r963_6(unsigned long) = Mul : r963_4, r963_5
|
||||
# 963| r963_7(void *) = Call : func:r963_1, 0:r963_6
|
||||
# 963| mu963_8(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 963| r963_9(String *) = Convert : r963_7
|
||||
# 964| r964_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 964| r964_2(glval<int>) = VariableAddress[n] :
|
||||
# 964| r964_3(int) = Load : &:r964_2, ~mu959_4
|
||||
# 964| r964_4(unsigned long) = Convert : r964_3
|
||||
# 964| r964_5(unsigned long) = Constant[256] :
|
||||
# 964| r964_6(unsigned long) = Mul : r964_4, r964_5
|
||||
# 964| r964_7(align_val_t) = Constant[128] :
|
||||
# 964| r964_8(void *) = Call : func:r964_1, 0:r964_6, 1:r964_7
|
||||
# 964| mu964_9(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 964| r964_10(Overaligned *) = Convert : r964_8
|
||||
# 965| r965_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 965| r965_2(unsigned long) = Constant[2560] :
|
||||
# 965| r965_3(align_val_t) = Constant[128] :
|
||||
# 965| r965_4(float) = Constant[1.0] :
|
||||
# 965| r965_5(void *) = Call : func:r965_1, 0:r965_2, 1:r965_3, 2:r965_4
|
||||
# 965| mu965_6(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 965| r965_7(Overaligned *) = Convert : r965_5
|
||||
# 966| r966_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 966| r966_2(glval<int>) = VariableAddress[n] :
|
||||
# 966| r966_3(int) = Load : &:r966_2, ~mu959_4
|
||||
# 966| r966_4(unsigned long) = Convert : r966_3
|
||||
# 966| r966_5(unsigned long) = Constant[1] :
|
||||
# 966| r966_6(unsigned long) = Mul : r966_4, r966_5
|
||||
# 966| r966_7(void *) = Call : func:r966_1, 0:r966_6
|
||||
# 966| mu966_8(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 966| r966_9(DefaultCtorWithDefaultParam *) = Convert : r966_7
|
||||
# 967| r967_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 967| r967_2(glval<int>) = VariableAddress[n] :
|
||||
# 967| r967_3(int) = Load : &:r967_2, ~mu959_4
|
||||
# 967| r967_4(unsigned long) = Convert : r967_3
|
||||
# 967| r967_5(unsigned long) = Constant[4] :
|
||||
# 967| r967_6(unsigned long) = Mul : r967_4, r967_5
|
||||
# 967| r967_7(void *) = Call : func:r967_1, 0:r967_6
|
||||
# 967| mu967_8(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 967| r967_9(int *) = Convert : r967_7
|
||||
# 968| v968_1(void) = NoOp :
|
||||
# 959| v959_7(void) = ReturnVoid :
|
||||
# 959| v959_8(void) = UnmodeledUse : mu*
|
||||
# 959| v959_9(void) = AliasedUse : ~mu959_4
|
||||
# 959| v959_10(void) = ExitFunction :
|
||||
# 959| v959_1(void) = EnterFunction :
|
||||
# 959| mu959_2(unknown) = AliasedDefinition :
|
||||
# 959| mu959_3(unknown) = InitializeNonLocal :
|
||||
# 959| mu959_4(unknown) = UnmodeledDefinition :
|
||||
# 959| r959_5(glval<int>) = VariableAddress[n] :
|
||||
# 959| mu959_6(int) = InitializeParameter[n] : &:r959_5
|
||||
# 960| r960_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 960| r960_2(unsigned long) = Constant[40] :
|
||||
# 960| r960_3(void *) = Call : func:r960_1, 0:r960_2
|
||||
# 960| mu960_4(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 960| mu960_5(unknown) = ^InitializeDynamicAllocation : &:r960_3
|
||||
# 960| r960_6(int *) = Convert : r960_3
|
||||
# 961| r961_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 961| r961_2(glval<int>) = VariableAddress[n] :
|
||||
# 961| r961_3(int) = Load : &:r961_2, ~mu959_4
|
||||
# 961| r961_4(unsigned long) = Convert : r961_3
|
||||
# 961| r961_5(unsigned long) = Constant[4] :
|
||||
# 961| r961_6(unsigned long) = Mul : r961_4, r961_5
|
||||
# 961| r961_7(void *) = Call : func:r961_1, 0:r961_6
|
||||
# 961| mu961_8(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 961| mu961_9(unknown) = ^InitializeDynamicAllocation : &:r961_7
|
||||
# 961| r961_10(int *) = Convert : r961_7
|
||||
# 962| r962_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 962| r962_2(glval<int>) = VariableAddress[n] :
|
||||
# 962| r962_3(int) = Load : &:r962_2, ~mu959_4
|
||||
# 962| r962_4(unsigned long) = Convert : r962_3
|
||||
# 962| r962_5(unsigned long) = Constant[4] :
|
||||
# 962| r962_6(unsigned long) = Mul : r962_4, r962_5
|
||||
# 962| r962_7(float) = Constant[1.0] :
|
||||
# 962| r962_8(void *) = Call : func:r962_1, 0:r962_6, 1:r962_7
|
||||
# 962| mu962_9(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 962| mu962_10(unknown) = ^InitializeDynamicAllocation : &:r962_8
|
||||
# 962| r962_11(int *) = Convert : r962_8
|
||||
# 963| r963_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 963| r963_2(glval<int>) = VariableAddress[n] :
|
||||
# 963| r963_3(int) = Load : &:r963_2, ~mu959_4
|
||||
# 963| r963_4(unsigned long) = Convert : r963_3
|
||||
# 963| r963_5(unsigned long) = Constant[8] :
|
||||
# 963| r963_6(unsigned long) = Mul : r963_4, r963_5
|
||||
# 963| r963_7(void *) = Call : func:r963_1, 0:r963_6
|
||||
# 963| mu963_8(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 963| mu963_9(unknown) = ^InitializeDynamicAllocation : &:r963_7
|
||||
# 963| r963_10(String *) = Convert : r963_7
|
||||
# 964| r964_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 964| r964_2(glval<int>) = VariableAddress[n] :
|
||||
# 964| r964_3(int) = Load : &:r964_2, ~mu959_4
|
||||
# 964| r964_4(unsigned long) = Convert : r964_3
|
||||
# 964| r964_5(unsigned long) = Constant[256] :
|
||||
# 964| r964_6(unsigned long) = Mul : r964_4, r964_5
|
||||
# 964| r964_7(align_val_t) = Constant[128] :
|
||||
# 964| r964_8(void *) = Call : func:r964_1, 0:r964_6, 1:r964_7
|
||||
# 964| mu964_9(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 964| mu964_10(unknown) = ^InitializeDynamicAllocation : &:r964_8
|
||||
# 964| r964_11(Overaligned *) = Convert : r964_8
|
||||
# 965| r965_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 965| r965_2(unsigned long) = Constant[2560] :
|
||||
# 965| r965_3(align_val_t) = Constant[128] :
|
||||
# 965| r965_4(float) = Constant[1.0] :
|
||||
# 965| r965_5(void *) = Call : func:r965_1, 0:r965_2, 1:r965_3, 2:r965_4
|
||||
# 965| mu965_6(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 965| mu965_7(unknown) = ^InitializeDynamicAllocation : &:r965_5
|
||||
# 965| r965_8(Overaligned *) = Convert : r965_5
|
||||
# 966| r966_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 966| r966_2(glval<int>) = VariableAddress[n] :
|
||||
# 966| r966_3(int) = Load : &:r966_2, ~mu959_4
|
||||
# 966| r966_4(unsigned long) = Convert : r966_3
|
||||
# 966| r966_5(unsigned long) = Constant[1] :
|
||||
# 966| r966_6(unsigned long) = Mul : r966_4, r966_5
|
||||
# 966| r966_7(void *) = Call : func:r966_1, 0:r966_6
|
||||
# 966| mu966_8(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 966| mu966_9(unknown) = ^InitializeDynamicAllocation : &:r966_7
|
||||
# 966| r966_10(DefaultCtorWithDefaultParam *) = Convert : r966_7
|
||||
# 967| r967_1(glval<unknown>) = FunctionAddress[operator new[]] :
|
||||
# 967| r967_2(glval<int>) = VariableAddress[n] :
|
||||
# 967| r967_3(int) = Load : &:r967_2, ~mu959_4
|
||||
# 967| r967_4(unsigned long) = Convert : r967_3
|
||||
# 967| r967_5(unsigned long) = Constant[4] :
|
||||
# 967| r967_6(unsigned long) = Mul : r967_4, r967_5
|
||||
# 967| r967_7(void *) = Call : func:r967_1, 0:r967_6
|
||||
# 967| mu967_8(unknown) = ^CallSideEffect : ~mu959_4
|
||||
# 967| mu967_9(unknown) = ^InitializeDynamicAllocation : &:r967_7
|
||||
# 967| r967_10(int *) = Convert : r967_7
|
||||
# 968| v968_1(void) = NoOp :
|
||||
# 959| v959_7(void) = ReturnVoid :
|
||||
# 959| v959_8(void) = UnmodeledUse : mu*
|
||||
# 959| v959_9(void) = AliasedUse : ~mu959_4
|
||||
# 959| v959_10(void) = ExitFunction :
|
||||
|
||||
# 970| int designatedInit()
|
||||
# 970| Block 0
|
||||
@@ -5045,7 +5081,7 @@ ir.cpp:
|
||||
# 996| mu996_4(unknown) = UnmodeledDefinition :
|
||||
# 996| r996_5(glval<int *>) = VariableAddress[a] :
|
||||
# 996| mu996_6(int *) = InitializeParameter[a] : &:r996_5
|
||||
# 996| r996_7(int *) = Load : &:r996_5, ~mu996_6
|
||||
# 996| r996_7(int *) = Load : &:r996_5, ~mu996_4
|
||||
# 996| mu996_8(unknown) = InitializeIndirection[a] : &:r996_7
|
||||
# 996| r996_9(glval<..(*)(..)>) = VariableAddress[fn] :
|
||||
# 996| mu996_10(..(*)(..)) = InitializeParameter[fn] : &:r996_9
|
||||
@@ -5062,7 +5098,7 @@ ir.cpp:
|
||||
# 997| mu997_11(unknown) = ^CallSideEffect : ~mu996_4
|
||||
# 997| r997_12(int) = Add : r997_6, r997_10
|
||||
# 997| mu997_13(int) = Store : &:r997_1, r997_12
|
||||
# 996| v996_11(void) = ReturnIndirection : &:r996_7, ~mu996_4
|
||||
# 996| v996_11(void) = ReturnIndirection[a] : &:r996_7, ~mu996_4
|
||||
# 996| r996_12(glval<int>) = VariableAddress[#return] :
|
||||
# 996| v996_13(void) = ReturnValue : &:r996_12, ~mu996_4
|
||||
# 996| v996_14(void) = UnmodeledUse : mu*
|
||||
@@ -5219,7 +5255,7 @@ ir.cpp:
|
||||
# 1040| mu1040_6(int) = InitializeParameter[x] : &:r1040_5
|
||||
# 1040| r1040_7(glval<String &>) = VariableAddress[s] :
|
||||
# 1040| mu1040_8(String &) = InitializeParameter[s] : &:r1040_7
|
||||
# 1040| r1040_9(String &) = Load : &:r1040_7, ~mu1040_8
|
||||
# 1040| r1040_9(String &) = Load : &:r1040_7, ~mu1040_4
|
||||
# 1040| mu1040_10(unknown) = InitializeIndirection[s] : &:r1040_9
|
||||
# 1041| r1041_1(glval<decltype([...](...){...})>) = VariableAddress[lambda_empty] :
|
||||
# 1041| r1041_2(glval<decltype([...](...){...})>) = VariableAddress[#temp1041:23] :
|
||||
@@ -5372,7 +5408,7 @@ ir.cpp:
|
||||
# 1055| v1055_7(void) = ^BufferReadSideEffect[-1] : &:r1055_2, ~mu1040_4
|
||||
# 1055| mu1055_8(decltype([...](...){...})) = ^IndirectMayWriteSideEffect[-1] : &:r1055_2
|
||||
# 1056| v1056_1(void) = NoOp :
|
||||
# 1040| v1040_11(void) = ReturnIndirection : &:r1040_9, ~mu1040_4
|
||||
# 1040| v1040_11(void) = ReturnIndirection[s] : &:r1040_9, ~mu1040_4
|
||||
# 1040| v1040_12(void) = ReturnVoid :
|
||||
# 1040| v1040_13(void) = UnmodeledUse : mu*
|
||||
# 1040| v1040_14(void) = AliasedUse : ~mu1040_4
|
||||
@@ -5642,7 +5678,7 @@ ir.cpp:
|
||||
# 1077| mu1077_4(unknown) = UnmodeledDefinition :
|
||||
# 1077| r1077_5(glval<vector<int> &>) = VariableAddress[v] :
|
||||
# 1077| mu1077_6(vector<int> &) = InitializeParameter[v] : &:r1077_5
|
||||
# 1077| r1077_7(vector<int> &) = Load : &:r1077_5, ~mu1077_6
|
||||
# 1077| r1077_7(vector<int> &) = Load : &:r1077_5, ~mu1077_4
|
||||
# 1077| mu1077_8(unknown) = InitializeIndirection[v] : &:r1077_7
|
||||
# 1078| r1078_1(glval<vector<int> &>) = VariableAddress[(__range)] :
|
||||
# 1078| r1078_2(glval<vector<int> &>) = VariableAddress[v] :
|
||||
@@ -5723,13 +5759,13 @@ ir.cpp:
|
||||
#-----| Goto -> Block 5
|
||||
|
||||
# 1088| Block 5
|
||||
# 1088| v1088_1(void) = NoOp :
|
||||
# 1089| v1089_1(void) = NoOp :
|
||||
# 1077| v1077_9(void) = ReturnIndirection : &:r1077_7, ~mu1077_4
|
||||
# 1077| v1077_10(void) = ReturnVoid :
|
||||
# 1077| v1077_11(void) = UnmodeledUse : mu*
|
||||
# 1077| v1077_12(void) = AliasedUse : ~mu1077_4
|
||||
# 1077| v1077_13(void) = ExitFunction :
|
||||
# 1088| v1088_1(void) = NoOp :
|
||||
# 1089| v1089_1(void) = NoOp :
|
||||
# 1077| v1077_9(void) = ReturnIndirection[v] : &:r1077_7, ~mu1077_4
|
||||
# 1077| v1077_10(void) = ReturnVoid :
|
||||
# 1077| v1077_11(void) = UnmodeledUse : mu*
|
||||
# 1077| v1077_12(void) = AliasedUse : ~mu1077_4
|
||||
# 1077| v1077_13(void) = ExitFunction :
|
||||
|
||||
#-----| Block 6
|
||||
#-----| r0_24(glval<iterator>) = VariableAddress[(__begin)] :
|
||||
@@ -5835,13 +5871,13 @@ ir.cpp:
|
||||
# 1113| mu1113_4(unknown) = UnmodeledDefinition :
|
||||
# 1113| r1113_5(glval<unsigned int &>) = VariableAddress[a] :
|
||||
# 1113| mu1113_6(unsigned int &) = InitializeParameter[a] : &:r1113_5
|
||||
# 1113| r1113_7(unsigned int &) = Load : &:r1113_5, ~mu1113_6
|
||||
# 1113| r1113_7(unsigned int &) = Load : &:r1113_5, ~mu1113_4
|
||||
# 1113| mu1113_8(unknown) = InitializeIndirection[a] : &:r1113_7
|
||||
# 1113| r1113_9(glval<unsigned int>) = VariableAddress[b] :
|
||||
# 1113| mu1113_10(unsigned int) = InitializeParameter[b] : &:r1113_9
|
||||
# 1113| r1113_11(glval<unsigned int &>) = VariableAddress[c] :
|
||||
# 1113| mu1113_12(unsigned int &) = InitializeParameter[c] : &:r1113_11
|
||||
# 1113| r1113_13(unsigned int &) = Load : &:r1113_11, ~mu1113_12
|
||||
# 1113| r1113_13(unsigned int &) = Load : &:r1113_11, ~mu1113_4
|
||||
# 1113| mu1113_14(unknown) = InitializeIndirection[c] : &:r1113_13
|
||||
# 1113| r1113_15(glval<unsigned int>) = VariableAddress[d] :
|
||||
# 1113| mu1113_16(unsigned int) = InitializeParameter[d] : &:r1113_15
|
||||
@@ -5856,8 +5892,8 @@ ir.cpp:
|
||||
# 1118| r1118_9(unsigned int) = Load : &:r1118_8, ~mu1113_4
|
||||
# 1115| mu1115_1(unknown) = InlineAsm : ~mu1113_4, 0:r1118_3, 1:r1118_4, 2:r1118_7, 3:r1118_9
|
||||
# 1120| v1120_1(void) = NoOp :
|
||||
# 1113| v1113_17(void) = ReturnIndirection : &:r1113_7, ~mu1113_4
|
||||
# 1113| v1113_18(void) = ReturnIndirection : &:r1113_13, ~mu1113_4
|
||||
# 1113| v1113_17(void) = ReturnIndirection[a] : &:r1113_7, ~mu1113_4
|
||||
# 1113| v1113_18(void) = ReturnIndirection[c] : &:r1113_13, ~mu1113_4
|
||||
# 1113| v1113_19(void) = ReturnVoid :
|
||||
# 1113| v1113_20(void) = UnmodeledUse : mu*
|
||||
# 1113| v1113_21(void) = AliasedUse : ~mu1113_4
|
||||
@@ -6005,7 +6041,7 @@ ir.cpp:
|
||||
# 1153| Block 10
|
||||
# 1153| r1153_2(glval<char *>) = VariableAddress[s] :
|
||||
# 1153| mu1153_3(char *) = InitializeParameter[s] : &:r1153_2
|
||||
# 1153| r1153_4(char *) = Load : &:r1153_2, ~mu1153_3
|
||||
# 1153| r1153_4(char *) = Load : &:r1153_2, ~mu1142_4
|
||||
# 1153| mu1153_5(unknown) = InitializeIndirection[s] : &:r1153_4
|
||||
# 1154| r1154_1(glval<String>) = VariableAddress[#throw1154:5] :
|
||||
# 1154| mu1154_2(String) = Uninitialized[#throw1154:5] : &:r1154_1
|
||||
@@ -6028,7 +6064,7 @@ ir.cpp:
|
||||
# 1156| Block 12
|
||||
# 1156| r1156_2(glval<String &>) = VariableAddress[e] :
|
||||
# 1156| mu1156_3(String &) = InitializeParameter[e] : &:r1156_2
|
||||
# 1156| r1156_4(String &) = Load : &:r1156_2, ~mu1156_3
|
||||
# 1156| r1156_4(String &) = Load : &:r1156_2, ~mu1142_4
|
||||
# 1156| mu1156_5(unknown) = InitializeIndirection[e] : &:r1156_4
|
||||
# 1156| v1156_6(void) = NoOp :
|
||||
#-----| Goto -> Block 13
|
||||
@@ -6382,7 +6418,7 @@ ir.cpp:
|
||||
# 1240| mu1240_4(unknown) = UnmodeledDefinition :
|
||||
# 1240| r1240_5(glval<char *>) = VariableAddress[dynamic] :
|
||||
# 1240| mu1240_6(char *) = InitializeParameter[dynamic] : &:r1240_5
|
||||
# 1240| r1240_7(char *) = Load : &:r1240_5, ~mu1240_6
|
||||
# 1240| r1240_7(char *) = Load : &:r1240_5, ~mu1240_4
|
||||
# 1240| mu1240_8(unknown) = InitializeIndirection[dynamic] : &:r1240_7
|
||||
# 1241| r1241_1(glval<bool>) = VariableAddress[a#init] :
|
||||
# 1241| r1241_2(bool) = Load : &:r1241_1, ~mu1240_4
|
||||
@@ -6433,12 +6469,12 @@ ir.cpp:
|
||||
#-----| Goto -> Block 5
|
||||
|
||||
# 1244| Block 5
|
||||
# 1244| v1244_1(void) = NoOp :
|
||||
# 1240| v1240_9(void) = ReturnIndirection : &:r1240_7, ~mu1240_4
|
||||
# 1240| v1240_10(void) = ReturnVoid :
|
||||
# 1240| v1240_11(void) = UnmodeledUse : mu*
|
||||
# 1240| v1240_12(void) = AliasedUse : ~mu1240_4
|
||||
# 1240| v1240_13(void) = ExitFunction :
|
||||
# 1244| v1244_1(void) = NoOp :
|
||||
# 1240| v1240_9(void) = ReturnIndirection[dynamic] : &:r1240_7, ~mu1240_4
|
||||
# 1240| v1240_10(void) = ReturnVoid :
|
||||
# 1240| v1240_11(void) = UnmodeledUse : mu*
|
||||
# 1240| v1240_12(void) = AliasedUse : ~mu1240_4
|
||||
# 1240| v1240_13(void) = ExitFunction :
|
||||
|
||||
# 1241| Block 6
|
||||
# 1241| r1241_4(glval<String>) = VariableAddress[a] :
|
||||
@@ -6450,6 +6486,237 @@ ir.cpp:
|
||||
# 1241| mu1241_6(bool) = Store : &:r1241_1, r1241_5
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 1251| void test_strings(char*, char*)
|
||||
# 1251| Block 0
|
||||
# 1251| v1251_1(void) = EnterFunction :
|
||||
# 1251| mu1251_2(unknown) = AliasedDefinition :
|
||||
# 1251| mu1251_3(unknown) = InitializeNonLocal :
|
||||
# 1251| mu1251_4(unknown) = UnmodeledDefinition :
|
||||
# 1251| r1251_5(glval<char *>) = VariableAddress[s1] :
|
||||
# 1251| mu1251_6(char *) = InitializeParameter[s1] : &:r1251_5
|
||||
# 1251| r1251_7(char *) = Load : &:r1251_5, ~mu1251_4
|
||||
# 1251| mu1251_8(unknown) = InitializeIndirection[s1] : &:r1251_7
|
||||
# 1251| r1251_9(glval<char *>) = VariableAddress[s2] :
|
||||
# 1251| mu1251_10(char *) = InitializeParameter[s2] : &:r1251_9
|
||||
# 1251| r1251_11(char *) = Load : &:r1251_9, ~mu1251_4
|
||||
# 1251| mu1251_12(unknown) = InitializeIndirection[s2] : &:r1251_11
|
||||
# 1252| r1252_1(glval<char[1024]>) = VariableAddress[buffer] :
|
||||
# 1252| mu1252_2(char[1024]) = Uninitialized[buffer] : &:r1252_1
|
||||
# 1252| r1252_3(int) = Constant[0] :
|
||||
# 1252| r1252_4(glval<char>) = PointerAdd[1] : r1252_1, r1252_3
|
||||
# 1252| r1252_5(char) = Constant[0] :
|
||||
# 1252| mu1252_6(char) = Store : &:r1252_4, r1252_5
|
||||
# 1252| r1252_7(int) = Constant[1] :
|
||||
# 1252| r1252_8(glval<char>) = PointerAdd[1] : r1252_1, r1252_7
|
||||
# 1252| r1252_9(unknown[1023]) = Constant[0] :
|
||||
# 1252| mu1252_10(unknown[1023]) = Store : &:r1252_8, r1252_9
|
||||
# 1254| r1254_1(glval<unknown>) = FunctionAddress[strcpy] :
|
||||
# 1254| r1254_2(glval<char[1024]>) = VariableAddress[buffer] :
|
||||
# 1254| r1254_3(char *) = Convert : r1254_2
|
||||
# 1254| r1254_4(glval<char *>) = VariableAddress[s1] :
|
||||
# 1254| r1254_5(char *) = Load : &:r1254_4, ~mu1251_4
|
||||
# 1254| r1254_6(char *) = Convert : r1254_5
|
||||
# 1254| r1254_7(char *) = Call : func:r1254_1, 0:r1254_3, 1:r1254_6
|
||||
# 1254| v1254_8(void) = ^BufferReadSideEffect[1] : &:r1254_6, ~mu1251_4
|
||||
# 1254| mu1254_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1254_3
|
||||
# 1255| r1255_1(glval<unknown>) = FunctionAddress[strcat] :
|
||||
# 1255| r1255_2(glval<char[1024]>) = VariableAddress[buffer] :
|
||||
# 1255| r1255_3(char *) = Convert : r1255_2
|
||||
# 1255| r1255_4(glval<char *>) = VariableAddress[s2] :
|
||||
# 1255| r1255_5(char *) = Load : &:r1255_4, ~mu1251_4
|
||||
# 1255| r1255_6(char *) = Convert : r1255_5
|
||||
# 1255| r1255_7(char *) = Call : func:r1255_1, 0:r1255_3, 1:r1255_6
|
||||
# 1255| v1255_8(void) = ^BufferReadSideEffect[0] : &:r1255_3, ~mu1251_4
|
||||
# 1255| v1255_9(void) = ^BufferReadSideEffect[1] : &:r1255_6, ~mu1251_4
|
||||
# 1255| mu1255_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1255_3
|
||||
# 1256| v1256_1(void) = NoOp :
|
||||
# 1251| v1251_13(void) = ReturnIndirection[s1] : &:r1251_7, ~mu1251_4
|
||||
# 1251| v1251_14(void) = ReturnIndirection[s2] : &:r1251_11, ~mu1251_4
|
||||
# 1251| v1251_15(void) = ReturnVoid :
|
||||
# 1251| v1251_16(void) = UnmodeledUse : mu*
|
||||
# 1251| v1251_17(void) = AliasedUse : ~mu1251_4
|
||||
# 1251| v1251_18(void) = ExitFunction :
|
||||
|
||||
# 1261| void A::static_member(A*, int)
|
||||
# 1261| Block 0
|
||||
# 1261| v1261_1(void) = EnterFunction :
|
||||
# 1261| mu1261_2(unknown) = AliasedDefinition :
|
||||
# 1261| mu1261_3(unknown) = InitializeNonLocal :
|
||||
# 1261| mu1261_4(unknown) = UnmodeledDefinition :
|
||||
# 1261| r1261_5(glval<A *>) = VariableAddress[a] :
|
||||
# 1261| mu1261_6(A *) = InitializeParameter[a] : &:r1261_5
|
||||
# 1261| r1261_7(A *) = Load : &:r1261_5, ~mu1261_4
|
||||
# 1261| mu1261_8(unknown) = InitializeIndirection[a] : &:r1261_7
|
||||
# 1261| r1261_9(glval<int>) = VariableAddress[x] :
|
||||
# 1261| mu1261_10(int) = InitializeParameter[x] : &:r1261_9
|
||||
# 1262| r1262_1(glval<int>) = VariableAddress[x] :
|
||||
# 1262| r1262_2(int) = Load : &:r1262_1, ~mu1261_4
|
||||
# 1262| r1262_3(glval<A *>) = VariableAddress[a] :
|
||||
# 1262| r1262_4(A *) = Load : &:r1262_3, ~mu1261_4
|
||||
# 1262| r1262_5(glval<int>) = FieldAddress[member] : r1262_4
|
||||
# 1262| mu1262_6(int) = Store : &:r1262_5, r1262_2
|
||||
# 1263| v1263_1(void) = NoOp :
|
||||
# 1261| v1261_11(void) = ReturnIndirection[a] : &:r1261_7, ~mu1261_4
|
||||
# 1261| v1261_12(void) = ReturnVoid :
|
||||
# 1261| v1261_13(void) = UnmodeledUse : mu*
|
||||
# 1261| v1261_14(void) = AliasedUse : ~mu1261_4
|
||||
# 1261| v1261_15(void) = ExitFunction :
|
||||
|
||||
# 1270| void test_static_member_functions(int, A*)
|
||||
# 1270| Block 0
|
||||
# 1270| v1270_1(void) = EnterFunction :
|
||||
# 1270| mu1270_2(unknown) = AliasedDefinition :
|
||||
# 1270| mu1270_3(unknown) = InitializeNonLocal :
|
||||
# 1270| mu1270_4(unknown) = UnmodeledDefinition :
|
||||
# 1270| r1270_5(glval<int>) = VariableAddress[int_arg] :
|
||||
# 1270| mu1270_6(int) = InitializeParameter[int_arg] : &:r1270_5
|
||||
# 1270| r1270_7(glval<A *>) = VariableAddress[a_arg] :
|
||||
# 1270| mu1270_8(A *) = InitializeParameter[a_arg] : &:r1270_7
|
||||
# 1270| r1270_9(A *) = Load : &:r1270_7, ~mu1270_4
|
||||
# 1270| mu1270_10(unknown) = InitializeIndirection[a_arg] : &:r1270_9
|
||||
# 1271| r1271_1(glval<C>) = VariableAddress[c] :
|
||||
# 1271| mu1271_2(C) = Uninitialized[c] : &:r1271_1
|
||||
# 1271| r1271_3(glval<unknown>) = FunctionAddress[C] :
|
||||
# 1271| v1271_4(void) = Call : func:r1271_3, this:r1271_1
|
||||
# 1271| mu1271_5(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1271| mu1271_6(C) = ^IndirectMayWriteSideEffect[-1] : &:r1271_1
|
||||
# 1272| r1272_1(glval<C>) = VariableAddress[c] :
|
||||
# 1272| r1272_2(glval<unknown>) = FunctionAddress[StaticMemberFunction] :
|
||||
# 1272| r1272_3(int) = Constant[10] :
|
||||
# 1272| r1272_4(int) = Call : func:r1272_2, 0:r1272_3
|
||||
# 1272| mu1272_5(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1273| r1273_1(glval<unknown>) = FunctionAddress[StaticMemberFunction] :
|
||||
# 1273| r1273_2(int) = Constant[10] :
|
||||
# 1273| r1273_3(int) = Call : func:r1273_1, 0:r1273_2
|
||||
# 1273| mu1273_4(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1275| r1275_1(glval<A>) = VariableAddress[a] :
|
||||
# 1275| mu1275_2(A) = Uninitialized[a] : &:r1275_1
|
||||
# 1276| r1276_1(glval<A>) = VariableAddress[a] :
|
||||
# 1276| r1276_2(glval<unknown>) = FunctionAddress[static_member] :
|
||||
# 1276| r1276_3(glval<A>) = VariableAddress[a] :
|
||||
# 1276| r1276_4(A *) = CopyValue : r1276_3
|
||||
# 1276| r1276_5(glval<int>) = VariableAddress[int_arg] :
|
||||
# 1276| r1276_6(int) = Load : &:r1276_5, ~mu1270_4
|
||||
# 1276| v1276_7(void) = Call : func:r1276_2, 0:r1276_4, 1:r1276_6
|
||||
# 1276| mu1276_8(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1276| v1276_9(void) = ^BufferReadSideEffect[0] : &:r1276_4, ~mu1270_4
|
||||
# 1276| mu1276_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1276_4
|
||||
# 1277| r1277_1(glval<unknown>) = FunctionAddress[static_member] :
|
||||
# 1277| r1277_2(glval<A>) = VariableAddress[a] :
|
||||
# 1277| r1277_3(A *) = CopyValue : r1277_2
|
||||
# 1277| r1277_4(glval<int>) = VariableAddress[int_arg] :
|
||||
# 1277| r1277_5(int) = Load : &:r1277_4, ~mu1270_4
|
||||
# 1277| v1277_6(void) = Call : func:r1277_1, 0:r1277_3, 1:r1277_5
|
||||
# 1277| mu1277_7(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1277| v1277_8(void) = ^BufferReadSideEffect[0] : &:r1277_3, ~mu1270_4
|
||||
# 1277| mu1277_9(unknown) = ^BufferMayWriteSideEffect[0] : &:r1277_3
|
||||
# 1279| r1279_1(glval<A>) = VariableAddress[a] :
|
||||
# 1279| r1279_2(A *) = CopyValue : r1279_1
|
||||
# 1279| r1279_3(glval<unknown>) = FunctionAddress[static_member] :
|
||||
# 1279| r1279_4(glval<A *>) = VariableAddress[a_arg] :
|
||||
# 1279| r1279_5(A *) = Load : &:r1279_4, ~mu1270_4
|
||||
# 1279| r1279_6(glval<int>) = VariableAddress[int_arg] :
|
||||
# 1279| r1279_7(int) = Load : &:r1279_6, ~mu1270_4
|
||||
# 1279| r1279_8(int) = Constant[2] :
|
||||
# 1279| r1279_9(int) = Add : r1279_7, r1279_8
|
||||
# 1279| v1279_10(void) = Call : func:r1279_3, 0:r1279_5, 1:r1279_9
|
||||
# 1279| mu1279_11(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1279| v1279_12(void) = ^BufferReadSideEffect[0] : &:r1279_5, ~mu1270_4
|
||||
# 1279| mu1279_13(unknown) = ^BufferMayWriteSideEffect[0] : &:r1279_5
|
||||
# 1280| r1280_1(glval<A *>) = VariableAddress[a_arg] :
|
||||
# 1280| r1280_2(A *) = Load : &:r1280_1, ~mu1270_4
|
||||
# 1280| r1280_3(glval<A>) = CopyValue : r1280_2
|
||||
# 1280| r1280_4(glval<unknown>) = FunctionAddress[static_member] :
|
||||
# 1280| r1280_5(glval<A>) = VariableAddress[a] :
|
||||
# 1280| r1280_6(A *) = CopyValue : r1280_5
|
||||
# 1280| r1280_7(int) = Constant[99] :
|
||||
# 1280| v1280_8(void) = Call : func:r1280_4, 0:r1280_6, 1:r1280_7
|
||||
# 1280| mu1280_9(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1280| v1280_10(void) = ^BufferReadSideEffect[0] : &:r1280_6, ~mu1270_4
|
||||
# 1280| mu1280_11(unknown) = ^BufferMayWriteSideEffect[0] : &:r1280_6
|
||||
# 1281| r1281_1(glval<A *>) = VariableAddress[a_arg] :
|
||||
# 1281| r1281_2(A *) = Load : &:r1281_1, ~mu1270_4
|
||||
# 1281| r1281_3(glval<unknown>) = FunctionAddress[static_member] :
|
||||
# 1281| r1281_4(glval<A *>) = VariableAddress[a_arg] :
|
||||
# 1281| r1281_5(A *) = Load : &:r1281_4, ~mu1270_4
|
||||
# 1281| r1281_6(int) = Constant[-1] :
|
||||
# 1281| v1281_7(void) = Call : func:r1281_3, 0:r1281_5, 1:r1281_6
|
||||
# 1281| mu1281_8(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1281| v1281_9(void) = ^BufferReadSideEffect[0] : &:r1281_5, ~mu1270_4
|
||||
# 1281| mu1281_10(unknown) = ^BufferMayWriteSideEffect[0] : &:r1281_5
|
||||
# 1283| r1283_1(glval<A>) = VariableAddress[a] :
|
||||
# 1283| r1283_2(glval<unknown>) = FunctionAddress[static_member_without_def] :
|
||||
# 1283| v1283_3(void) = Call : func:r1283_2
|
||||
# 1283| mu1283_4(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1284| r1284_1(glval<unknown>) = FunctionAddress[static_member_without_def] :
|
||||
# 1284| v1284_2(void) = Call : func:r1284_1
|
||||
# 1284| mu1284_3(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1286| r1286_1(glval<unknown>) = FunctionAddress[getAnInstanceOfA] :
|
||||
# 1286| r1286_2(A *) = Call : func:r1286_1
|
||||
# 1286| mu1286_3(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1286| r1286_4(glval<unknown>) = FunctionAddress[static_member_without_def] :
|
||||
# 1286| v1286_5(void) = Call : func:r1286_4
|
||||
# 1286| mu1286_6(unknown) = ^CallSideEffect : ~mu1270_4
|
||||
# 1287| v1287_1(void) = NoOp :
|
||||
# 1270| v1270_11(void) = ReturnIndirection[a_arg] : &:r1270_9, ~mu1270_4
|
||||
# 1270| v1270_12(void) = ReturnVoid :
|
||||
# 1270| v1270_13(void) = UnmodeledUse : mu*
|
||||
# 1270| v1270_14(void) = AliasedUse : ~mu1270_4
|
||||
# 1270| v1270_15(void) = ExitFunction :
|
||||
|
||||
# 1289| int missingReturnValue(bool, int)
|
||||
# 1289| Block 0
|
||||
# 1289| v1289_1(void) = EnterFunction :
|
||||
# 1289| mu1289_2(unknown) = AliasedDefinition :
|
||||
# 1289| mu1289_3(unknown) = InitializeNonLocal :
|
||||
# 1289| mu1289_4(unknown) = UnmodeledDefinition :
|
||||
# 1289| r1289_5(glval<bool>) = VariableAddress[b] :
|
||||
# 1289| mu1289_6(bool) = InitializeParameter[b] : &:r1289_5
|
||||
# 1289| r1289_7(glval<int>) = VariableAddress[x] :
|
||||
# 1289| mu1289_8(int) = InitializeParameter[x] : &:r1289_7
|
||||
# 1290| r1290_1(glval<bool>) = VariableAddress[b] :
|
||||
# 1290| r1290_2(bool) = Load : &:r1290_1, ~mu1289_4
|
||||
# 1290| v1290_3(void) = ConditionalBranch : r1290_2
|
||||
#-----| False -> Block 1
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 1293| Block 1
|
||||
# 1293| v1293_1(void) = Unreached :
|
||||
|
||||
# 1291| Block 2
|
||||
# 1291| r1291_1(glval<int>) = VariableAddress[#return] :
|
||||
# 1291| r1291_2(glval<int>) = VariableAddress[x] :
|
||||
# 1291| r1291_3(int) = Load : &:r1291_2, ~mu1289_4
|
||||
# 1291| mu1291_4(int) = Store : &:r1291_1, r1291_3
|
||||
# 1289| r1289_9(glval<int>) = VariableAddress[#return] :
|
||||
# 1289| v1289_10(void) = ReturnValue : &:r1289_9, ~mu1289_4
|
||||
# 1289| v1289_11(void) = UnmodeledUse : mu*
|
||||
# 1289| v1289_12(void) = AliasedUse : ~mu1289_4
|
||||
# 1289| v1289_13(void) = ExitFunction :
|
||||
|
||||
# 1295| void returnVoid(int, int)
|
||||
# 1295| Block 0
|
||||
# 1295| v1295_1(void) = EnterFunction :
|
||||
# 1295| mu1295_2(unknown) = AliasedDefinition :
|
||||
# 1295| mu1295_3(unknown) = InitializeNonLocal :
|
||||
# 1295| mu1295_4(unknown) = UnmodeledDefinition :
|
||||
# 1295| r1295_5(glval<int>) = VariableAddress[x] :
|
||||
# 1295| mu1295_6(int) = InitializeParameter[x] : &:r1295_5
|
||||
# 1295| r1295_7(glval<int>) = VariableAddress[y] :
|
||||
# 1295| mu1295_8(int) = InitializeParameter[y] : &:r1295_7
|
||||
# 1296| r1296_1(glval<unknown>) = FunctionAddress[IntegerOps] :
|
||||
# 1296| r1296_2(glval<int>) = VariableAddress[x] :
|
||||
# 1296| r1296_3(int) = Load : &:r1296_2, ~mu1295_4
|
||||
# 1296| r1296_4(glval<int>) = VariableAddress[y] :
|
||||
# 1296| r1296_5(int) = Load : &:r1296_4, ~mu1295_4
|
||||
# 1296| v1296_6(void) = Call : func:r1296_1, 0:r1296_3, 1:r1296_5
|
||||
# 1296| mu1296_7(unknown) = ^CallSideEffect : ~mu1295_4
|
||||
# 1296| v1296_8(void) = NoOp :
|
||||
# 1295| v1295_9(void) = ReturnVoid :
|
||||
# 1295| v1295_10(void) = UnmodeledUse : mu*
|
||||
# 1295| v1295_11(void) = AliasedUse : ~mu1295_4
|
||||
# 1295| v1295_12(void) = ExitFunction :
|
||||
|
||||
perf-regression.cpp:
|
||||
# 6| void Big::Big()
|
||||
# 6| Block 0
|
||||
@@ -6480,12 +6747,13 @@ perf-regression.cpp:
|
||||
# 10| r10_3(unsigned long) = Constant[1073741824] :
|
||||
# 10| r10_4(void *) = Call : func:r10_2, 0:r10_3
|
||||
# 10| mu10_5(unknown) = ^CallSideEffect : ~mu9_4
|
||||
# 10| r10_6(Big *) = Convert : r10_4
|
||||
# 10| r10_7(glval<unknown>) = FunctionAddress[Big] :
|
||||
# 10| v10_8(void) = Call : func:r10_7, this:r10_6
|
||||
# 10| mu10_9(unknown) = ^CallSideEffect : ~mu9_4
|
||||
# 10| mu10_10(Big) = ^IndirectMayWriteSideEffect[-1] : &:r10_6
|
||||
# 10| mu10_11(Big *) = Store : &:r10_1, r10_6
|
||||
# 10| mu10_6(unknown) = ^InitializeDynamicAllocation : &:r10_4
|
||||
# 10| r10_7(Big *) = Convert : r10_4
|
||||
# 10| r10_8(glval<unknown>) = FunctionAddress[Big] :
|
||||
# 10| v10_9(void) = Call : func:r10_8, this:r10_7
|
||||
# 10| mu10_10(unknown) = ^CallSideEffect : ~mu9_4
|
||||
# 10| mu10_11(Big) = ^IndirectMayWriteSideEffect[-1] : &:r10_7
|
||||
# 10| mu10_12(Big *) = Store : &:r10_1, r10_7
|
||||
# 12| r12_1(glval<int>) = VariableAddress[#return] :
|
||||
# 12| r12_2(int) = Constant[0] :
|
||||
# 12| mu12_3(int) = Store : &:r12_1, r12_2
|
||||
@@ -6504,14 +6772,14 @@ struct_init.cpp:
|
||||
# 16| mu16_4(unknown) = UnmodeledDefinition :
|
||||
# 16| r16_5(glval<Info *>) = VariableAddress[info] :
|
||||
# 16| mu16_6(Info *) = InitializeParameter[info] : &:r16_5
|
||||
# 16| r16_7(Info *) = Load : &:r16_5, ~mu16_6
|
||||
# 16| r16_7(Info *) = Load : &:r16_5, ~mu16_4
|
||||
# 16| mu16_8(unknown) = InitializeIndirection[info] : &:r16_7
|
||||
# 17| r17_1(glval<Info *>) = VariableAddress[info] :
|
||||
# 17| r17_2(Info *) = Load : &:r17_1, ~mu16_4
|
||||
# 17| r17_3(glval<Info *>) = VariableAddress[global_pointer] :
|
||||
# 17| mu17_4(Info *) = Store : &:r17_3, r17_2
|
||||
# 18| v18_1(void) = NoOp :
|
||||
# 16| v16_9(void) = ReturnIndirection : &:r16_7, ~mu16_4
|
||||
# 16| v16_9(void) = ReturnIndirection[info] : &:r16_7, ~mu16_4
|
||||
# 16| v16_10(void) = ReturnVoid :
|
||||
# 16| v16_11(void) = UnmodeledUse : mu*
|
||||
# 16| v16_12(void) = AliasedUse : ~mu16_4
|
||||
@@ -6584,7 +6852,7 @@ struct_init.cpp:
|
||||
# 36| mu36_4(unknown) = UnmodeledDefinition :
|
||||
# 36| r36_5(glval<char *>) = VariableAddress[name1] :
|
||||
# 36| mu36_6(char *) = InitializeParameter[name1] : &:r36_5
|
||||
# 36| r36_7(char *) = Load : &:r36_5, ~mu36_6
|
||||
# 36| r36_7(char *) = Load : &:r36_5, ~mu36_4
|
||||
# 36| mu36_8(unknown) = InitializeIndirection[name1] : &:r36_7
|
||||
# 37| r37_1(glval<bool>) = VariableAddress[static_infos#init] :
|
||||
# 37| r37_2(bool) = Load : &:r37_1, ~mu36_4
|
||||
@@ -6601,7 +6869,7 @@ struct_init.cpp:
|
||||
# 41| v41_6(void) = ^BufferReadSideEffect[0] : &:r41_3, ~mu36_4
|
||||
# 41| mu41_7(unknown) = ^BufferMayWriteSideEffect[0] : &:r41_3
|
||||
# 42| v42_1(void) = NoOp :
|
||||
# 36| v36_9(void) = ReturnIndirection : &:r36_7, ~mu36_4
|
||||
# 36| v36_9(void) = ReturnIndirection[name1] : &:r36_7, ~mu36_4
|
||||
# 36| v36_10(void) = ReturnVoid :
|
||||
# 36| v36_11(void) = UnmodeledUse : mu*
|
||||
# 36| v36_12(void) = AliasedUse : ~mu36_4
|
||||
|
||||
@@ -13,6 +13,7 @@ instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -13,6 +13,7 @@ instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -13,6 +13,7 @@ instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -89,7 +89,7 @@ ssa.cpp:
|
||||
# 28| r28_12(int) = Load : &:r28_11, m28_1
|
||||
# 28| r28_13(int) = Add : r28_8, r28_12
|
||||
# 28| m28_14(int) = Store : &:r28_4, r28_13
|
||||
# 13| v13_14(void) = ReturnIndirection : &:r13_8, m28_3
|
||||
# 13| v13_14(void) = ReturnIndirection[p] : &:r13_8, m28_3
|
||||
# 13| r13_15(glval<int>) = VariableAddress[#return] :
|
||||
# 13| v13_16(void) = ReturnValue : &:r13_15, m28_14
|
||||
# 13| v13_17(void) = UnmodeledUse : mu*
|
||||
@@ -257,12 +257,12 @@ ssa.cpp:
|
||||
#-----| Goto (back edge) -> Block 1
|
||||
|
||||
# 71| Block 3
|
||||
# 71| v71_1(void) = NoOp :
|
||||
# 68| v68_12(void) = ReturnIndirection : &:r68_10, m68_11
|
||||
# 68| v68_13(void) = ReturnVoid :
|
||||
# 68| v68_14(void) = UnmodeledUse : mu*
|
||||
# 68| v68_15(void) = AliasedUse : ~m69_3
|
||||
# 68| v68_16(void) = ExitFunction :
|
||||
# 71| v71_1(void) = NoOp :
|
||||
# 68| v68_12(void) = ReturnIndirection[p] : &:r68_10, m68_11
|
||||
# 68| v68_13(void) = ReturnVoid :
|
||||
# 68| v68_14(void) = UnmodeledUse : mu*
|
||||
# 68| v68_15(void) = AliasedUse : ~m69_3
|
||||
# 68| v68_16(void) = ExitFunction :
|
||||
|
||||
# 75| void ScalarPhi(bool)
|
||||
# 75| Block 0
|
||||
@@ -806,7 +806,7 @@ ssa.cpp:
|
||||
# 181| r181_3(int *) = Load : &:r181_2, m179_7
|
||||
# 181| r181_4(int) = Load : &:r181_3, ~m179_9
|
||||
# 181| m181_5(int) = Store : &:r181_1, r181_4
|
||||
# 179| v179_10(void) = ReturnIndirection : &:r179_8, m179_9
|
||||
# 179| v179_10(void) = ReturnIndirection[p] : &:r179_8, m179_9
|
||||
# 179| r179_11(glval<int>) = VariableAddress[#return] :
|
||||
# 179| v179_12(void) = ReturnValue : &:r179_11, m181_5
|
||||
# 179| v179_13(void) = UnmodeledUse : mu*
|
||||
@@ -853,10 +853,10 @@ ssa.cpp:
|
||||
# 186| m186_1(unknown) = InlineAsm : ~m184_15, 0:r189_3, 1:r189_6, 2:r190_3, 3:r190_6
|
||||
# 186| m186_2(unknown) = Chi : total:m184_15, partial:m186_1
|
||||
# 192| v192_1(void) = NoOp :
|
||||
# 184| v184_24(void) = ReturnIndirection : &:r184_8, ~m186_2
|
||||
# 184| v184_25(void) = ReturnIndirection : &:r184_13, ~m186_2
|
||||
# 184| v184_26(void) = ReturnIndirection : &:r184_18, m184_19
|
||||
# 184| v184_27(void) = ReturnIndirection : &:r184_22, m184_23
|
||||
# 184| v184_24(void) = ReturnIndirection[a] : &:r184_8, ~m186_2
|
||||
# 184| v184_25(void) = ReturnIndirection[b] : &:r184_13, ~m186_2
|
||||
# 184| v184_26(void) = ReturnIndirection[c] : &:r184_18, m184_19
|
||||
# 184| v184_27(void) = ReturnIndirection[d] : &:r184_22, m184_23
|
||||
# 184| v184_28(void) = ReturnVoid :
|
||||
# 184| v184_29(void) = UnmodeledUse : mu*
|
||||
# 184| v184_30(void) = AliasedUse : ~m186_2
|
||||
@@ -913,8 +913,8 @@ ssa.cpp:
|
||||
# 202| r202_2(glval<int>) = VariableAddress[ret] :
|
||||
# 202| r202_3(int) = Load : &:r202_2, m201_8
|
||||
# 202| m202_4(int) = Store : &:r202_1, r202_3
|
||||
# 198| v198_16(void) = ReturnIndirection : &:r198_8, m198_9
|
||||
# 198| v198_17(void) = ReturnIndirection : &:r198_12, m198_13
|
||||
# 198| v198_16(void) = ReturnIndirection[str1] : &:r198_8, m198_9
|
||||
# 198| v198_17(void) = ReturnIndirection[str2] : &:r198_12, m198_13
|
||||
# 198| r198_18(glval<int>) = VariableAddress[#return] :
|
||||
# 198| v198_19(void) = ReturnValue : &:r198_18, m202_4
|
||||
# 198| v198_20(void) = UnmodeledUse : mu*
|
||||
@@ -1162,17 +1162,19 @@ ssa.cpp:
|
||||
# 248| r248_8(void *) = Call : func:r248_2, 0:r248_7
|
||||
# 248| m248_9(unknown) = ^CallSideEffect : ~m247_10
|
||||
# 248| m248_10(unknown) = Chi : total:m247_10, partial:m248_9
|
||||
# 248| r248_11(char *) = Convert : r248_8
|
||||
# 248| m248_12(char *) = Store : &:r248_1, r248_11
|
||||
# 248| m248_11(unknown) = ^InitializeDynamicAllocation : &:r248_8
|
||||
# 248| m248_12(unknown) = Chi : total:m248_10, partial:m248_11
|
||||
# 248| r248_13(char *) = Convert : r248_8
|
||||
# 248| m248_14(char *) = Store : &:r248_1, r248_13
|
||||
# 249| r249_1(char) = Constant[97] :
|
||||
# 249| r249_2(glval<char *>) = VariableAddress[src] :
|
||||
# 249| r249_3(char *) = Load : &:r249_2, m247_7
|
||||
# 249| r249_4(glval<char>) = CopyValue : r249_3
|
||||
# 249| m249_5(char) = Store : &:r249_4, r249_1
|
||||
# 249| m249_6(unknown) = Chi : total:m248_10, partial:m249_5
|
||||
# 249| m249_6(unknown) = Chi : total:m248_12, partial:m249_5
|
||||
# 250| r250_1(glval<unknown>) = FunctionAddress[memcpy] :
|
||||
# 250| r250_2(glval<char *>) = VariableAddress[dst] :
|
||||
# 250| r250_3(char *) = Load : &:r250_2, m248_12
|
||||
# 250| r250_3(char *) = Load : &:r250_2, m248_14
|
||||
# 250| r250_4(void *) = Convert : r250_3
|
||||
# 250| r250_5(glval<char *>) = VariableAddress[src] :
|
||||
# 250| r250_6(char *) = Load : &:r250_5, m247_7
|
||||
@@ -1185,9 +1187,9 @@ ssa.cpp:
|
||||
# 250| m250_13(unknown) = Chi : total:m249_6, partial:m250_12
|
||||
# 251| r251_1(glval<char *>) = VariableAddress[#return] :
|
||||
# 251| r251_2(glval<char *>) = VariableAddress[dst] :
|
||||
# 251| r251_3(char *) = Load : &:r251_2, m248_12
|
||||
# 251| r251_3(char *) = Load : &:r251_2, m248_14
|
||||
# 251| m251_4(char *) = Store : &:r251_1, r251_3
|
||||
# 247| v247_13(void) = ReturnIndirection : &:r247_8, ~m250_13
|
||||
# 247| v247_13(void) = ReturnIndirection[src] : &:r247_8, ~m250_13
|
||||
# 247| r247_14(glval<char *>) = VariableAddress[#return] :
|
||||
# 247| v247_15(void) = ReturnValue : &:r247_14, m251_4
|
||||
# 247| v247_16(void) = UnmodeledUse : mu*
|
||||
@@ -1281,7 +1283,7 @@ ssa.cpp:
|
||||
# 271| r271_2(glval<void *>) = VariableAddress[buf] :
|
||||
# 271| r271_3(void *) = Load : &:r271_2, m269_10
|
||||
# 271| m271_4(void *) = Store : &:r271_1, r271_3
|
||||
# 268| v268_13(void) = ReturnIndirection : &:r268_8, ~m270_11
|
||||
# 268| v268_13(void) = ReturnIndirection[s] : &:r268_8, ~m270_11
|
||||
# 268| r268_14(glval<void *>) = VariableAddress[#return] :
|
||||
# 268| v268_15(void) = ReturnValue : &:r268_14, m271_4
|
||||
# 268| v268_16(void) = UnmodeledUse : mu*
|
||||
@@ -1345,3 +1347,189 @@ ssa.cpp:
|
||||
# 275| v275_13(void) = UnmodeledUse : mu*
|
||||
# 275| v275_14(void) = AliasedUse : ~m281_2
|
||||
# 275| v275_15(void) = ExitFunction :
|
||||
|
||||
# 286| void A::A(int)
|
||||
# 286| Block 0
|
||||
# 286| v286_1(void) = EnterFunction :
|
||||
# 286| m286_2(unknown) = AliasedDefinition :
|
||||
# 286| m286_3(unknown) = InitializeNonLocal :
|
||||
# 286| m286_4(unknown) = Chi : total:m286_2, partial:m286_3
|
||||
# 286| mu286_5(unknown) = UnmodeledDefinition :
|
||||
# 286| r286_6(glval<A>) = InitializeThis :
|
||||
# 286| r286_7(glval<int>) = VariableAddress[x] :
|
||||
# 286| m286_8(int) = InitializeParameter[x] : &:r286_7
|
||||
# 286| v286_9(void) = NoOp :
|
||||
# 286| v286_10(void) = ReturnVoid :
|
||||
# 286| v286_11(void) = UnmodeledUse : mu*
|
||||
# 286| v286_12(void) = AliasedUse : m286_3
|
||||
# 286| v286_13(void) = ExitFunction :
|
||||
|
||||
# 287| void A::A(A*)
|
||||
# 287| Block 0
|
||||
# 287| v287_1(void) = EnterFunction :
|
||||
# 287| m287_2(unknown) = AliasedDefinition :
|
||||
# 287| m287_3(unknown) = InitializeNonLocal :
|
||||
# 287| m287_4(unknown) = Chi : total:m287_2, partial:m287_3
|
||||
# 287| mu287_5(unknown) = UnmodeledDefinition :
|
||||
# 287| r287_6(glval<A>) = InitializeThis :
|
||||
# 287| r287_7(glval<A *>) = VariableAddress[p#0] :
|
||||
# 287| m287_8(A *) = InitializeParameter[p#0] : &:r287_7
|
||||
# 287| r287_9(A *) = Load : &:r287_7, m287_8
|
||||
# 287| m287_10(unknown) = InitializeIndirection[p#0] : &:r287_9
|
||||
# 287| v287_11(void) = NoOp :
|
||||
# 287| v287_12(void) = ReturnIndirection[p#0] : &:r287_9, m287_10
|
||||
# 287| v287_13(void) = ReturnVoid :
|
||||
# 287| v287_14(void) = UnmodeledUse : mu*
|
||||
# 287| v287_15(void) = AliasedUse : m287_3
|
||||
# 287| v287_16(void) = ExitFunction :
|
||||
|
||||
# 288| void A::A()
|
||||
# 288| Block 0
|
||||
# 288| v288_1(void) = EnterFunction :
|
||||
# 288| m288_2(unknown) = AliasedDefinition :
|
||||
# 288| m288_3(unknown) = InitializeNonLocal :
|
||||
# 288| m288_4(unknown) = Chi : total:m288_2, partial:m288_3
|
||||
# 288| mu288_5(unknown) = UnmodeledDefinition :
|
||||
# 288| r288_6(glval<A>) = InitializeThis :
|
||||
# 288| v288_7(void) = NoOp :
|
||||
# 288| v288_8(void) = ReturnVoid :
|
||||
# 288| v288_9(void) = UnmodeledUse : mu*
|
||||
# 288| v288_10(void) = AliasedUse : m288_3
|
||||
# 288| v288_11(void) = ExitFunction :
|
||||
|
||||
# 291| Point* NewAliasing(int)
|
||||
# 291| Block 0
|
||||
# 291| v291_1(void) = EnterFunction :
|
||||
# 291| m291_2(unknown) = AliasedDefinition :
|
||||
# 291| m291_3(unknown) = InitializeNonLocal :
|
||||
# 291| m291_4(unknown) = Chi : total:m291_2, partial:m291_3
|
||||
# 291| mu291_5(unknown) = UnmodeledDefinition :
|
||||
# 291| r291_6(glval<int>) = VariableAddress[x] :
|
||||
# 291| m291_7(int) = InitializeParameter[x] : &:r291_6
|
||||
# 292| r292_1(glval<Point *>) = VariableAddress[p] :
|
||||
# 292| r292_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 292| r292_3(unsigned long) = Constant[8] :
|
||||
# 292| r292_4(void *) = Call : func:r292_2, 0:r292_3
|
||||
# 292| m292_5(unknown) = ^CallSideEffect : ~m291_4
|
||||
# 292| m292_6(unknown) = Chi : total:m291_4, partial:m292_5
|
||||
# 292| m292_7(unknown) = ^InitializeDynamicAllocation : &:r292_4
|
||||
# 292| r292_8(Point *) = Convert : r292_4
|
||||
# 292| m292_9(Point *) = Store : &:r292_1, r292_8
|
||||
# 293| r293_1(glval<Point *>) = VariableAddress[q] :
|
||||
# 293| r293_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 293| r293_3(unsigned long) = Constant[8] :
|
||||
# 293| r293_4(void *) = Call : func:r293_2, 0:r293_3
|
||||
# 293| m293_5(unknown) = ^CallSideEffect : ~m292_6
|
||||
# 293| m293_6(unknown) = Chi : total:m292_6, partial:m293_5
|
||||
# 293| m293_7(unknown) = ^InitializeDynamicAllocation : &:r293_4
|
||||
# 293| r293_8(Point *) = Convert : r293_4
|
||||
# 293| m293_9(Point *) = Store : &:r293_1, r293_8
|
||||
# 294| r294_1(glval<int>) = VariableAddress[j] :
|
||||
# 294| r294_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 294| r294_3(unsigned long) = Constant[4] :
|
||||
# 294| r294_4(void *) = Call : func:r294_2, 0:r294_3
|
||||
# 294| m294_5(unknown) = ^CallSideEffect : ~m293_6
|
||||
# 294| m294_6(unknown) = Chi : total:m293_6, partial:m294_5
|
||||
# 294| m294_7(unknown) = ^InitializeDynamicAllocation : &:r294_4
|
||||
# 294| r294_8(A *) = Convert : r294_4
|
||||
# 294| r294_9(glval<unknown>) = FunctionAddress[A] :
|
||||
# 294| r294_10(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 294| r294_11(unsigned long) = Constant[4] :
|
||||
# 294| r294_12(void *) = Call : func:r294_10, 0:r294_11
|
||||
# 294| m294_13(unknown) = ^CallSideEffect : ~m294_6
|
||||
# 294| m294_14(unknown) = Chi : total:m294_6, partial:m294_13
|
||||
# 294| m294_15(unknown) = ^InitializeDynamicAllocation : &:r294_12
|
||||
# 294| r294_16(A *) = Convert : r294_12
|
||||
# 294| r294_17(glval<unknown>) = FunctionAddress[A] :
|
||||
# 294| r294_18(glval<int>) = VariableAddress[x] :
|
||||
# 294| r294_19(int) = Load : &:r294_18, m291_7
|
||||
# 294| v294_20(void) = Call : func:r294_17, this:r294_16, 0:r294_19
|
||||
# 294| m294_21(unknown) = ^CallSideEffect : ~m294_14
|
||||
# 294| m294_22(unknown) = Chi : total:m294_14, partial:m294_21
|
||||
# 294| m294_23(A) = ^IndirectMayWriteSideEffect[-1] : &:r294_16
|
||||
# 294| m294_24(unknown) = Chi : total:m294_15, partial:m294_23
|
||||
# 294| v294_25(void) = Call : func:r294_9, this:r294_8, 0:r294_16
|
||||
# 294| m294_26(unknown) = ^CallSideEffect : ~m294_22
|
||||
# 294| m294_27(unknown) = Chi : total:m294_22, partial:m294_26
|
||||
# 294| m294_28(A) = ^IndirectMayWriteSideEffect[-1] : &:r294_8
|
||||
# 294| m294_29(unknown) = Chi : total:m294_7, partial:m294_28
|
||||
# 294| v294_30(void) = ^BufferReadSideEffect[0] : &:r294_16, ~m294_24
|
||||
# 294| m294_31(unknown) = ^BufferMayWriteSideEffect[0] : &:r294_16
|
||||
# 294| m294_32(unknown) = Chi : total:m294_24, partial:m294_31
|
||||
# 294| r294_33(glval<int>) = FieldAddress[i] : r294_8
|
||||
# 294| r294_34(int) = Load : &:r294_33, ~m294_29
|
||||
# 294| m294_35(int) = Store : &:r294_1, r294_34
|
||||
# 295| r295_1(glval<A *>) = VariableAddress[a] :
|
||||
# 295| r295_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 295| r295_3(unsigned long) = Constant[4] :
|
||||
# 295| r295_4(void *) = Call : func:r295_2, 0:r295_3
|
||||
# 295| m295_5(unknown) = ^CallSideEffect : ~m294_27
|
||||
# 295| m295_6(unknown) = Chi : total:m294_27, partial:m295_5
|
||||
# 295| m295_7(unknown) = ^InitializeDynamicAllocation : &:r295_4
|
||||
# 295| r295_8(A *) = Convert : r295_4
|
||||
# 295| r295_9(glval<unknown>) = FunctionAddress[A] :
|
||||
# 295| v295_10(void) = Call : func:r295_9, this:r295_8
|
||||
# 295| m295_11(unknown) = ^CallSideEffect : ~m295_6
|
||||
# 295| m295_12(unknown) = Chi : total:m295_6, partial:m295_11
|
||||
# 295| m295_13(A) = ^IndirectMayWriteSideEffect[-1] : &:r295_8
|
||||
# 295| m295_14(unknown) = Chi : total:m295_7, partial:m295_13
|
||||
# 295| m295_15(A *) = Store : &:r295_1, r295_8
|
||||
# 296| r296_1(glval<Point *>) = VariableAddress[#return] :
|
||||
# 296| r296_2(glval<Point *>) = VariableAddress[p] :
|
||||
# 296| r296_3(Point *) = Load : &:r296_2, m292_9
|
||||
# 296| m296_4(Point *) = Store : &:r296_1, r296_3
|
||||
# 291| r291_8(glval<Point *>) = VariableAddress[#return] :
|
||||
# 291| v291_9(void) = ReturnValue : &:r291_8, m296_4
|
||||
# 291| v291_10(void) = UnmodeledUse : mu*
|
||||
# 291| v291_11(void) = AliasedUse : ~m295_12
|
||||
# 291| v291_12(void) = ExitFunction :
|
||||
|
||||
# 301| int main(int, char**)
|
||||
# 301| Block 0
|
||||
# 301| v301_1(void) = EnterFunction :
|
||||
# 301| m301_2(unknown) = AliasedDefinition :
|
||||
# 301| m301_3(unknown) = InitializeNonLocal :
|
||||
# 301| m301_4(unknown) = Chi : total:m301_2, partial:m301_3
|
||||
# 301| mu301_5(unknown) = UnmodeledDefinition :
|
||||
# 301| r301_6(glval<int>) = VariableAddress[argc] :
|
||||
# 301| m301_7(int) = InitializeParameter[argc] : &:r301_6
|
||||
# 301| r301_8(glval<char **>) = VariableAddress[argv] :
|
||||
# 301| m301_9(char **) = InitializeParameter[argv] : &:r301_8
|
||||
# 301| r301_10(char **) = Load : &:r301_8, m301_9
|
||||
# 301| m301_11(unknown) = InitializeIndirection[argv] : &:r301_10
|
||||
# 301| m301_12(unknown) = Chi : total:m301_4, partial:m301_11
|
||||
# 302| r302_1(glval<unknown>) = FunctionAddress[unknownFunction] :
|
||||
# 302| r302_2(glval<int>) = VariableAddress[argc] :
|
||||
# 302| r302_3(int) = Load : &:r302_2, m301_7
|
||||
# 302| r302_4(glval<char **>) = VariableAddress[argv] :
|
||||
# 302| r302_5(char **) = Load : &:r302_4, m301_9
|
||||
# 302| v302_6(void) = Call : func:r302_1, 0:r302_3, 1:r302_5
|
||||
# 302| m302_7(unknown) = ^CallSideEffect : ~m301_12
|
||||
# 302| m302_8(unknown) = Chi : total:m301_12, partial:m302_7
|
||||
# 302| v302_9(void) = ^BufferReadSideEffect[1] : &:r302_5, ~m302_8
|
||||
# 302| m302_10(unknown) = ^BufferMayWriteSideEffect[1] : &:r302_5
|
||||
# 302| m302_11(unknown) = Chi : total:m302_8, partial:m302_10
|
||||
# 303| r303_1(glval<unknown>) = FunctionAddress[unknownFunction] :
|
||||
# 303| r303_2(glval<int>) = VariableAddress[argc] :
|
||||
# 303| r303_3(int) = Load : &:r303_2, m301_7
|
||||
# 303| r303_4(glval<char **>) = VariableAddress[argv] :
|
||||
# 303| r303_5(char **) = Load : &:r303_4, m301_9
|
||||
# 303| v303_6(void) = Call : func:r303_1, 0:r303_3, 1:r303_5
|
||||
# 303| m303_7(unknown) = ^CallSideEffect : ~m302_11
|
||||
# 303| m303_8(unknown) = Chi : total:m302_11, partial:m303_7
|
||||
# 303| v303_9(void) = ^BufferReadSideEffect[1] : &:r303_5, ~m303_8
|
||||
# 303| m303_10(unknown) = ^BufferMayWriteSideEffect[1] : &:r303_5
|
||||
# 303| m303_11(unknown) = Chi : total:m303_8, partial:m303_10
|
||||
# 304| r304_1(glval<int>) = VariableAddress[#return] :
|
||||
# 304| r304_2(glval<char **>) = VariableAddress[argv] :
|
||||
# 304| r304_3(char **) = Load : &:r304_2, m301_9
|
||||
# 304| r304_4(char *) = Load : &:r304_3, ~m303_11
|
||||
# 304| r304_5(char) = Load : &:r304_4, ~m303_11
|
||||
# 304| r304_6(int) = Convert : r304_5
|
||||
# 304| m304_7(int) = Store : &:r304_1, r304_6
|
||||
# 301| v301_13(void) = ReturnIndirection[argv] : &:r301_10, ~m303_11
|
||||
# 301| r301_14(glval<int>) = VariableAddress[#return] :
|
||||
# 301| v301_15(void) = ReturnValue : &:r301_14, m304_7
|
||||
# 301| v301_16(void) = UnmodeledUse : mu*
|
||||
# 301| v301_17(void) = AliasedUse : ~m303_11
|
||||
# 301| v301_18(void) = ExitFunction :
|
||||
|
||||
@@ -89,7 +89,7 @@ ssa.cpp:
|
||||
# 28| r28_12(int) = Load : &:r28_11, m28_1
|
||||
# 28| r28_13(int) = Add : r28_8, r28_12
|
||||
# 28| m28_14(int) = Store : &:r28_4, r28_13
|
||||
# 13| v13_14(void) = ReturnIndirection : &:r13_8, m28_3
|
||||
# 13| v13_14(void) = ReturnIndirection[p] : &:r13_8, m28_3
|
||||
# 13| r13_15(glval<int>) = VariableAddress[#return] :
|
||||
# 13| v13_16(void) = ReturnValue : &:r13_15, m28_14
|
||||
# 13| v13_17(void) = UnmodeledUse : mu*
|
||||
@@ -257,12 +257,12 @@ ssa.cpp:
|
||||
#-----| Goto (back edge) -> Block 1
|
||||
|
||||
# 71| Block 3
|
||||
# 71| v71_1(void) = NoOp :
|
||||
# 68| v68_12(void) = ReturnIndirection : &:r68_10, m68_11
|
||||
# 68| v68_13(void) = ReturnVoid :
|
||||
# 68| v68_14(void) = UnmodeledUse : mu*
|
||||
# 68| v68_15(void) = AliasedUse : ~m69_3
|
||||
# 68| v68_16(void) = ExitFunction :
|
||||
# 71| v71_1(void) = NoOp :
|
||||
# 68| v68_12(void) = ReturnIndirection[p] : &:r68_10, m68_11
|
||||
# 68| v68_13(void) = ReturnVoid :
|
||||
# 68| v68_14(void) = UnmodeledUse : mu*
|
||||
# 68| v68_15(void) = AliasedUse : ~m69_3
|
||||
# 68| v68_16(void) = ExitFunction :
|
||||
|
||||
# 75| void ScalarPhi(bool)
|
||||
# 75| Block 0
|
||||
@@ -803,7 +803,7 @@ ssa.cpp:
|
||||
# 181| r181_3(int *) = Load : &:r181_2, m179_7
|
||||
# 181| r181_4(int) = Load : &:r181_3, ~m179_9
|
||||
# 181| m181_5(int) = Store : &:r181_1, r181_4
|
||||
# 179| v179_10(void) = ReturnIndirection : &:r179_8, m179_9
|
||||
# 179| v179_10(void) = ReturnIndirection[p] : &:r179_8, m179_9
|
||||
# 179| r179_11(glval<int>) = VariableAddress[#return] :
|
||||
# 179| v179_12(void) = ReturnValue : &:r179_11, m181_5
|
||||
# 179| v179_13(void) = UnmodeledUse : mu*
|
||||
@@ -848,10 +848,10 @@ ssa.cpp:
|
||||
# 186| m186_1(unknown) = InlineAsm : ~m184_4, 0:r189_3, 1:r189_6, 2:r190_3, 3:r190_6
|
||||
# 186| m186_2(unknown) = Chi : total:m184_4, partial:m186_1
|
||||
# 192| v192_1(void) = NoOp :
|
||||
# 184| v184_22(void) = ReturnIndirection : &:r184_8, m184_9
|
||||
# 184| v184_23(void) = ReturnIndirection : &:r184_12, m184_13
|
||||
# 184| v184_24(void) = ReturnIndirection : &:r184_16, m184_17
|
||||
# 184| v184_25(void) = ReturnIndirection : &:r184_20, m184_21
|
||||
# 184| v184_22(void) = ReturnIndirection[a] : &:r184_8, m184_9
|
||||
# 184| v184_23(void) = ReturnIndirection[b] : &:r184_12, m184_13
|
||||
# 184| v184_24(void) = ReturnIndirection[c] : &:r184_16, m184_17
|
||||
# 184| v184_25(void) = ReturnIndirection[d] : &:r184_20, m184_21
|
||||
# 184| v184_26(void) = ReturnVoid :
|
||||
# 184| v184_27(void) = UnmodeledUse : mu*
|
||||
# 184| v184_28(void) = AliasedUse : ~m186_2
|
||||
@@ -908,8 +908,8 @@ ssa.cpp:
|
||||
# 202| r202_2(glval<int>) = VariableAddress[ret] :
|
||||
# 202| r202_3(int) = Load : &:r202_2, m201_8
|
||||
# 202| m202_4(int) = Store : &:r202_1, r202_3
|
||||
# 198| v198_16(void) = ReturnIndirection : &:r198_8, m198_9
|
||||
# 198| v198_17(void) = ReturnIndirection : &:r198_12, m198_13
|
||||
# 198| v198_16(void) = ReturnIndirection[str1] : &:r198_8, m198_9
|
||||
# 198| v198_17(void) = ReturnIndirection[str2] : &:r198_12, m198_13
|
||||
# 198| r198_18(glval<int>) = VariableAddress[#return] :
|
||||
# 198| v198_19(void) = ReturnValue : &:r198_18, m202_4
|
||||
# 198| v198_20(void) = UnmodeledUse : mu*
|
||||
@@ -1154,8 +1154,9 @@ ssa.cpp:
|
||||
# 248| r248_8(void *) = Call : func:r248_2, 0:r248_7
|
||||
# 248| m248_9(unknown) = ^CallSideEffect : ~m247_4
|
||||
# 248| m248_10(unknown) = Chi : total:m247_4, partial:m248_9
|
||||
# 248| r248_11(char *) = Convert : r248_8
|
||||
# 248| m248_12(char *) = Store : &:r248_1, r248_11
|
||||
# 248| m248_11(unknown) = ^InitializeDynamicAllocation : &:r248_8
|
||||
# 248| r248_12(char *) = Convert : r248_8
|
||||
# 248| m248_13(char *) = Store : &:r248_1, r248_12
|
||||
# 249| r249_1(char) = Constant[97] :
|
||||
# 249| r249_2(glval<char *>) = VariableAddress[src] :
|
||||
# 249| r249_3(char *) = Load : &:r249_2, m247_7
|
||||
@@ -1164,7 +1165,7 @@ ssa.cpp:
|
||||
# 249| m249_6(unknown) = Chi : total:m247_9, partial:m249_5
|
||||
# 250| r250_1(glval<unknown>) = FunctionAddress[memcpy] :
|
||||
# 250| r250_2(glval<char *>) = VariableAddress[dst] :
|
||||
# 250| r250_3(char *) = Load : &:r250_2, m248_12
|
||||
# 250| r250_3(char *) = Load : &:r250_2, m248_13
|
||||
# 250| r250_4(void *) = Convert : r250_3
|
||||
# 250| r250_5(glval<char *>) = VariableAddress[src] :
|
||||
# 250| r250_6(char *) = Load : &:r250_5, m247_7
|
||||
@@ -1174,16 +1175,16 @@ ssa.cpp:
|
||||
# 250| r250_10(void *) = Call : func:r250_1, 0:r250_4, 1:r250_7, 2:r250_9
|
||||
# 250| v250_11(void) = ^SizedBufferReadSideEffect[1] : &:r250_7, r250_9, ~m249_6
|
||||
# 250| m250_12(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r250_4, r250_9
|
||||
# 250| m250_13(unknown) = Chi : total:m248_10, partial:m250_12
|
||||
# 250| m250_13(unknown) = Chi : total:m248_11, partial:m250_12
|
||||
# 251| r251_1(glval<char *>) = VariableAddress[#return] :
|
||||
# 251| r251_2(glval<char *>) = VariableAddress[dst] :
|
||||
# 251| r251_3(char *) = Load : &:r251_2, m248_12
|
||||
# 251| r251_3(char *) = Load : &:r251_2, m248_13
|
||||
# 251| m251_4(char *) = Store : &:r251_1, r251_3
|
||||
# 247| v247_12(void) = ReturnIndirection : &:r247_8, m249_6
|
||||
# 247| v247_12(void) = ReturnIndirection[src] : &:r247_8, m249_6
|
||||
# 247| r247_13(glval<char *>) = VariableAddress[#return] :
|
||||
# 247| v247_14(void) = ReturnValue : &:r247_13, m251_4
|
||||
# 247| v247_15(void) = UnmodeledUse : mu*
|
||||
# 247| v247_16(void) = AliasedUse : ~m250_13
|
||||
# 247| v247_16(void) = AliasedUse : ~m248_10
|
||||
# 247| v247_17(void) = ExitFunction :
|
||||
|
||||
# 254| char StringLiteralAliasing2(bool)
|
||||
@@ -1271,7 +1272,7 @@ ssa.cpp:
|
||||
# 271| r271_2(glval<void *>) = VariableAddress[buf] :
|
||||
# 271| r271_3(void *) = Load : &:r271_2, m269_9
|
||||
# 271| m271_4(void *) = Store : &:r271_1, r271_3
|
||||
# 268| v268_12(void) = ReturnIndirection : &:r268_8, m268_9
|
||||
# 268| v268_12(void) = ReturnIndirection[s] : &:r268_8, m268_9
|
||||
# 268| r268_13(glval<void *>) = VariableAddress[#return] :
|
||||
# 268| v268_14(void) = ReturnValue : &:r268_13, m271_4
|
||||
# 268| v268_15(void) = UnmodeledUse : mu*
|
||||
@@ -1334,3 +1335,188 @@ ssa.cpp:
|
||||
# 275| v275_13(void) = UnmodeledUse : mu*
|
||||
# 275| v275_14(void) = AliasedUse : ~m277_5
|
||||
# 275| v275_15(void) = ExitFunction :
|
||||
|
||||
# 286| void A::A(int)
|
||||
# 286| Block 0
|
||||
# 286| v286_1(void) = EnterFunction :
|
||||
# 286| m286_2(unknown) = AliasedDefinition :
|
||||
# 286| m286_3(unknown) = InitializeNonLocal :
|
||||
# 286| m286_4(unknown) = Chi : total:m286_2, partial:m286_3
|
||||
# 286| mu286_5(unknown) = UnmodeledDefinition :
|
||||
# 286| r286_6(glval<A>) = InitializeThis :
|
||||
# 286| r286_7(glval<int>) = VariableAddress[x] :
|
||||
# 286| m286_8(int) = InitializeParameter[x] : &:r286_7
|
||||
# 286| v286_9(void) = NoOp :
|
||||
# 286| v286_10(void) = ReturnVoid :
|
||||
# 286| v286_11(void) = UnmodeledUse : mu*
|
||||
# 286| v286_12(void) = AliasedUse : m286_3
|
||||
# 286| v286_13(void) = ExitFunction :
|
||||
|
||||
# 287| void A::A(A*)
|
||||
# 287| Block 0
|
||||
# 287| v287_1(void) = EnterFunction :
|
||||
# 287| m287_2(unknown) = AliasedDefinition :
|
||||
# 287| m287_3(unknown) = InitializeNonLocal :
|
||||
# 287| m287_4(unknown) = Chi : total:m287_2, partial:m287_3
|
||||
# 287| mu287_5(unknown) = UnmodeledDefinition :
|
||||
# 287| r287_6(glval<A>) = InitializeThis :
|
||||
# 287| r287_7(glval<A *>) = VariableAddress[p#0] :
|
||||
# 287| m287_8(A *) = InitializeParameter[p#0] : &:r287_7
|
||||
# 287| r287_9(A *) = Load : &:r287_7, m287_8
|
||||
# 287| m287_10(unknown) = InitializeIndirection[p#0] : &:r287_9
|
||||
# 287| v287_11(void) = NoOp :
|
||||
# 287| v287_12(void) = ReturnIndirection[p#0] : &:r287_9, m287_10
|
||||
# 287| v287_13(void) = ReturnVoid :
|
||||
# 287| v287_14(void) = UnmodeledUse : mu*
|
||||
# 287| v287_15(void) = AliasedUse : m287_3
|
||||
# 287| v287_16(void) = ExitFunction :
|
||||
|
||||
# 288| void A::A()
|
||||
# 288| Block 0
|
||||
# 288| v288_1(void) = EnterFunction :
|
||||
# 288| m288_2(unknown) = AliasedDefinition :
|
||||
# 288| m288_3(unknown) = InitializeNonLocal :
|
||||
# 288| m288_4(unknown) = Chi : total:m288_2, partial:m288_3
|
||||
# 288| mu288_5(unknown) = UnmodeledDefinition :
|
||||
# 288| r288_6(glval<A>) = InitializeThis :
|
||||
# 288| v288_7(void) = NoOp :
|
||||
# 288| v288_8(void) = ReturnVoid :
|
||||
# 288| v288_9(void) = UnmodeledUse : mu*
|
||||
# 288| v288_10(void) = AliasedUse : m288_3
|
||||
# 288| v288_11(void) = ExitFunction :
|
||||
|
||||
# 291| Point* NewAliasing(int)
|
||||
# 291| Block 0
|
||||
# 291| v291_1(void) = EnterFunction :
|
||||
# 291| m291_2(unknown) = AliasedDefinition :
|
||||
# 291| m291_3(unknown) = InitializeNonLocal :
|
||||
# 291| m291_4(unknown) = Chi : total:m291_2, partial:m291_3
|
||||
# 291| mu291_5(unknown) = UnmodeledDefinition :
|
||||
# 291| r291_6(glval<int>) = VariableAddress[x] :
|
||||
# 291| m291_7(int) = InitializeParameter[x] : &:r291_6
|
||||
# 292| r292_1(glval<Point *>) = VariableAddress[p] :
|
||||
# 292| r292_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 292| r292_3(unsigned long) = Constant[8] :
|
||||
# 292| r292_4(void *) = Call : func:r292_2, 0:r292_3
|
||||
# 292| m292_5(unknown) = ^CallSideEffect : ~m291_4
|
||||
# 292| m292_6(unknown) = Chi : total:m291_4, partial:m292_5
|
||||
# 292| m292_7(unknown) = ^InitializeDynamicAllocation : &:r292_4
|
||||
# 292| r292_8(Point *) = Convert : r292_4
|
||||
# 292| m292_9(Point *) = Store : &:r292_1, r292_8
|
||||
# 293| r293_1(glval<Point *>) = VariableAddress[q] :
|
||||
# 293| r293_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 293| r293_3(unsigned long) = Constant[8] :
|
||||
# 293| r293_4(void *) = Call : func:r293_2, 0:r293_3
|
||||
# 293| m293_5(unknown) = ^CallSideEffect : ~m292_6
|
||||
# 293| m293_6(unknown) = Chi : total:m292_6, partial:m293_5
|
||||
# 293| m293_7(unknown) = ^InitializeDynamicAllocation : &:r293_4
|
||||
# 293| r293_8(Point *) = Convert : r293_4
|
||||
# 293| m293_9(Point *) = Store : &:r293_1, r293_8
|
||||
# 294| r294_1(glval<int>) = VariableAddress[j] :
|
||||
# 294| r294_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 294| r294_3(unsigned long) = Constant[4] :
|
||||
# 294| r294_4(void *) = Call : func:r294_2, 0:r294_3
|
||||
# 294| m294_5(unknown) = ^CallSideEffect : ~m293_6
|
||||
# 294| m294_6(unknown) = Chi : total:m293_6, partial:m294_5
|
||||
# 294| m294_7(unknown) = ^InitializeDynamicAllocation : &:r294_4
|
||||
# 294| r294_8(A *) = Convert : r294_4
|
||||
# 294| r294_9(glval<unknown>) = FunctionAddress[A] :
|
||||
# 294| r294_10(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 294| r294_11(unsigned long) = Constant[4] :
|
||||
# 294| r294_12(void *) = Call : func:r294_10, 0:r294_11
|
||||
# 294| m294_13(unknown) = ^CallSideEffect : ~m294_6
|
||||
# 294| m294_14(unknown) = Chi : total:m294_6, partial:m294_13
|
||||
# 294| m294_15(unknown) = ^InitializeDynamicAllocation : &:r294_12
|
||||
# 294| r294_16(A *) = Convert : r294_12
|
||||
# 294| r294_17(glval<unknown>) = FunctionAddress[A] :
|
||||
# 294| r294_18(glval<int>) = VariableAddress[x] :
|
||||
# 294| r294_19(int) = Load : &:r294_18, m291_7
|
||||
# 294| v294_20(void) = Call : func:r294_17, this:r294_16, 0:r294_19
|
||||
# 294| m294_21(unknown) = ^CallSideEffect : ~m294_14
|
||||
# 294| m294_22(unknown) = Chi : total:m294_14, partial:m294_21
|
||||
# 294| m294_23(A) = ^IndirectMayWriteSideEffect[-1] : &:r294_16
|
||||
# 294| m294_24(unknown) = Chi : total:m294_15, partial:m294_23
|
||||
# 294| v294_25(void) = Call : func:r294_9, this:r294_8, 0:r294_16
|
||||
# 294| m294_26(unknown) = ^CallSideEffect : ~m294_22
|
||||
# 294| m294_27(unknown) = Chi : total:m294_22, partial:m294_26
|
||||
# 294| m294_28(A) = ^IndirectMayWriteSideEffect[-1] : &:r294_8
|
||||
# 294| m294_29(unknown) = Chi : total:m294_7, partial:m294_28
|
||||
# 294| v294_30(void) = ^BufferReadSideEffect[0] : &:r294_16, ~m294_24
|
||||
# 294| m294_31(unknown) = ^BufferMayWriteSideEffect[0] : &:r294_16
|
||||
# 294| m294_32(unknown) = Chi : total:m294_24, partial:m294_31
|
||||
# 294| r294_33(glval<int>) = FieldAddress[i] : r294_8
|
||||
# 294| r294_34(int) = Load : &:r294_33, ~m294_29
|
||||
# 294| m294_35(int) = Store : &:r294_1, r294_34
|
||||
# 295| r295_1(glval<A *>) = VariableAddress[a] :
|
||||
# 295| r295_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 295| r295_3(unsigned long) = Constant[4] :
|
||||
# 295| r295_4(void *) = Call : func:r295_2, 0:r295_3
|
||||
# 295| m295_5(unknown) = ^CallSideEffect : ~m294_27
|
||||
# 295| m295_6(unknown) = Chi : total:m294_27, partial:m295_5
|
||||
# 295| m295_7(unknown) = ^InitializeDynamicAllocation : &:r295_4
|
||||
# 295| r295_8(A *) = Convert : r295_4
|
||||
# 295| r295_9(glval<unknown>) = FunctionAddress[A] :
|
||||
# 295| v295_10(void) = Call : func:r295_9, this:r295_8
|
||||
# 295| m295_11(unknown) = ^CallSideEffect : ~m295_6
|
||||
# 295| m295_12(unknown) = Chi : total:m295_6, partial:m295_11
|
||||
# 295| m295_13(A) = ^IndirectMayWriteSideEffect[-1] : &:r295_8
|
||||
# 295| m295_14(unknown) = Chi : total:m295_7, partial:m295_13
|
||||
# 295| m295_15(A *) = Store : &:r295_1, r295_8
|
||||
# 296| r296_1(glval<Point *>) = VariableAddress[#return] :
|
||||
# 296| r296_2(glval<Point *>) = VariableAddress[p] :
|
||||
# 296| r296_3(Point *) = Load : &:r296_2, m292_9
|
||||
# 296| m296_4(Point *) = Store : &:r296_1, r296_3
|
||||
# 291| r291_8(glval<Point *>) = VariableAddress[#return] :
|
||||
# 291| v291_9(void) = ReturnValue : &:r291_8, m296_4
|
||||
# 291| v291_10(void) = UnmodeledUse : mu*
|
||||
# 291| v291_11(void) = AliasedUse : ~m295_12
|
||||
# 291| v291_12(void) = ExitFunction :
|
||||
|
||||
# 301| int main(int, char**)
|
||||
# 301| Block 0
|
||||
# 301| v301_1(void) = EnterFunction :
|
||||
# 301| m301_2(unknown) = AliasedDefinition :
|
||||
# 301| m301_3(unknown) = InitializeNonLocal :
|
||||
# 301| m301_4(unknown) = Chi : total:m301_2, partial:m301_3
|
||||
# 301| mu301_5(unknown) = UnmodeledDefinition :
|
||||
# 301| r301_6(glval<int>) = VariableAddress[argc] :
|
||||
# 301| m301_7(int) = InitializeParameter[argc] : &:r301_6
|
||||
# 301| r301_8(glval<char **>) = VariableAddress[argv] :
|
||||
# 301| m301_9(char **) = InitializeParameter[argv] : &:r301_8
|
||||
# 301| r301_10(char **) = Load : &:r301_8, m301_9
|
||||
# 301| m301_11(unknown) = InitializeIndirection[argv] : &:r301_10
|
||||
# 302| r302_1(glval<unknown>) = FunctionAddress[unknownFunction] :
|
||||
# 302| r302_2(glval<int>) = VariableAddress[argc] :
|
||||
# 302| r302_3(int) = Load : &:r302_2, m301_7
|
||||
# 302| r302_4(glval<char **>) = VariableAddress[argv] :
|
||||
# 302| r302_5(char **) = Load : &:r302_4, m301_9
|
||||
# 302| v302_6(void) = Call : func:r302_1, 0:r302_3, 1:r302_5
|
||||
# 302| m302_7(unknown) = ^CallSideEffect : ~m301_4
|
||||
# 302| m302_8(unknown) = Chi : total:m301_4, partial:m302_7
|
||||
# 302| v302_9(void) = ^BufferReadSideEffect[1] : &:r302_5, ~m301_11
|
||||
# 302| m302_10(unknown) = ^BufferMayWriteSideEffect[1] : &:r302_5
|
||||
# 302| m302_11(char *) = Chi : total:m301_11, partial:m302_10
|
||||
# 303| r303_1(glval<unknown>) = FunctionAddress[unknownFunction] :
|
||||
# 303| r303_2(glval<int>) = VariableAddress[argc] :
|
||||
# 303| r303_3(int) = Load : &:r303_2, m301_7
|
||||
# 303| r303_4(glval<char **>) = VariableAddress[argv] :
|
||||
# 303| r303_5(char **) = Load : &:r303_4, m301_9
|
||||
# 303| v303_6(void) = Call : func:r303_1, 0:r303_3, 1:r303_5
|
||||
# 303| m303_7(unknown) = ^CallSideEffect : ~m302_8
|
||||
# 303| m303_8(unknown) = Chi : total:m302_8, partial:m303_7
|
||||
# 303| v303_9(void) = ^BufferReadSideEffect[1] : &:r303_5, ~m302_11
|
||||
# 303| m303_10(unknown) = ^BufferMayWriteSideEffect[1] : &:r303_5
|
||||
# 303| m303_11(char *) = Chi : total:m302_11, partial:m303_10
|
||||
# 304| r304_1(glval<int>) = VariableAddress[#return] :
|
||||
# 304| r304_2(glval<char **>) = VariableAddress[argv] :
|
||||
# 304| r304_3(char **) = Load : &:r304_2, m301_9
|
||||
# 304| r304_4(char *) = Load : &:r304_3, ~m303_11
|
||||
# 304| r304_5(char) = Load : &:r304_4, ~m303_8
|
||||
# 304| r304_6(int) = Convert : r304_5
|
||||
# 304| m304_7(int) = Store : &:r304_1, r304_6
|
||||
# 301| v301_12(void) = ReturnIndirection[argv] : &:r301_10, ~m303_11, m303_11
|
||||
# 301| r301_13(glval<int>) = VariableAddress[#return] :
|
||||
# 301| v301_14(void) = ReturnValue : &:r301_13, m304_7
|
||||
# 301| v301_15(void) = UnmodeledUse : mu*
|
||||
# 301| v301_16(void) = AliasedUse : ~m303_8
|
||||
# 301| v301_17(void) = ExitFunction :
|
||||
|
||||
@@ -9,6 +9,7 @@ instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
missingOperand
|
||||
unexpectedOperand
|
||||
duplicateOperand
|
||||
| ssa.cpp:301:27:301:30 | ReturnIndirection: argv | Instruction has 2 operands with tag 'SideEffect' in function '$@'. | ssa.cpp:301:5:301:8 | IR: main | int main(int, char**) |
|
||||
missingPhiOperand
|
||||
missingOperandType
|
||||
duplicateChiOperand
|
||||
@@ -9,6 +10,7 @@ instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
@@ -19,6 +21,7 @@ switchInstructionWithoutDefaultEdge
|
||||
notMarkedAsConflated
|
||||
wronglyMarkedAsConflated
|
||||
invalidOverlap
|
||||
| ssa.cpp:301:27:301:30 | SideEffect | MemoryOperand 'SideEffect' has a `getDefinitionOverlap()` of 'MayPartiallyOverlap'. | ssa.cpp:301:5:301:8 | IR: main | int main(int, char**) |
|
||||
missingCanonicalLanguageType
|
||||
multipleCanonicalLanguageTypes
|
||||
missingIRType
|
||||
|
||||
@@ -280,3 +280,26 @@ void EscapedButNotConflated(bool c, Point p, int x1) {
|
||||
}
|
||||
int x = a.x; // The phi node here is not conflated
|
||||
}
|
||||
|
||||
struct A {
|
||||
int i;
|
||||
A(int x) {}
|
||||
A(A*) {}
|
||||
A() {}
|
||||
};
|
||||
|
||||
Point *NewAliasing(int x) {
|
||||
Point* p = new Point;
|
||||
Point* q = new Point;
|
||||
int j = new A(new A(x))->i;
|
||||
A* a = new A;
|
||||
return p;
|
||||
}
|
||||
|
||||
void unknownFunction(int argc, char **argv);
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
unknownFunction(argc, argv);
|
||||
unknownFunction(argc, argv);
|
||||
return **argv; // Chi chain goes through side effects from unknownFunction
|
||||
}
|
||||
@@ -78,7 +78,7 @@ ssa.cpp:
|
||||
# 28| r28_9(int) = Load : &:r28_8, ~mu13_4
|
||||
# 28| r28_10(int) = Add : r28_5, r28_9
|
||||
# 28| m28_11(int) = Store : &:r28_1, r28_10
|
||||
# 13| v13_13(void) = ReturnIndirection : &:r13_7, ~mu13_4
|
||||
# 13| v13_13(void) = ReturnIndirection[p] : &:r13_7, ~mu13_4
|
||||
# 13| r13_14(glval<int>) = VariableAddress[#return] :
|
||||
# 13| v13_15(void) = ReturnValue : &:r13_14, m28_11
|
||||
# 13| v13_16(void) = UnmodeledUse : mu*
|
||||
@@ -249,12 +249,12 @@ ssa.cpp:
|
||||
#-----| Goto (back edge) -> Block 1
|
||||
|
||||
# 71| Block 3
|
||||
# 71| v71_1(void) = NoOp :
|
||||
# 68| v68_11(void) = ReturnIndirection : &:r68_9, ~mu68_4
|
||||
# 68| v68_12(void) = ReturnVoid :
|
||||
# 68| v68_13(void) = UnmodeledUse : mu*
|
||||
# 68| v68_14(void) = AliasedUse : ~mu68_4
|
||||
# 68| v68_15(void) = ExitFunction :
|
||||
# 71| v71_1(void) = NoOp :
|
||||
# 68| v68_11(void) = ReturnIndirection[p] : &:r68_9, ~mu68_4
|
||||
# 68| v68_12(void) = ReturnVoid :
|
||||
# 68| v68_13(void) = UnmodeledUse : mu*
|
||||
# 68| v68_14(void) = AliasedUse : ~mu68_4
|
||||
# 68| v68_15(void) = ExitFunction :
|
||||
|
||||
# 75| void ScalarPhi(bool)
|
||||
# 75| Block 0
|
||||
@@ -752,7 +752,7 @@ ssa.cpp:
|
||||
# 181| r181_3(int *) = Load : &:r181_2, m179_6
|
||||
# 181| r181_4(int) = Load : &:r181_3, ~mu179_4
|
||||
# 181| m181_5(int) = Store : &:r181_1, r181_4
|
||||
# 179| v179_9(void) = ReturnIndirection : &:r179_7, ~mu179_4
|
||||
# 179| v179_9(void) = ReturnIndirection[p] : &:r179_7, ~mu179_4
|
||||
# 179| r179_10(glval<int>) = VariableAddress[#return] :
|
||||
# 179| v179_11(void) = ReturnValue : &:r179_10, m181_5
|
||||
# 179| v179_12(void) = UnmodeledUse : mu*
|
||||
@@ -795,10 +795,10 @@ ssa.cpp:
|
||||
# 190| r190_6(unsigned int) = Load : &:r190_5, ~mu184_4
|
||||
# 186| mu186_1(unknown) = InlineAsm : ~mu184_4, 0:r189_3, 1:r189_6, 2:r190_3, 3:r190_6
|
||||
# 192| v192_1(void) = NoOp :
|
||||
# 184| v184_21(void) = ReturnIndirection : &:r184_7, ~mu184_4
|
||||
# 184| v184_22(void) = ReturnIndirection : &:r184_11, ~mu184_4
|
||||
# 184| v184_23(void) = ReturnIndirection : &:r184_15, ~mu184_4
|
||||
# 184| v184_24(void) = ReturnIndirection : &:r184_19, ~mu184_4
|
||||
# 184| v184_21(void) = ReturnIndirection[a] : &:r184_7, ~mu184_4
|
||||
# 184| v184_22(void) = ReturnIndirection[b] : &:r184_11, ~mu184_4
|
||||
# 184| v184_23(void) = ReturnIndirection[c] : &:r184_15, ~mu184_4
|
||||
# 184| v184_24(void) = ReturnIndirection[d] : &:r184_19, ~mu184_4
|
||||
# 184| v184_25(void) = ReturnVoid :
|
||||
# 184| v184_26(void) = UnmodeledUse : mu*
|
||||
# 184| v184_27(void) = AliasedUse : ~mu184_4
|
||||
@@ -854,8 +854,8 @@ ssa.cpp:
|
||||
# 202| r202_2(glval<int>) = VariableAddress[ret] :
|
||||
# 202| r202_3(int) = Load : &:r202_2, m201_8
|
||||
# 202| m202_4(int) = Store : &:r202_1, r202_3
|
||||
# 198| v198_15(void) = ReturnIndirection : &:r198_7, ~mu198_4
|
||||
# 198| v198_16(void) = ReturnIndirection : &:r198_11, ~mu198_4
|
||||
# 198| v198_15(void) = ReturnIndirection[str1] : &:r198_7, ~mu198_4
|
||||
# 198| v198_16(void) = ReturnIndirection[str2] : &:r198_11, ~mu198_4
|
||||
# 198| r198_17(glval<int>) = VariableAddress[#return] :
|
||||
# 198| v198_18(void) = ReturnValue : &:r198_17, m202_4
|
||||
# 198| v198_19(void) = UnmodeledUse : mu*
|
||||
@@ -1074,8 +1074,9 @@ ssa.cpp:
|
||||
# 248| r248_7(unsigned long) = Mul : r248_5, r248_6
|
||||
# 248| r248_8(void *) = Call : func:r248_2, 0:r248_7
|
||||
# 248| mu248_9(unknown) = ^CallSideEffect : ~mu247_4
|
||||
# 248| r248_10(char *) = Convert : r248_8
|
||||
# 248| m248_11(char *) = Store : &:r248_1, r248_10
|
||||
# 248| mu248_10(unknown) = ^InitializeDynamicAllocation : &:r248_8
|
||||
# 248| r248_11(char *) = Convert : r248_8
|
||||
# 248| m248_12(char *) = Store : &:r248_1, r248_11
|
||||
# 249| r249_1(char) = Constant[97] :
|
||||
# 249| r249_2(glval<char *>) = VariableAddress[src] :
|
||||
# 249| r249_3(char *) = Load : &:r249_2, m247_6
|
||||
@@ -1083,7 +1084,7 @@ ssa.cpp:
|
||||
# 249| mu249_5(char) = Store : &:r249_4, r249_1
|
||||
# 250| r250_1(glval<unknown>) = FunctionAddress[memcpy] :
|
||||
# 250| r250_2(glval<char *>) = VariableAddress[dst] :
|
||||
# 250| r250_3(char *) = Load : &:r250_2, m248_11
|
||||
# 250| r250_3(char *) = Load : &:r250_2, m248_12
|
||||
# 250| r250_4(void *) = Convert : r250_3
|
||||
# 250| r250_5(glval<char *>) = VariableAddress[src] :
|
||||
# 250| r250_6(char *) = Load : &:r250_5, m247_6
|
||||
@@ -1095,9 +1096,9 @@ ssa.cpp:
|
||||
# 250| mu250_12(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r250_4, r250_9
|
||||
# 251| r251_1(glval<char *>) = VariableAddress[#return] :
|
||||
# 251| r251_2(glval<char *>) = VariableAddress[dst] :
|
||||
# 251| r251_3(char *) = Load : &:r251_2, m248_11
|
||||
# 251| r251_3(char *) = Load : &:r251_2, m248_12
|
||||
# 251| m251_4(char *) = Store : &:r251_1, r251_3
|
||||
# 247| v247_11(void) = ReturnIndirection : &:r247_7, ~mu247_4
|
||||
# 247| v247_11(void) = ReturnIndirection[src] : &:r247_7, ~mu247_4
|
||||
# 247| r247_12(glval<char *>) = VariableAddress[#return] :
|
||||
# 247| v247_13(void) = ReturnValue : &:r247_12, m251_4
|
||||
# 247| v247_14(void) = UnmodeledUse : mu*
|
||||
@@ -1182,7 +1183,7 @@ ssa.cpp:
|
||||
# 271| r271_2(glval<void *>) = VariableAddress[buf] :
|
||||
# 271| r271_3(void *) = Load : &:r271_2, m269_8
|
||||
# 271| m271_4(void *) = Store : &:r271_1, r271_3
|
||||
# 268| v268_11(void) = ReturnIndirection : &:r268_7, ~mu268_4
|
||||
# 268| v268_11(void) = ReturnIndirection[s] : &:r268_7, ~mu268_4
|
||||
# 268| r268_12(glval<void *>) = VariableAddress[#return] :
|
||||
# 268| v268_13(void) = ReturnValue : &:r268_12, m271_4
|
||||
# 268| v268_14(void) = UnmodeledUse : mu*
|
||||
@@ -1238,3 +1239,167 @@ ssa.cpp:
|
||||
# 275| v275_12(void) = UnmodeledUse : mu*
|
||||
# 275| v275_13(void) = AliasedUse : ~mu275_4
|
||||
# 275| v275_14(void) = ExitFunction :
|
||||
|
||||
# 286| void A::A(int)
|
||||
# 286| Block 0
|
||||
# 286| v286_1(void) = EnterFunction :
|
||||
# 286| mu286_2(unknown) = AliasedDefinition :
|
||||
# 286| mu286_3(unknown) = InitializeNonLocal :
|
||||
# 286| mu286_4(unknown) = UnmodeledDefinition :
|
||||
# 286| r286_5(glval<A>) = InitializeThis :
|
||||
# 286| r286_6(glval<int>) = VariableAddress[x] :
|
||||
# 286| m286_7(int) = InitializeParameter[x] : &:r286_6
|
||||
# 286| v286_8(void) = NoOp :
|
||||
# 286| v286_9(void) = ReturnVoid :
|
||||
# 286| v286_10(void) = UnmodeledUse : mu*
|
||||
# 286| v286_11(void) = AliasedUse : ~mu286_4
|
||||
# 286| v286_12(void) = ExitFunction :
|
||||
|
||||
# 287| void A::A(A*)
|
||||
# 287| Block 0
|
||||
# 287| v287_1(void) = EnterFunction :
|
||||
# 287| mu287_2(unknown) = AliasedDefinition :
|
||||
# 287| mu287_3(unknown) = InitializeNonLocal :
|
||||
# 287| mu287_4(unknown) = UnmodeledDefinition :
|
||||
# 287| r287_5(glval<A>) = InitializeThis :
|
||||
# 287| r287_6(glval<A *>) = VariableAddress[p#0] :
|
||||
# 287| m287_7(A *) = InitializeParameter[p#0] : &:r287_6
|
||||
# 287| r287_8(A *) = Load : &:r287_6, m287_7
|
||||
# 287| mu287_9(unknown) = InitializeIndirection[p#0] : &:r287_8
|
||||
# 287| v287_10(void) = NoOp :
|
||||
# 287| v287_11(void) = ReturnIndirection[p#0] : &:r287_8, ~mu287_4
|
||||
# 287| v287_12(void) = ReturnVoid :
|
||||
# 287| v287_13(void) = UnmodeledUse : mu*
|
||||
# 287| v287_14(void) = AliasedUse : ~mu287_4
|
||||
# 287| v287_15(void) = ExitFunction :
|
||||
|
||||
# 288| void A::A()
|
||||
# 288| Block 0
|
||||
# 288| v288_1(void) = EnterFunction :
|
||||
# 288| mu288_2(unknown) = AliasedDefinition :
|
||||
# 288| mu288_3(unknown) = InitializeNonLocal :
|
||||
# 288| mu288_4(unknown) = UnmodeledDefinition :
|
||||
# 288| r288_5(glval<A>) = InitializeThis :
|
||||
# 288| v288_6(void) = NoOp :
|
||||
# 288| v288_7(void) = ReturnVoid :
|
||||
# 288| v288_8(void) = UnmodeledUse : mu*
|
||||
# 288| v288_9(void) = AliasedUse : ~mu288_4
|
||||
# 288| v288_10(void) = ExitFunction :
|
||||
|
||||
# 291| Point* NewAliasing(int)
|
||||
# 291| Block 0
|
||||
# 291| v291_1(void) = EnterFunction :
|
||||
# 291| mu291_2(unknown) = AliasedDefinition :
|
||||
# 291| mu291_3(unknown) = InitializeNonLocal :
|
||||
# 291| mu291_4(unknown) = UnmodeledDefinition :
|
||||
# 291| r291_5(glval<int>) = VariableAddress[x] :
|
||||
# 291| m291_6(int) = InitializeParameter[x] : &:r291_5
|
||||
# 292| r292_1(glval<Point *>) = VariableAddress[p] :
|
||||
# 292| r292_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 292| r292_3(unsigned long) = Constant[8] :
|
||||
# 292| r292_4(void *) = Call : func:r292_2, 0:r292_3
|
||||
# 292| mu292_5(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 292| mu292_6(unknown) = ^InitializeDynamicAllocation : &:r292_4
|
||||
# 292| r292_7(Point *) = Convert : r292_4
|
||||
# 292| m292_8(Point *) = Store : &:r292_1, r292_7
|
||||
# 293| r293_1(glval<Point *>) = VariableAddress[q] :
|
||||
# 293| r293_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 293| r293_3(unsigned long) = Constant[8] :
|
||||
# 293| r293_4(void *) = Call : func:r293_2, 0:r293_3
|
||||
# 293| mu293_5(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 293| mu293_6(unknown) = ^InitializeDynamicAllocation : &:r293_4
|
||||
# 293| r293_7(Point *) = Convert : r293_4
|
||||
# 293| m293_8(Point *) = Store : &:r293_1, r293_7
|
||||
# 294| r294_1(glval<int>) = VariableAddress[j] :
|
||||
# 294| r294_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 294| r294_3(unsigned long) = Constant[4] :
|
||||
# 294| r294_4(void *) = Call : func:r294_2, 0:r294_3
|
||||
# 294| mu294_5(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 294| mu294_6(unknown) = ^InitializeDynamicAllocation : &:r294_4
|
||||
# 294| r294_7(A *) = Convert : r294_4
|
||||
# 294| r294_8(glval<unknown>) = FunctionAddress[A] :
|
||||
# 294| r294_9(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 294| r294_10(unsigned long) = Constant[4] :
|
||||
# 294| r294_11(void *) = Call : func:r294_9, 0:r294_10
|
||||
# 294| mu294_12(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 294| mu294_13(unknown) = ^InitializeDynamicAllocation : &:r294_11
|
||||
# 294| r294_14(A *) = Convert : r294_11
|
||||
# 294| r294_15(glval<unknown>) = FunctionAddress[A] :
|
||||
# 294| r294_16(glval<int>) = VariableAddress[x] :
|
||||
# 294| r294_17(int) = Load : &:r294_16, m291_6
|
||||
# 294| v294_18(void) = Call : func:r294_15, this:r294_14, 0:r294_17
|
||||
# 294| mu294_19(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 294| mu294_20(A) = ^IndirectMayWriteSideEffect[-1] : &:r294_14
|
||||
# 294| v294_21(void) = Call : func:r294_8, this:r294_7, 0:r294_14
|
||||
# 294| mu294_22(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 294| mu294_23(A) = ^IndirectMayWriteSideEffect[-1] : &:r294_7
|
||||
# 294| v294_24(void) = ^BufferReadSideEffect[0] : &:r294_14, ~mu291_4
|
||||
# 294| mu294_25(unknown) = ^BufferMayWriteSideEffect[0] : &:r294_14
|
||||
# 294| r294_26(glval<int>) = FieldAddress[i] : r294_7
|
||||
# 294| r294_27(int) = Load : &:r294_26, ~mu291_4
|
||||
# 294| m294_28(int) = Store : &:r294_1, r294_27
|
||||
# 295| r295_1(glval<A *>) = VariableAddress[a] :
|
||||
# 295| r295_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 295| r295_3(unsigned long) = Constant[4] :
|
||||
# 295| r295_4(void *) = Call : func:r295_2, 0:r295_3
|
||||
# 295| mu295_5(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 295| mu295_6(unknown) = ^InitializeDynamicAllocation : &:r295_4
|
||||
# 295| r295_7(A *) = Convert : r295_4
|
||||
# 295| r295_8(glval<unknown>) = FunctionAddress[A] :
|
||||
# 295| v295_9(void) = Call : func:r295_8, this:r295_7
|
||||
# 295| mu295_10(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 295| mu295_11(A) = ^IndirectMayWriteSideEffect[-1] : &:r295_7
|
||||
# 295| m295_12(A *) = Store : &:r295_1, r295_7
|
||||
# 296| r296_1(glval<Point *>) = VariableAddress[#return] :
|
||||
# 296| r296_2(glval<Point *>) = VariableAddress[p] :
|
||||
# 296| r296_3(Point *) = Load : &:r296_2, m292_8
|
||||
# 296| m296_4(Point *) = Store : &:r296_1, r296_3
|
||||
# 291| r291_7(glval<Point *>) = VariableAddress[#return] :
|
||||
# 291| v291_8(void) = ReturnValue : &:r291_7, m296_4
|
||||
# 291| v291_9(void) = UnmodeledUse : mu*
|
||||
# 291| v291_10(void) = AliasedUse : ~mu291_4
|
||||
# 291| v291_11(void) = ExitFunction :
|
||||
|
||||
# 301| int main(int, char**)
|
||||
# 301| Block 0
|
||||
# 301| v301_1(void) = EnterFunction :
|
||||
# 301| mu301_2(unknown) = AliasedDefinition :
|
||||
# 301| mu301_3(unknown) = InitializeNonLocal :
|
||||
# 301| mu301_4(unknown) = UnmodeledDefinition :
|
||||
# 301| r301_5(glval<int>) = VariableAddress[argc] :
|
||||
# 301| m301_6(int) = InitializeParameter[argc] : &:r301_5
|
||||
# 301| r301_7(glval<char **>) = VariableAddress[argv] :
|
||||
# 301| m301_8(char **) = InitializeParameter[argv] : &:r301_7
|
||||
# 301| r301_9(char **) = Load : &:r301_7, m301_8
|
||||
# 301| mu301_10(unknown) = InitializeIndirection[argv] : &:r301_9
|
||||
# 302| r302_1(glval<unknown>) = FunctionAddress[unknownFunction] :
|
||||
# 302| r302_2(glval<int>) = VariableAddress[argc] :
|
||||
# 302| r302_3(int) = Load : &:r302_2, m301_6
|
||||
# 302| r302_4(glval<char **>) = VariableAddress[argv] :
|
||||
# 302| r302_5(char **) = Load : &:r302_4, m301_8
|
||||
# 302| v302_6(void) = Call : func:r302_1, 0:r302_3, 1:r302_5
|
||||
# 302| mu302_7(unknown) = ^CallSideEffect : ~mu301_4
|
||||
# 302| v302_8(void) = ^BufferReadSideEffect[1] : &:r302_5, ~mu301_4
|
||||
# 302| mu302_9(unknown) = ^BufferMayWriteSideEffect[1] : &:r302_5
|
||||
# 303| r303_1(glval<unknown>) = FunctionAddress[unknownFunction] :
|
||||
# 303| r303_2(glval<int>) = VariableAddress[argc] :
|
||||
# 303| r303_3(int) = Load : &:r303_2, m301_6
|
||||
# 303| r303_4(glval<char **>) = VariableAddress[argv] :
|
||||
# 303| r303_5(char **) = Load : &:r303_4, m301_8
|
||||
# 303| v303_6(void) = Call : func:r303_1, 0:r303_3, 1:r303_5
|
||||
# 303| mu303_7(unknown) = ^CallSideEffect : ~mu301_4
|
||||
# 303| v303_8(void) = ^BufferReadSideEffect[1] : &:r303_5, ~mu301_4
|
||||
# 303| mu303_9(unknown) = ^BufferMayWriteSideEffect[1] : &:r303_5
|
||||
# 304| r304_1(glval<int>) = VariableAddress[#return] :
|
||||
# 304| r304_2(glval<char **>) = VariableAddress[argv] :
|
||||
# 304| r304_3(char **) = Load : &:r304_2, m301_8
|
||||
# 304| r304_4(char *) = Load : &:r304_3, ~mu301_4
|
||||
# 304| r304_5(char) = Load : &:r304_4, ~mu301_4
|
||||
# 304| r304_6(int) = Convert : r304_5
|
||||
# 304| m304_7(int) = Store : &:r304_1, r304_6
|
||||
# 301| v301_11(void) = ReturnIndirection[argv] : &:r301_9, ~mu301_4
|
||||
# 301| r301_12(glval<int>) = VariableAddress[#return] :
|
||||
# 301| v301_13(void) = ReturnValue : &:r301_12, m304_7
|
||||
# 301| v301_14(void) = UnmodeledUse : mu*
|
||||
# 301| v301_15(void) = AliasedUse : ~mu301_4
|
||||
# 301| v301_16(void) = ExitFunction :
|
||||
|
||||
@@ -78,7 +78,7 @@ ssa.cpp:
|
||||
# 28| r28_9(int) = Load : &:r28_8, ~mu13_4
|
||||
# 28| r28_10(int) = Add : r28_5, r28_9
|
||||
# 28| m28_11(int) = Store : &:r28_1, r28_10
|
||||
# 13| v13_13(void) = ReturnIndirection : &:r13_7, ~mu13_4
|
||||
# 13| v13_13(void) = ReturnIndirection[p] : &:r13_7, ~mu13_4
|
||||
# 13| r13_14(glval<int>) = VariableAddress[#return] :
|
||||
# 13| v13_15(void) = ReturnValue : &:r13_14, m28_11
|
||||
# 13| v13_16(void) = UnmodeledUse : mu*
|
||||
@@ -249,12 +249,12 @@ ssa.cpp:
|
||||
#-----| Goto (back edge) -> Block 1
|
||||
|
||||
# 71| Block 3
|
||||
# 71| v71_1(void) = NoOp :
|
||||
# 68| v68_11(void) = ReturnIndirection : &:r68_9, ~mu68_4
|
||||
# 68| v68_12(void) = ReturnVoid :
|
||||
# 68| v68_13(void) = UnmodeledUse : mu*
|
||||
# 68| v68_14(void) = AliasedUse : ~mu68_4
|
||||
# 68| v68_15(void) = ExitFunction :
|
||||
# 71| v71_1(void) = NoOp :
|
||||
# 68| v68_11(void) = ReturnIndirection[p] : &:r68_9, ~mu68_4
|
||||
# 68| v68_12(void) = ReturnVoid :
|
||||
# 68| v68_13(void) = UnmodeledUse : mu*
|
||||
# 68| v68_14(void) = AliasedUse : ~mu68_4
|
||||
# 68| v68_15(void) = ExitFunction :
|
||||
|
||||
# 75| void ScalarPhi(bool)
|
||||
# 75| Block 0
|
||||
@@ -752,7 +752,7 @@ ssa.cpp:
|
||||
# 181| r181_3(int *) = Load : &:r181_2, m179_6
|
||||
# 181| r181_4(int) = Load : &:r181_3, ~mu179_4
|
||||
# 181| m181_5(int) = Store : &:r181_1, r181_4
|
||||
# 179| v179_9(void) = ReturnIndirection : &:r179_7, ~mu179_4
|
||||
# 179| v179_9(void) = ReturnIndirection[p] : &:r179_7, ~mu179_4
|
||||
# 179| r179_10(glval<int>) = VariableAddress[#return] :
|
||||
# 179| v179_11(void) = ReturnValue : &:r179_10, m181_5
|
||||
# 179| v179_12(void) = UnmodeledUse : mu*
|
||||
@@ -795,10 +795,10 @@ ssa.cpp:
|
||||
# 190| r190_6(unsigned int) = Load : &:r190_5, ~mu184_4
|
||||
# 186| mu186_1(unknown) = InlineAsm : ~mu184_4, 0:r189_3, 1:r189_6, 2:r190_3, 3:r190_6
|
||||
# 192| v192_1(void) = NoOp :
|
||||
# 184| v184_21(void) = ReturnIndirection : &:r184_7, ~mu184_4
|
||||
# 184| v184_22(void) = ReturnIndirection : &:r184_11, ~mu184_4
|
||||
# 184| v184_23(void) = ReturnIndirection : &:r184_15, ~mu184_4
|
||||
# 184| v184_24(void) = ReturnIndirection : &:r184_19, ~mu184_4
|
||||
# 184| v184_21(void) = ReturnIndirection[a] : &:r184_7, ~mu184_4
|
||||
# 184| v184_22(void) = ReturnIndirection[b] : &:r184_11, ~mu184_4
|
||||
# 184| v184_23(void) = ReturnIndirection[c] : &:r184_15, ~mu184_4
|
||||
# 184| v184_24(void) = ReturnIndirection[d] : &:r184_19, ~mu184_4
|
||||
# 184| v184_25(void) = ReturnVoid :
|
||||
# 184| v184_26(void) = UnmodeledUse : mu*
|
||||
# 184| v184_27(void) = AliasedUse : ~mu184_4
|
||||
@@ -854,8 +854,8 @@ ssa.cpp:
|
||||
# 202| r202_2(glval<int>) = VariableAddress[ret] :
|
||||
# 202| r202_3(int) = Load : &:r202_2, m201_8
|
||||
# 202| m202_4(int) = Store : &:r202_1, r202_3
|
||||
# 198| v198_15(void) = ReturnIndirection : &:r198_7, ~mu198_4
|
||||
# 198| v198_16(void) = ReturnIndirection : &:r198_11, ~mu198_4
|
||||
# 198| v198_15(void) = ReturnIndirection[str1] : &:r198_7, ~mu198_4
|
||||
# 198| v198_16(void) = ReturnIndirection[str2] : &:r198_11, ~mu198_4
|
||||
# 198| r198_17(glval<int>) = VariableAddress[#return] :
|
||||
# 198| v198_18(void) = ReturnValue : &:r198_17, m202_4
|
||||
# 198| v198_19(void) = UnmodeledUse : mu*
|
||||
@@ -1074,8 +1074,9 @@ ssa.cpp:
|
||||
# 248| r248_7(unsigned long) = Mul : r248_5, r248_6
|
||||
# 248| r248_8(void *) = Call : func:r248_2, 0:r248_7
|
||||
# 248| mu248_9(unknown) = ^CallSideEffect : ~mu247_4
|
||||
# 248| r248_10(char *) = Convert : r248_8
|
||||
# 248| m248_11(char *) = Store : &:r248_1, r248_10
|
||||
# 248| mu248_10(unknown) = ^InitializeDynamicAllocation : &:r248_8
|
||||
# 248| r248_11(char *) = Convert : r248_8
|
||||
# 248| m248_12(char *) = Store : &:r248_1, r248_11
|
||||
# 249| r249_1(char) = Constant[97] :
|
||||
# 249| r249_2(glval<char *>) = VariableAddress[src] :
|
||||
# 249| r249_3(char *) = Load : &:r249_2, m247_6
|
||||
@@ -1083,7 +1084,7 @@ ssa.cpp:
|
||||
# 249| mu249_5(char) = Store : &:r249_4, r249_1
|
||||
# 250| r250_1(glval<unknown>) = FunctionAddress[memcpy] :
|
||||
# 250| r250_2(glval<char *>) = VariableAddress[dst] :
|
||||
# 250| r250_3(char *) = Load : &:r250_2, m248_11
|
||||
# 250| r250_3(char *) = Load : &:r250_2, m248_12
|
||||
# 250| r250_4(void *) = Convert : r250_3
|
||||
# 250| r250_5(glval<char *>) = VariableAddress[src] :
|
||||
# 250| r250_6(char *) = Load : &:r250_5, m247_6
|
||||
@@ -1095,9 +1096,9 @@ ssa.cpp:
|
||||
# 250| mu250_12(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r250_4, r250_9
|
||||
# 251| r251_1(glval<char *>) = VariableAddress[#return] :
|
||||
# 251| r251_2(glval<char *>) = VariableAddress[dst] :
|
||||
# 251| r251_3(char *) = Load : &:r251_2, m248_11
|
||||
# 251| r251_3(char *) = Load : &:r251_2, m248_12
|
||||
# 251| m251_4(char *) = Store : &:r251_1, r251_3
|
||||
# 247| v247_11(void) = ReturnIndirection : &:r247_7, ~mu247_4
|
||||
# 247| v247_11(void) = ReturnIndirection[src] : &:r247_7, ~mu247_4
|
||||
# 247| r247_12(glval<char *>) = VariableAddress[#return] :
|
||||
# 247| v247_13(void) = ReturnValue : &:r247_12, m251_4
|
||||
# 247| v247_14(void) = UnmodeledUse : mu*
|
||||
@@ -1182,7 +1183,7 @@ ssa.cpp:
|
||||
# 271| r271_2(glval<void *>) = VariableAddress[buf] :
|
||||
# 271| r271_3(void *) = Load : &:r271_2, m269_8
|
||||
# 271| m271_4(void *) = Store : &:r271_1, r271_3
|
||||
# 268| v268_11(void) = ReturnIndirection : &:r268_7, ~mu268_4
|
||||
# 268| v268_11(void) = ReturnIndirection[s] : &:r268_7, ~mu268_4
|
||||
# 268| r268_12(glval<void *>) = VariableAddress[#return] :
|
||||
# 268| v268_13(void) = ReturnValue : &:r268_12, m271_4
|
||||
# 268| v268_14(void) = UnmodeledUse : mu*
|
||||
@@ -1238,3 +1239,167 @@ ssa.cpp:
|
||||
# 275| v275_12(void) = UnmodeledUse : mu*
|
||||
# 275| v275_13(void) = AliasedUse : ~mu275_4
|
||||
# 275| v275_14(void) = ExitFunction :
|
||||
|
||||
# 286| void A::A(int)
|
||||
# 286| Block 0
|
||||
# 286| v286_1(void) = EnterFunction :
|
||||
# 286| mu286_2(unknown) = AliasedDefinition :
|
||||
# 286| mu286_3(unknown) = InitializeNonLocal :
|
||||
# 286| mu286_4(unknown) = UnmodeledDefinition :
|
||||
# 286| r286_5(glval<A>) = InitializeThis :
|
||||
# 286| r286_6(glval<int>) = VariableAddress[x] :
|
||||
# 286| m286_7(int) = InitializeParameter[x] : &:r286_6
|
||||
# 286| v286_8(void) = NoOp :
|
||||
# 286| v286_9(void) = ReturnVoid :
|
||||
# 286| v286_10(void) = UnmodeledUse : mu*
|
||||
# 286| v286_11(void) = AliasedUse : ~mu286_4
|
||||
# 286| v286_12(void) = ExitFunction :
|
||||
|
||||
# 287| void A::A(A*)
|
||||
# 287| Block 0
|
||||
# 287| v287_1(void) = EnterFunction :
|
||||
# 287| mu287_2(unknown) = AliasedDefinition :
|
||||
# 287| mu287_3(unknown) = InitializeNonLocal :
|
||||
# 287| mu287_4(unknown) = UnmodeledDefinition :
|
||||
# 287| r287_5(glval<A>) = InitializeThis :
|
||||
# 287| r287_6(glval<A *>) = VariableAddress[p#0] :
|
||||
# 287| m287_7(A *) = InitializeParameter[p#0] : &:r287_6
|
||||
# 287| r287_8(A *) = Load : &:r287_6, m287_7
|
||||
# 287| mu287_9(unknown) = InitializeIndirection[p#0] : &:r287_8
|
||||
# 287| v287_10(void) = NoOp :
|
||||
# 287| v287_11(void) = ReturnIndirection[p#0] : &:r287_8, ~mu287_4
|
||||
# 287| v287_12(void) = ReturnVoid :
|
||||
# 287| v287_13(void) = UnmodeledUse : mu*
|
||||
# 287| v287_14(void) = AliasedUse : ~mu287_4
|
||||
# 287| v287_15(void) = ExitFunction :
|
||||
|
||||
# 288| void A::A()
|
||||
# 288| Block 0
|
||||
# 288| v288_1(void) = EnterFunction :
|
||||
# 288| mu288_2(unknown) = AliasedDefinition :
|
||||
# 288| mu288_3(unknown) = InitializeNonLocal :
|
||||
# 288| mu288_4(unknown) = UnmodeledDefinition :
|
||||
# 288| r288_5(glval<A>) = InitializeThis :
|
||||
# 288| v288_6(void) = NoOp :
|
||||
# 288| v288_7(void) = ReturnVoid :
|
||||
# 288| v288_8(void) = UnmodeledUse : mu*
|
||||
# 288| v288_9(void) = AliasedUse : ~mu288_4
|
||||
# 288| v288_10(void) = ExitFunction :
|
||||
|
||||
# 291| Point* NewAliasing(int)
|
||||
# 291| Block 0
|
||||
# 291| v291_1(void) = EnterFunction :
|
||||
# 291| mu291_2(unknown) = AliasedDefinition :
|
||||
# 291| mu291_3(unknown) = InitializeNonLocal :
|
||||
# 291| mu291_4(unknown) = UnmodeledDefinition :
|
||||
# 291| r291_5(glval<int>) = VariableAddress[x] :
|
||||
# 291| m291_6(int) = InitializeParameter[x] : &:r291_5
|
||||
# 292| r292_1(glval<Point *>) = VariableAddress[p] :
|
||||
# 292| r292_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 292| r292_3(unsigned long) = Constant[8] :
|
||||
# 292| r292_4(void *) = Call : func:r292_2, 0:r292_3
|
||||
# 292| mu292_5(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 292| mu292_6(unknown) = ^InitializeDynamicAllocation : &:r292_4
|
||||
# 292| r292_7(Point *) = Convert : r292_4
|
||||
# 292| m292_8(Point *) = Store : &:r292_1, r292_7
|
||||
# 293| r293_1(glval<Point *>) = VariableAddress[q] :
|
||||
# 293| r293_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 293| r293_3(unsigned long) = Constant[8] :
|
||||
# 293| r293_4(void *) = Call : func:r293_2, 0:r293_3
|
||||
# 293| mu293_5(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 293| mu293_6(unknown) = ^InitializeDynamicAllocation : &:r293_4
|
||||
# 293| r293_7(Point *) = Convert : r293_4
|
||||
# 293| m293_8(Point *) = Store : &:r293_1, r293_7
|
||||
# 294| r294_1(glval<int>) = VariableAddress[j] :
|
||||
# 294| r294_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 294| r294_3(unsigned long) = Constant[4] :
|
||||
# 294| r294_4(void *) = Call : func:r294_2, 0:r294_3
|
||||
# 294| mu294_5(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 294| mu294_6(unknown) = ^InitializeDynamicAllocation : &:r294_4
|
||||
# 294| r294_7(A *) = Convert : r294_4
|
||||
# 294| r294_8(glval<unknown>) = FunctionAddress[A] :
|
||||
# 294| r294_9(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 294| r294_10(unsigned long) = Constant[4] :
|
||||
# 294| r294_11(void *) = Call : func:r294_9, 0:r294_10
|
||||
# 294| mu294_12(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 294| mu294_13(unknown) = ^InitializeDynamicAllocation : &:r294_11
|
||||
# 294| r294_14(A *) = Convert : r294_11
|
||||
# 294| r294_15(glval<unknown>) = FunctionAddress[A] :
|
||||
# 294| r294_16(glval<int>) = VariableAddress[x] :
|
||||
# 294| r294_17(int) = Load : &:r294_16, m291_6
|
||||
# 294| v294_18(void) = Call : func:r294_15, this:r294_14, 0:r294_17
|
||||
# 294| mu294_19(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 294| mu294_20(A) = ^IndirectMayWriteSideEffect[-1] : &:r294_14
|
||||
# 294| v294_21(void) = Call : func:r294_8, this:r294_7, 0:r294_14
|
||||
# 294| mu294_22(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 294| mu294_23(A) = ^IndirectMayWriteSideEffect[-1] : &:r294_7
|
||||
# 294| v294_24(void) = ^BufferReadSideEffect[0] : &:r294_14, ~mu291_4
|
||||
# 294| mu294_25(unknown) = ^BufferMayWriteSideEffect[0] : &:r294_14
|
||||
# 294| r294_26(glval<int>) = FieldAddress[i] : r294_7
|
||||
# 294| r294_27(int) = Load : &:r294_26, ~mu291_4
|
||||
# 294| m294_28(int) = Store : &:r294_1, r294_27
|
||||
# 295| r295_1(glval<A *>) = VariableAddress[a] :
|
||||
# 295| r295_2(glval<unknown>) = FunctionAddress[operator new] :
|
||||
# 295| r295_3(unsigned long) = Constant[4] :
|
||||
# 295| r295_4(void *) = Call : func:r295_2, 0:r295_3
|
||||
# 295| mu295_5(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 295| mu295_6(unknown) = ^InitializeDynamicAllocation : &:r295_4
|
||||
# 295| r295_7(A *) = Convert : r295_4
|
||||
# 295| r295_8(glval<unknown>) = FunctionAddress[A] :
|
||||
# 295| v295_9(void) = Call : func:r295_8, this:r295_7
|
||||
# 295| mu295_10(unknown) = ^CallSideEffect : ~mu291_4
|
||||
# 295| mu295_11(A) = ^IndirectMayWriteSideEffect[-1] : &:r295_7
|
||||
# 295| m295_12(A *) = Store : &:r295_1, r295_7
|
||||
# 296| r296_1(glval<Point *>) = VariableAddress[#return] :
|
||||
# 296| r296_2(glval<Point *>) = VariableAddress[p] :
|
||||
# 296| r296_3(Point *) = Load : &:r296_2, m292_8
|
||||
# 296| m296_4(Point *) = Store : &:r296_1, r296_3
|
||||
# 291| r291_7(glval<Point *>) = VariableAddress[#return] :
|
||||
# 291| v291_8(void) = ReturnValue : &:r291_7, m296_4
|
||||
# 291| v291_9(void) = UnmodeledUse : mu*
|
||||
# 291| v291_10(void) = AliasedUse : ~mu291_4
|
||||
# 291| v291_11(void) = ExitFunction :
|
||||
|
||||
# 301| int main(int, char**)
|
||||
# 301| Block 0
|
||||
# 301| v301_1(void) = EnterFunction :
|
||||
# 301| mu301_2(unknown) = AliasedDefinition :
|
||||
# 301| mu301_3(unknown) = InitializeNonLocal :
|
||||
# 301| mu301_4(unknown) = UnmodeledDefinition :
|
||||
# 301| r301_5(glval<int>) = VariableAddress[argc] :
|
||||
# 301| m301_6(int) = InitializeParameter[argc] : &:r301_5
|
||||
# 301| r301_7(glval<char **>) = VariableAddress[argv] :
|
||||
# 301| m301_8(char **) = InitializeParameter[argv] : &:r301_7
|
||||
# 301| r301_9(char **) = Load : &:r301_7, m301_8
|
||||
# 301| mu301_10(unknown) = InitializeIndirection[argv] : &:r301_9
|
||||
# 302| r302_1(glval<unknown>) = FunctionAddress[unknownFunction] :
|
||||
# 302| r302_2(glval<int>) = VariableAddress[argc] :
|
||||
# 302| r302_3(int) = Load : &:r302_2, m301_6
|
||||
# 302| r302_4(glval<char **>) = VariableAddress[argv] :
|
||||
# 302| r302_5(char **) = Load : &:r302_4, m301_8
|
||||
# 302| v302_6(void) = Call : func:r302_1, 0:r302_3, 1:r302_5
|
||||
# 302| mu302_7(unknown) = ^CallSideEffect : ~mu301_4
|
||||
# 302| v302_8(void) = ^BufferReadSideEffect[1] : &:r302_5, ~mu301_4
|
||||
# 302| mu302_9(unknown) = ^BufferMayWriteSideEffect[1] : &:r302_5
|
||||
# 303| r303_1(glval<unknown>) = FunctionAddress[unknownFunction] :
|
||||
# 303| r303_2(glval<int>) = VariableAddress[argc] :
|
||||
# 303| r303_3(int) = Load : &:r303_2, m301_6
|
||||
# 303| r303_4(glval<char **>) = VariableAddress[argv] :
|
||||
# 303| r303_5(char **) = Load : &:r303_4, m301_8
|
||||
# 303| v303_6(void) = Call : func:r303_1, 0:r303_3, 1:r303_5
|
||||
# 303| mu303_7(unknown) = ^CallSideEffect : ~mu301_4
|
||||
# 303| v303_8(void) = ^BufferReadSideEffect[1] : &:r303_5, ~mu301_4
|
||||
# 303| mu303_9(unknown) = ^BufferMayWriteSideEffect[1] : &:r303_5
|
||||
# 304| r304_1(glval<int>) = VariableAddress[#return] :
|
||||
# 304| r304_2(glval<char **>) = VariableAddress[argv] :
|
||||
# 304| r304_3(char **) = Load : &:r304_2, m301_8
|
||||
# 304| r304_4(char *) = Load : &:r304_3, ~mu301_4
|
||||
# 304| r304_5(char) = Load : &:r304_4, ~mu301_4
|
||||
# 304| r304_6(int) = Convert : r304_5
|
||||
# 304| m304_7(int) = Store : &:r304_1, r304_6
|
||||
# 301| v301_11(void) = ReturnIndirection[argv] : &:r301_9, ~mu301_4
|
||||
# 301| r301_12(glval<int>) = VariableAddress[#return] :
|
||||
# 301| v301_13(void) = ReturnValue : &:r301_12, m304_7
|
||||
# 301| v301_14(void) = UnmodeledUse : mu*
|
||||
# 301| v301_15(void) = AliasedUse : ~mu301_4
|
||||
# 301| v301_16(void) = ExitFunction :
|
||||
|
||||
@@ -9,6 +9,7 @@ instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -9,6 +9,7 @@ instructionWithoutSuccessor
|
||||
ambiguousSuccessors
|
||||
unexplainedLoop
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
| test.cpp:97:10:97:10 | Load: x | file://:0:0:0:0 | 0 | 1 | false | CompareLT: ... < ... | test.cpp:94:7:94:11 | test.cpp:94:7:94:11 |
|
||||
| test.cpp:100:10:100:10 | Load: x | file://:0:0:0:0 | 0 | 1 | true | CompareLE: ... <= ... | test.cpp:99:7:99:12 | test.cpp:99:7:99:12 |
|
||||
| test.cpp:102:10:102:10 | Load: x | file://:0:0:0:0 | 0 | 2 | false | CompareLE: ... <= ... | test.cpp:99:7:99:12 | test.cpp:99:7:99:12 |
|
||||
| test.cpp:107:5:107:10 | Phi: test10 | test.cpp:114:3:114:6 | Phi: call to sink | -1 | true | CompareLT: ... < ... | test.cpp:115:18:115:22 | test.cpp:115:18:115:22 |
|
||||
| test.cpp:117:10:117:10 | Load: i | test.cpp:114:3:114:6 | Phi: call to sink | -1 | true | CompareLT: ... < ... | test.cpp:116:7:116:11 | test.cpp:116:7:116:11 |
|
||||
| test.cpp:130:10:130:10 | Load: i | file://:0:0:0:0 | 0 | 0 | false | NoReason | file://:0:0:0:0 | file://:0:0:0:0 |
|
||||
| test.cpp:140:10:140:10 | Store: i | file://:0:0:0:0 | 0 | 1 | false | NoReason | file://:0:0:0:0 | file://:0:0:0:0 |
|
||||
| test.cpp:140:10:140:10 | Store: i | test.cpp:135:16:135:16 | InitializeParameter: x | 0 | false | CompareLT: ... < ... | test.cpp:139:11:139:15 | test.cpp:139:11:139:15 |
|
||||
|
||||
@@ -104,7 +104,7 @@ void test9(int x) {
|
||||
}
|
||||
|
||||
// Phi nodes as bounds
|
||||
int test10(int y, int z, bool use_y) {
|
||||
void test10(int y, int z, bool use_y) {
|
||||
int x;
|
||||
if(use_y) {
|
||||
x = y;
|
||||
@@ -112,9 +112,9 @@ int test10(int y, int z, bool use_y) {
|
||||
x = z;
|
||||
}
|
||||
sink();
|
||||
for(int i = 0; i < x; i++) {
|
||||
return i;
|
||||
}
|
||||
int i = source();
|
||||
if (i < x)
|
||||
sink(i);
|
||||
}
|
||||
|
||||
// Irreducible CFGs
|
||||
|
||||
@@ -30,7 +30,6 @@ missingOperand
|
||||
unexpectedOperand
|
||||
duplicateOperand
|
||||
missingPhiOperand
|
||||
| cpp11.cpp:141:7:141:7 | Phi: g | cpp11.cpp:161:16:161:16 | NoOp: label ...: |
|
||||
missingOperandType
|
||||
duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
@@ -83,50 +82,48 @@ ambiguousSuccessors
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | pmcallexpr.cpp:7:5:7:5 | VariableAddress: definition of c |
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | staticmembercallexpr.cpp:7:4:7:4 | VariableAddress: definition of c |
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | staticmembercallexpr_args.cpp:8:6:8:6 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| conditional_destructors.cpp:29:6:29:7 | UnmodeledDefinition: f1 | Goto | 2 | conditional_destructors.cpp:30:9:30:13 | FunctionAddress: call to C1 |
|
||||
| conditional_destructors.cpp:29:6:29:7 | UnmodeledDefinition: f1 | Goto | 2 | forstmt.cpp:2:14:2:14 | VariableAddress: definition of i |
|
||||
| conditional_destructors.cpp:38:6:38:7 | UnmodeledDefinition: f2 | Goto | 2 | conditional_destructors.cpp:39:9:39:13 | FunctionAddress: call to C2 |
|
||||
@@ -213,50 +210,48 @@ ambiguousSuccessors
|
||||
| dostmt.c:16:6:16:18 | UnmodeledDefinition: always_true_2 | Goto | 4 | whilestmt.c:24:9:24:9 | Constant: 1 |
|
||||
| dostmt.c:25:6:25:18 | UnmodeledDefinition: always_true_3 | Goto | 2 | dostmt.c:27:5:27:7 | NoOp: label ...: |
|
||||
| dostmt.c:25:6:25:18 | UnmodeledDefinition: always_true_3 | Goto | 2 | whilestmt.c:33:9:33:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | array_delete.cpp:6:12:6:24 | Constant: (Foo *)... |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | assignexpr.cpp:7:4:7:4 | VariableAddress: definition of c |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | constmemberaccess.cpp:7:5:7:5 | VariableAddress: definition of c |
|
||||
@@ -361,50 +356,48 @@ ambiguousSuccessors
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition: main | Goto | 4 | no_dynamic_init.cpp:11:3:11:11 | VariableAddress: return ... |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition: main | Goto | 4 | parameterinitializer.cpp:19:5:19:5 | FunctionAddress: call to f |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition: main | Goto | 4 | stream_it.cpp:18:15:18:16 | VariableAddress: definition of xs |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nonmembercallexpr.c:1:6:1:6 | UnmodeledDefinition: g | Goto | 2 | nonmembercallexpr.c:1:12:1:12 | NoOp: return ... |
|
||||
| nonmembercallexpr.c:1:6:1:6 | UnmodeledDefinition: g | Goto | 2 | revsubscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| parameterinitializer.cpp:18:5:18:8 | UnmodeledDefinition: main | Goto | 4 | allocators.cpp:16:8:16:10 | VariableAddress: definition of foo |
|
||||
@@ -463,50 +456,48 @@ ambiguousSuccessors
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition: main | Goto | 4 | no_dynamic_init.cpp:11:3:11:11 | VariableAddress: return ... |
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition: main | Goto | 4 | parameterinitializer.cpp:19:5:19:5 | FunctionAddress: call to f |
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition: main | Goto | 4 | stream_it.cpp:18:15:18:16 | VariableAddress: definition of xs |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition: always_false_1 | Goto | 3 | ifelsestmt.c:2:6:2:6 | Constant: 0 |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition: always_false_1 | Goto | 3 | ifstmt.c:2:6:2:6 | Constant: 0 |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition: always_false_1 | Goto | 3 | whilestmt.c:2:9:2:9 | Constant: 0 |
|
||||
@@ -539,6 +530,7 @@ unexplainedLoop
|
||||
| range_analysis.c:355:14:355:27 | test_ternary01 | range_analysis.c:367:10:367:10 | Load: x |
|
||||
| range_analysis.c:355:14:355:27 | test_ternary01 | range_analysis.c:367:10:367:10 | VariableAddress: x |
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
uniqueEnclosingCallable
|
||||
| enum.c:2:6:2:6 | 1 | Node should have one enclosing callable but has 0. |
|
||||
| enum.c:2:6:2:10 | ... + ... | Node should have one enclosing callable but has 0. |
|
||||
| enum.c:2:10:2:10 | 1 | Node should have one enclosing callable but has 0. |
|
||||
| misc.c:11:17:11:17 | 1 | Node should have one enclosing callable but has 0. |
|
||||
| misc.c:11:17:11:21 | ... + ... | Node should have one enclosing callable but has 0. |
|
||||
| misc.c:11:21:11:21 | 2 | Node should have one enclosing callable but has 0. |
|
||||
| misc.c:210:24:210:24 | 0 | Node should have one enclosing callable but has 0. |
|
||||
| misc.c:210:24:210:28 | ... + ... | Node should have one enclosing callable but has 0. |
|
||||
| misc.c:210:28:210:28 | 1 | Node should have one enclosing callable but has 0. |
|
||||
uniqueTypeBound
|
||||
| bad_asts.cpp:19:10:19:10 | constructor init of field x [post-this] | Node should have one type bound but has 0. |
|
||||
| bad_asts.cpp:19:10:19:10 | constructor init of field x [pre-this] | Node should have one type bound but has 0. |
|
||||
| bad_asts.cpp:19:10:19:10 | constructor init of field y [post-this] | Node should have one type bound but has 0. |
|
||||
| bad_asts.cpp:19:10:19:10 | constructor init of field y [pre-this] | Node should have one type bound but has 0. |
|
||||
| cpp17.cpp:15:5:15:45 | call to unknown function | Node should have one type bound but has 0. |
|
||||
| ir.cpp:784:15:784:15 | constructor init of field middlevb2_s [post-this] | Node should have one type bound but has 0. |
|
||||
| ir.cpp:784:15:784:15 | constructor init of field middlevb2_s [pre-this] | Node should have one type bound but has 0. |
|
||||
| static_init_templates.cpp:240:7:240:7 | constructor init of field mcc [post-this] | Node should have one type bound but has 0. |
|
||||
| static_init_templates.cpp:240:7:240:7 | constructor init of field mcc [pre-this] | Node should have one type bound but has 0. |
|
||||
uniqueTypeRepr
|
||||
| bad_asts.cpp:19:10:19:10 | constructor init of field x [post-this] | Node should have one type representation but has 0. |
|
||||
| bad_asts.cpp:19:10:19:10 | constructor init of field x [pre-this] | Node should have one type representation but has 0. |
|
||||
| bad_asts.cpp:19:10:19:10 | constructor init of field y [post-this] | Node should have one type representation but has 0. |
|
||||
| bad_asts.cpp:19:10:19:10 | constructor init of field y [pre-this] | Node should have one type representation but has 0. |
|
||||
| cpp17.cpp:15:5:15:45 | call to unknown function | Node should have one type representation but has 0. |
|
||||
| ir.cpp:784:15:784:15 | constructor init of field middlevb2_s [post-this] | Node should have one type representation but has 0. |
|
||||
| ir.cpp:784:15:784:15 | constructor init of field middlevb2_s [pre-this] | Node should have one type representation but has 0. |
|
||||
| static_init_templates.cpp:240:7:240:7 | constructor init of field mcc [post-this] | Node should have one type representation but has 0. |
|
||||
| static_init_templates.cpp:240:7:240:7 | constructor init of field mcc [pre-this] | Node should have one type representation but has 0. |
|
||||
uniqueNodeLocation
|
||||
| break_labels.c:2:11:2:11 | i | Node should have one location but has 4. |
|
||||
| break_labels.c:2:11:2:11 | x | Node should have one location but has 4. |
|
||||
| cpp11.cpp:82:17:82:55 | call to Val | Node should have one location but has 2. |
|
||||
| cpp11.cpp:82:17:82:55 | call to Val | Node should have one location but has 2. |
|
||||
| duff.c:2:12:2:12 | i | Node should have one location but has 4. |
|
||||
| duff.c:2:12:2:12 | x | Node should have one location but has 4. |
|
||||
| file://:0:0:0:0 | call to PolymorphicBase | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to PolymorphicDerived | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to Val | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to Val | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | call to exn1 | Node should have one location but has 2. |
|
||||
| file://:0:0:0:0 | p#2 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#2 | Node should have one location but has 0. |
|
||||
| ifelsestmt.c:37:17:37:17 | x | Node should have one location but has 2. |
|
||||
| ifelsestmt.c:37:24:37:24 | y | Node should have one location but has 2. |
|
||||
| ifstmt.c:27:17:27:17 | x | Node should have one location but has 2. |
|
||||
| ifstmt.c:27:24:27:24 | y | Node should have one location but has 2. |
|
||||
| ir.cpp:850:19:850:19 | call to PolymorphicBase | Node should have one location but has 2. |
|
||||
| ir.cpp:851:22:851:22 | call to PolymorphicDerived | Node should have one location but has 2. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | i | Node should have one location but has 4. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | x | Node should have one location but has 4. |
|
||||
| switchstmt.c:1:12:1:12 | i | Node should have one location but has 4. |
|
||||
| switchstmt.c:1:12:1:12 | x | Node should have one location but has 4. |
|
||||
| try_catch.cpp:13:5:13:16 | call to exn1 | Node should have one location but has 2. |
|
||||
missingLocation
|
||||
| Nodes without location: 2 |
|
||||
uniqueNodeToString
|
||||
| break_labels.c:2:11:2:11 | i | Node should have one toString but has 2. |
|
||||
| break_labels.c:2:11:2:11 | x | Node should have one toString but has 2. |
|
||||
| break_labels.c:4:9:4:9 | i | Node should have one toString but has 2. |
|
||||
| break_labels.c:4:9:4:9 | x | Node should have one toString but has 2. |
|
||||
| break_labels.c:6:16:6:16 | i | Node should have one toString but has 2. |
|
||||
| break_labels.c:6:16:6:16 | x | Node should have one toString but has 2. |
|
||||
| break_labels.c:7:17:7:17 | i | Node should have one toString but has 2. |
|
||||
| break_labels.c:7:17:7:17 | x | Node should have one toString but has 2. |
|
||||
| duff.c:2:12:2:12 | i | Node should have one toString but has 2. |
|
||||
| duff.c:2:12:2:12 | x | Node should have one toString but has 2. |
|
||||
| duff.c:3:14:3:14 | i | Node should have one toString but has 2. |
|
||||
| duff.c:3:14:3:14 | x | Node should have one toString but has 2. |
|
||||
| duff.c:4:13:4:13 | i | Node should have one toString but has 2. |
|
||||
| duff.c:4:13:4:13 | x | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | i | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | x | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:2:14:2:14 | i | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:2:14:2:14 | x | Node should have one toString but has 2. |
|
||||
| switchstmt.c:1:12:1:12 | i | Node should have one toString but has 2. |
|
||||
| switchstmt.c:1:12:1:12 | x | Node should have one toString but has 2. |
|
||||
| switchstmt.c:2:14:2:14 | i | Node should have one toString but has 2. |
|
||||
| switchstmt.c:2:14:2:14 | x | Node should have one toString but has 2. |
|
||||
missingToString
|
||||
parameterCallable
|
||||
localFlowIsLocal
|
||||
compatibleTypesReflexive
|
||||
unreachableNodeCCtx
|
||||
localCallNodes
|
||||
postIsNotPre
|
||||
postHasUniquePre
|
||||
uniquePostUpdate
|
||||
postIsInSameCallable
|
||||
reverseRead
|
||||
storeIsPostUpdate
|
||||
argHasPostUpdate
|
||||
| builtin.cpp:15:31:15:35 | * ... | ArgumentNode is missing PostUpdateNode. |
|
||||
| cpp11.cpp:77:5:77:17 | unaryFunction | ArgumentNode is missing PostUpdateNode. |
|
||||
| destructors.cpp:52:14:52:16 | ref | ArgumentNode is missing PostUpdateNode. |
|
||||
| ir.cpp:623:5:623:5 | r | ArgumentNode is missing PostUpdateNode. |
|
||||
| ir.cpp:625:5:625:5 | s | ArgumentNode is missing PostUpdateNode. |
|
||||
@@ -0,0 +1 @@
|
||||
import semmle.code.cpp.dataflow.internal.DataFlowImplConsistency::Consistency
|
||||
@@ -0,0 +1,795 @@
|
||||
uniqueEnclosingCallable
|
||||
uniqueTypeBound
|
||||
uniqueTypeRepr
|
||||
uniqueNodeLocation
|
||||
| aggregateinitializer.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| aggregateinitializer.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| allocators.cpp:14:5:14:8 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | AliasedUse | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | Chi | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | EnterFunction | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | ExitFunction | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | Phi | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | Phi | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | ReturnValue | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| allocators.cpp:14:5:14:8 | VariableAddress | Node should have one location but has 4. |
|
||||
| array_delete.cpp:5:6:5:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| array_delete.cpp:5:6:5:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| array_delete.cpp:5:6:5:6 | Chi | Node should have one location but has 14. |
|
||||
| array_delete.cpp:5:6:5:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| array_delete.cpp:5:6:5:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| array_delete.cpp:5:6:5:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| array_delete.cpp:5:6:5:6 | Phi | Node should have one location but has 14. |
|
||||
| array_delete.cpp:5:6:5:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| array_delete.cpp:5:6:5:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| array_delete.cpp:5:6:5:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | Chi | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | Phi | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| break_labels.c:2:5:2:5 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | AliasedUse | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | Chi | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | EnterFunction | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | ExitFunction | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | Phi | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | ReturnVoid | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| break_labels.c:2:5:2:5 | Unreached | Node should have one location but has 20. |
|
||||
| break_labels.c:2:11:2:11 | VariableAddress | Node should have one location but has 4. |
|
||||
| break_labels.c:2:11:2:11 | i | Node should have one location but has 4. |
|
||||
| break_labels.c:2:11:2:11 | i | Node should have one location but has 4. |
|
||||
| break_labels.c:2:11:2:11 | x | Node should have one location but has 4. |
|
||||
| break_labels.c:2:11:2:11 | x | Node should have one location but has 4. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | AliasedDefinition | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | AliasedUse | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | Chi | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | EnterFunction | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | ExitFunction | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | InitializeNonLocal | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | Phi | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | ReturnVoid | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | UnmodeledDefinition | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:29:6:29:7 | UnmodeledUse | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | AliasedDefinition | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | AliasedUse | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | Chi | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | EnterFunction | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | ExitFunction | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | InitializeNonLocal | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | Phi | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | ReturnVoid | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | UnmodeledDefinition | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | UnmodeledUse | Node should have one location but has 2. |
|
||||
| conditional_destructors.cpp:38:6:38:7 | Unreached | Node should have one location but has 2. |
|
||||
| constmemberaccess.cpp:3:7:3:7 | x | Node should have one location but has 2. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | Chi | Node should have one location but has 14. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | Phi | Node should have one location but has 14. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| constmemberaccess.cpp:6:6:6:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:3:9:3:9 | i | Node should have one location but has 2. |
|
||||
| constructorinitializer.cpp:3:9:3:9 | x | Node should have one location but has 2. |
|
||||
| constructorinitializer.cpp:3:16:3:16 | j | Node should have one location but has 2. |
|
||||
| constructorinitializer.cpp:3:16:3:16 | y | Node should have one location but has 2. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | Chi | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | Phi | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| constructorinitializer.cpp:6:6:6:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | Chi | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | Phi | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| defconstructornewexpr.cpp:3:6:3:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | Chi | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | Phi | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| defdestructordeleteexpr.cpp:3:6:3:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | Chi | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | Phi | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| deleteexpr.cpp:6:6:6:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| dostmt.c:8:6:8:18 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| dostmt.c:8:6:8:18 | AliasedUse | Node should have one location but has 4. |
|
||||
| dostmt.c:8:6:8:18 | Chi | Node should have one location but has 4. |
|
||||
| dostmt.c:8:6:8:18 | EnterFunction | Node should have one location but has 4. |
|
||||
| dostmt.c:8:6:8:18 | ExitFunction | Node should have one location but has 4. |
|
||||
| dostmt.c:8:6:8:18 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| dostmt.c:8:6:8:18 | ReturnVoid | Node should have one location but has 4. |
|
||||
| dostmt.c:8:6:8:18 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| dostmt.c:8:6:8:18 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| dostmt.c:8:6:8:18 | Unreached | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | AliasedUse | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | Chi | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | EnterFunction | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | ExitFunction | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | ReturnVoid | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| dostmt.c:16:6:16:18 | Unreached | Node should have one location but has 4. |
|
||||
| dostmt.c:25:6:25:18 | AliasedDefinition | Node should have one location but has 2. |
|
||||
| dostmt.c:25:6:25:18 | Chi | Node should have one location but has 2. |
|
||||
| dostmt.c:25:6:25:18 | EnterFunction | Node should have one location but has 2. |
|
||||
| dostmt.c:25:6:25:18 | InitializeNonLocal | Node should have one location but has 2. |
|
||||
| dostmt.c:25:6:25:18 | UnmodeledDefinition | Node should have one location but has 2. |
|
||||
| dostmt.c:25:6:25:18 | Unreached | Node should have one location but has 2. |
|
||||
| dostmt.c:32:6:32:11 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| dostmt.c:32:6:32:11 | AliasedUse | Node should have one location but has 4. |
|
||||
| dostmt.c:32:6:32:11 | Chi | Node should have one location but has 4. |
|
||||
| dostmt.c:32:6:32:11 | EnterFunction | Node should have one location but has 4. |
|
||||
| dostmt.c:32:6:32:11 | ExitFunction | Node should have one location but has 4. |
|
||||
| dostmt.c:32:6:32:11 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| dostmt.c:32:6:32:11 | ReturnVoid | Node should have one location but has 4. |
|
||||
| dostmt.c:32:6:32:11 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| dostmt.c:32:6:32:11 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| duff.c:2:6:2:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | Chi | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | Phi | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| duff.c:2:6:2:6 | Unreached | Node should have one location but has 20. |
|
||||
| duff.c:2:12:2:12 | VariableAddress | Node should have one location but has 4. |
|
||||
| duff.c:2:12:2:12 | i | Node should have one location but has 4. |
|
||||
| duff.c:2:12:2:12 | i | Node should have one location but has 4. |
|
||||
| duff.c:2:12:2:12 | x | Node should have one location but has 4. |
|
||||
| duff.c:2:12:2:12 | x | Node should have one location but has 4. |
|
||||
| dummyblock.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| dummyblock.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| emptyblock.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | AliasedUse | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | Chi | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | EnterFunction | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | ExitFunction | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | Phi | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | ReturnVoid | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| enum.c:5:5:5:5 | Unreached | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| exprstmt.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| fieldaccess.cpp:3:7:3:7 | x | Node should have one location but has 2. |
|
||||
| fieldaccess.cpp:6:6:6:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| fieldaccess.cpp:6:6:6:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| fieldaccess.cpp:6:6:6:6 | Chi | Node should have one location but has 14. |
|
||||
| fieldaccess.cpp:6:6:6:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| fieldaccess.cpp:6:6:6:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| fieldaccess.cpp:6:6:6:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| fieldaccess.cpp:6:6:6:6 | Phi | Node should have one location but has 14. |
|
||||
| fieldaccess.cpp:6:6:6:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| file://:0:0:0:0 | InitializeIndirection | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | Load | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | ReturnIndirection | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | VariableAddress | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#0 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#1 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#1 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#1 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#1 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#1 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#1 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#1 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#1 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#2 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#2 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#2 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#2 | Node should have one location but has 0. |
|
||||
| file://:0:0:0:0 | p#3 | Node should have one location but has 0. |
|
||||
| forstmt.cpp:1:6:1:7 | AliasedDefinition | Node should have one location but has 2. |
|
||||
| forstmt.cpp:1:6:1:7 | AliasedUse | Node should have one location but has 2. |
|
||||
| forstmt.cpp:1:6:1:7 | Chi | Node should have one location but has 2. |
|
||||
| forstmt.cpp:1:6:1:7 | EnterFunction | Node should have one location but has 2. |
|
||||
| forstmt.cpp:1:6:1:7 | ExitFunction | Node should have one location but has 2. |
|
||||
| forstmt.cpp:1:6:1:7 | InitializeNonLocal | Node should have one location but has 2. |
|
||||
| forstmt.cpp:1:6:1:7 | Phi | Node should have one location but has 2. |
|
||||
| forstmt.cpp:1:6:1:7 | ReturnVoid | Node should have one location but has 2. |
|
||||
| forstmt.cpp:1:6:1:7 | UnmodeledDefinition | Node should have one location but has 2. |
|
||||
| forstmt.cpp:1:6:1:7 | UnmodeledUse | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | AliasedDefinition | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | AliasedUse | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | Chi | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | EnterFunction | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | ExitFunction | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | InitializeNonLocal | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | Phi | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | ReturnVoid | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | UnmodeledDefinition | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | UnmodeledUse | Node should have one location but has 2. |
|
||||
| forstmt.cpp:8:6:8:7 | Unreached | Node should have one location but has 2. |
|
||||
| ifelsestmt.c:1:6:1:19 | AliasedDefinition | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:1:6:1:19 | AliasedUse | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:1:6:1:19 | Chi | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:1:6:1:19 | EnterFunction | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:1:6:1:19 | ExitFunction | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:1:6:1:19 | InitializeNonLocal | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:1:6:1:19 | ReturnVoid | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:1:6:1:19 | UnmodeledDefinition | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:1:6:1:19 | UnmodeledUse | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:1:6:1:19 | Unreached | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | AliasedDefinition | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | AliasedUse | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | Chi | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | EnterFunction | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | ExitFunction | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | InitializeNonLocal | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | ReturnVoid | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | UnmodeledDefinition | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | UnmodeledUse | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:11:6:11:19 | Unreached | Node should have one location but has 3. |
|
||||
| ifelsestmt.c:19:6:19:18 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:19:6:19:18 | AliasedUse | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:19:6:19:18 | Chi | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:19:6:19:18 | EnterFunction | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:19:6:19:18 | ExitFunction | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:19:6:19:18 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:19:6:19:18 | ReturnVoid | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:19:6:19:18 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:19:6:19:18 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:19:6:19:18 | Unreached | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | AliasedUse | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | Chi | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | EnterFunction | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | ExitFunction | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | ReturnVoid | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:29:6:29:18 | Unreached | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:6:37:11 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:6:37:11 | AliasedUse | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:6:37:11 | Chi | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:6:37:11 | EnterFunction | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:6:37:11 | ExitFunction | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:6:37:11 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:6:37:11 | ReturnVoid | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:6:37:11 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:6:37:11 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| ifelsestmt.c:37:17:37:17 | VariableAddress | Node should have one location but has 2. |
|
||||
| ifelsestmt.c:37:17:37:17 | x | Node should have one location but has 2. |
|
||||
| ifelsestmt.c:37:17:37:17 | x | Node should have one location but has 2. |
|
||||
| ifelsestmt.c:37:24:37:24 | VariableAddress | Node should have one location but has 2. |
|
||||
| ifelsestmt.c:37:24:37:24 | y | Node should have one location but has 2. |
|
||||
| ifelsestmt.c:37:24:37:24 | y | Node should have one location but has 2. |
|
||||
| ifstmt.c:1:6:1:19 | AliasedDefinition | Node should have one location but has 3. |
|
||||
| ifstmt.c:1:6:1:19 | AliasedUse | Node should have one location but has 3. |
|
||||
| ifstmt.c:1:6:1:19 | Chi | Node should have one location but has 3. |
|
||||
| ifstmt.c:1:6:1:19 | EnterFunction | Node should have one location but has 3. |
|
||||
| ifstmt.c:1:6:1:19 | ExitFunction | Node should have one location but has 3. |
|
||||
| ifstmt.c:1:6:1:19 | InitializeNonLocal | Node should have one location but has 3. |
|
||||
| ifstmt.c:1:6:1:19 | ReturnVoid | Node should have one location but has 3. |
|
||||
| ifstmt.c:1:6:1:19 | UnmodeledDefinition | Node should have one location but has 3. |
|
||||
| ifstmt.c:1:6:1:19 | UnmodeledUse | Node should have one location but has 3. |
|
||||
| ifstmt.c:1:6:1:19 | Unreached | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | AliasedDefinition | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | AliasedUse | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | Chi | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | EnterFunction | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | ExitFunction | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | InitializeNonLocal | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | ReturnVoid | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | UnmodeledDefinition | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | UnmodeledUse | Node should have one location but has 3. |
|
||||
| ifstmt.c:8:6:8:19 | Unreached | Node should have one location but has 3. |
|
||||
| ifstmt.c:14:6:14:18 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| ifstmt.c:14:6:14:18 | AliasedUse | Node should have one location but has 4. |
|
||||
| ifstmt.c:14:6:14:18 | Chi | Node should have one location but has 4. |
|
||||
| ifstmt.c:14:6:14:18 | EnterFunction | Node should have one location but has 4. |
|
||||
| ifstmt.c:14:6:14:18 | ExitFunction | Node should have one location but has 4. |
|
||||
| ifstmt.c:14:6:14:18 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| ifstmt.c:14:6:14:18 | ReturnVoid | Node should have one location but has 4. |
|
||||
| ifstmt.c:14:6:14:18 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| ifstmt.c:14:6:14:18 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| ifstmt.c:14:6:14:18 | Unreached | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | AliasedUse | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | Chi | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | EnterFunction | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | ExitFunction | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | ReturnVoid | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| ifstmt.c:21:6:21:18 | Unreached | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:6:27:11 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:6:27:11 | AliasedUse | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:6:27:11 | Chi | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:6:27:11 | EnterFunction | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:6:27:11 | ExitFunction | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:6:27:11 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:6:27:11 | ReturnVoid | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:6:27:11 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:6:27:11 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| ifstmt.c:27:17:27:17 | VariableAddress | Node should have one location but has 2. |
|
||||
| ifstmt.c:27:17:27:17 | x | Node should have one location but has 2. |
|
||||
| ifstmt.c:27:17:27:17 | x | Node should have one location but has 2. |
|
||||
| ifstmt.c:27:24:27:24 | VariableAddress | Node should have one location but has 2. |
|
||||
| ifstmt.c:27:24:27:24 | y | Node should have one location but has 2. |
|
||||
| ifstmt.c:27:24:27:24 | y | Node should have one location but has 2. |
|
||||
| initializer.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| initializer.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| landexpr.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| lorexpr.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| ltrbinopexpr.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| membercallexpr.cpp:6:6:6:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| membercallexpr.cpp:6:6:6:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| membercallexpr.cpp:6:6:6:6 | Chi | Node should have one location but has 14. |
|
||||
| membercallexpr.cpp:6:6:6:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| membercallexpr.cpp:6:6:6:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| membercallexpr.cpp:6:6:6:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| membercallexpr.cpp:6:6:6:6 | Phi | Node should have one location but has 14. |
|
||||
| membercallexpr.cpp:6:6:6:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| membercallexpr.cpp:6:6:6:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| membercallexpr.cpp:6:6:6:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:3:6:3:6 | d | Node should have one location but has 2. |
|
||||
| membercallexpr_args.cpp:4:14:4:14 | x | Node should have one location but has 2. |
|
||||
| membercallexpr_args.cpp:4:21:4:21 | y | Node should have one location but has 2. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | Chi | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | Phi | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| membercallexpr_args.cpp:7:6:7:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| newexpr.cpp:3:9:3:9 | i | Node should have one location but has 2. |
|
||||
| newexpr.cpp:3:9:3:9 | x | Node should have one location but has 2. |
|
||||
| newexpr.cpp:3:16:3:16 | j | Node should have one location but has 2. |
|
||||
| newexpr.cpp:3:16:3:16 | y | Node should have one location but has 2. |
|
||||
| newexpr.cpp:6:6:6:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| newexpr.cpp:6:6:6:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| newexpr.cpp:6:6:6:6 | Chi | Node should have one location but has 14. |
|
||||
| newexpr.cpp:6:6:6:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| newexpr.cpp:6:6:6:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| newexpr.cpp:6:6:6:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| newexpr.cpp:6:6:6:6 | Phi | Node should have one location but has 14. |
|
||||
| newexpr.cpp:6:6:6:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| newexpr.cpp:6:6:6:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| newexpr.cpp:6:6:6:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | AliasedUse | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | Chi | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | EnterFunction | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | ExitFunction | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | Phi | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | Phi | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | ReturnValue | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | VariableAddress | Node should have one location but has 4. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | VariableAddress | Node should have one location but has 4. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | i | Node should have one location but has 4. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | i | Node should have one location but has 4. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | x | Node should have one location but has 4. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | x | Node should have one location but has 4. |
|
||||
| nonmembercallexpr.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 2. |
|
||||
| nonmembercallexpr.c:1:6:1:6 | AliasedUse | Node should have one location but has 2. |
|
||||
| nonmembercallexpr.c:1:6:1:6 | Chi | Node should have one location but has 2. |
|
||||
| nonmembercallexpr.c:1:6:1:6 | EnterFunction | Node should have one location but has 2. |
|
||||
| nonmembercallexpr.c:1:6:1:6 | ExitFunction | Node should have one location but has 2. |
|
||||
| nonmembercallexpr.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 2. |
|
||||
| nonmembercallexpr.c:1:6:1:6 | ReturnVoid | Node should have one location but has 2. |
|
||||
| nonmembercallexpr.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 2. |
|
||||
| nonmembercallexpr.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 2. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | Chi | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | Phi | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| nonmembercallexpr.c:3:6:3:6 | Unreached | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | Chi | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | Phi | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| nonmemberfp2callexpr.c:3:6:3:6 | Unreached | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| nonmemberfpcallexpr.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | AliasedUse | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | Chi | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | EnterFunction | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | ExitFunction | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | Phi | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | Phi | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | ReturnValue | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| parameterinitializer.cpp:18:5:18:8 | VariableAddress | Node should have one location but has 4. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | Chi | Node should have one location but has 14. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | Phi | Node should have one location but has 14. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| pmcallexpr.cpp:6:6:6:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| questionexpr.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| questionexpr.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| revsubscriptexpr.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 2. |
|
||||
| revsubscriptexpr.c:1:6:1:6 | AliasedUse | Node should have one location but has 2. |
|
||||
| revsubscriptexpr.c:1:6:1:6 | Chi | Node should have one location but has 2. |
|
||||
| revsubscriptexpr.c:1:6:1:6 | EnterFunction | Node should have one location but has 2. |
|
||||
| revsubscriptexpr.c:1:6:1:6 | ExitFunction | Node should have one location but has 2. |
|
||||
| revsubscriptexpr.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 2. |
|
||||
| revsubscriptexpr.c:1:6:1:6 | ReturnVoid | Node should have one location but has 2. |
|
||||
| revsubscriptexpr.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 2. |
|
||||
| revsubscriptexpr.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 2. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | Chi | Node should have one location but has 14. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | Phi | Node should have one location but has 14. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| staticmembercallexpr.cpp:6:6:6:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:3:6:3:6 | d | Node should have one location but has 2. |
|
||||
| staticmembercallexpr_args.cpp:4:21:4:21 | x | Node should have one location but has 2. |
|
||||
| staticmembercallexpr_args.cpp:4:28:4:28 | y | Node should have one location but has 2. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | AliasedDefinition | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | AliasedUse | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | Chi | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | EnterFunction | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | ExitFunction | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | InitializeNonLocal | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | Phi | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | ReturnVoid | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | UnmodeledDefinition | Node should have one location but has 14. |
|
||||
| staticmembercallexpr_args.cpp:7:6:7:6 | UnmodeledUse | Node should have one location but has 14. |
|
||||
| stream_it.cpp:16:5:16:8 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | AliasedUse | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | Chi | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | EnterFunction | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | ExitFunction | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | Phi | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | Phi | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | ReturnValue | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| stream_it.cpp:16:5:16:8 | VariableAddress | Node should have one location but has 4. |
|
||||
| subscriptexpr.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| subscriptexpr.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| switchstmt.c:1:12:1:12 | VariableAddress | Node should have one location but has 4. |
|
||||
| switchstmt.c:1:12:1:12 | i | Node should have one location but has 4. |
|
||||
| switchstmt.c:1:12:1:12 | i | Node should have one location but has 4. |
|
||||
| switchstmt.c:1:12:1:12 | x | Node should have one location but has 4. |
|
||||
| switchstmt.c:1:12:1:12 | x | Node should have one location but has 4. |
|
||||
| tinyforstmt.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| tinyforstmt.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | AliasedDefinition | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | AliasedUse | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | Chi | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | EnterFunction | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | ExitFunction | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | InitializeNonLocal | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | Phi | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | ReturnVoid | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | UnmodeledDefinition | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | UnmodeledUse | Node should have one location but has 20. |
|
||||
| unaryopexpr.c:1:6:1:6 | Unreached | Node should have one location but has 20. |
|
||||
| whilestmt.c:1:6:1:19 | AliasedDefinition | Node should have one location but has 3. |
|
||||
| whilestmt.c:1:6:1:19 | AliasedUse | Node should have one location but has 3. |
|
||||
| whilestmt.c:1:6:1:19 | Chi | Node should have one location but has 3. |
|
||||
| whilestmt.c:1:6:1:19 | EnterFunction | Node should have one location but has 3. |
|
||||
| whilestmt.c:1:6:1:19 | ExitFunction | Node should have one location but has 3. |
|
||||
| whilestmt.c:1:6:1:19 | InitializeNonLocal | Node should have one location but has 3. |
|
||||
| whilestmt.c:1:6:1:19 | ReturnVoid | Node should have one location but has 3. |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition | Node should have one location but has 3. |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledUse | Node should have one location but has 3. |
|
||||
| whilestmt.c:1:6:1:19 | Unreached | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | AliasedDefinition | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | AliasedUse | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | Chi | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | EnterFunction | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | ExitFunction | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | InitializeNonLocal | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | ReturnVoid | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | UnmodeledDefinition | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | UnmodeledUse | Node should have one location but has 3. |
|
||||
| whilestmt.c:8:6:8:19 | Unreached | Node should have one location but has 3. |
|
||||
| whilestmt.c:15:6:15:18 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| whilestmt.c:15:6:15:18 | AliasedUse | Node should have one location but has 4. |
|
||||
| whilestmt.c:15:6:15:18 | Chi | Node should have one location but has 4. |
|
||||
| whilestmt.c:15:6:15:18 | EnterFunction | Node should have one location but has 4. |
|
||||
| whilestmt.c:15:6:15:18 | ExitFunction | Node should have one location but has 4. |
|
||||
| whilestmt.c:15:6:15:18 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| whilestmt.c:15:6:15:18 | ReturnVoid | Node should have one location but has 4. |
|
||||
| whilestmt.c:15:6:15:18 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| whilestmt.c:15:6:15:18 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| whilestmt.c:15:6:15:18 | Unreached | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | AliasedUse | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | Chi | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | EnterFunction | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | ExitFunction | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | ReturnVoid | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | UnmodeledUse | Node should have one location but has 4. |
|
||||
| whilestmt.c:23:6:23:18 | Unreached | Node should have one location but has 4. |
|
||||
| whilestmt.c:32:6:32:18 | AliasedDefinition | Node should have one location but has 2. |
|
||||
| whilestmt.c:32:6:32:18 | Chi | Node should have one location but has 2. |
|
||||
| whilestmt.c:32:6:32:18 | EnterFunction | Node should have one location but has 2. |
|
||||
| whilestmt.c:32:6:32:18 | InitializeNonLocal | Node should have one location but has 2. |
|
||||
| whilestmt.c:32:6:32:18 | UnmodeledDefinition | Node should have one location but has 2. |
|
||||
| whilestmt.c:32:6:32:18 | Unreached | Node should have one location but has 2. |
|
||||
| whilestmt.c:39:6:39:11 | AliasedDefinition | Node should have one location but has 4. |
|
||||
| whilestmt.c:39:6:39:11 | AliasedUse | Node should have one location but has 4. |
|
||||
| whilestmt.c:39:6:39:11 | Chi | Node should have one location but has 4. |
|
||||
| whilestmt.c:39:6:39:11 | EnterFunction | Node should have one location but has 4. |
|
||||
| whilestmt.c:39:6:39:11 | ExitFunction | Node should have one location but has 4. |
|
||||
| whilestmt.c:39:6:39:11 | InitializeNonLocal | Node should have one location but has 4. |
|
||||
| whilestmt.c:39:6:39:11 | ReturnVoid | Node should have one location but has 4. |
|
||||
| whilestmt.c:39:6:39:11 | UnmodeledDefinition | Node should have one location but has 4. |
|
||||
| whilestmt.c:39:6:39:11 | UnmodeledUse | Node should have one location but has 4. |
|
||||
missingLocation
|
||||
| Nodes without location: 30 |
|
||||
uniqueNodeToString
|
||||
| break_labels.c:2:11:2:11 | i | Node should have one toString but has 2. |
|
||||
| break_labels.c:2:11:2:11 | i | Node should have one toString but has 2. |
|
||||
| break_labels.c:2:11:2:11 | x | Node should have one toString but has 2. |
|
||||
| break_labels.c:2:11:2:11 | x | Node should have one toString but has 2. |
|
||||
| break_labels.c:4:9:4:9 | i | Node should have one toString but has 2. |
|
||||
| break_labels.c:4:9:4:9 | x | Node should have one toString but has 2. |
|
||||
| break_labels.c:6:16:6:16 | i | Node should have one toString but has 2. |
|
||||
| break_labels.c:6:16:6:16 | x | Node should have one toString but has 2. |
|
||||
| break_labels.c:7:17:7:17 | i | Node should have one toString but has 2. |
|
||||
| break_labels.c:7:17:7:17 | x | Node should have one toString but has 2. |
|
||||
| constructorinitializer.cpp:3:9:3:9 | i | Node should have one toString but has 2. |
|
||||
| constructorinitializer.cpp:3:9:3:9 | x | Node should have one toString but has 2. |
|
||||
| constructorinitializer.cpp:3:16:3:16 | j | Node should have one toString but has 2. |
|
||||
| constructorinitializer.cpp:3:16:3:16 | y | Node should have one toString but has 2. |
|
||||
| duff.c:2:12:2:12 | i | Node should have one toString but has 2. |
|
||||
| duff.c:2:12:2:12 | i | Node should have one toString but has 2. |
|
||||
| duff.c:2:12:2:12 | x | Node should have one toString but has 2. |
|
||||
| duff.c:2:12:2:12 | x | Node should have one toString but has 2. |
|
||||
| duff.c:3:14:3:14 | i | Node should have one toString but has 2. |
|
||||
| duff.c:3:14:3:14 | x | Node should have one toString but has 2. |
|
||||
| duff.c:4:13:4:13 | i | Node should have one toString but has 2. |
|
||||
| duff.c:4:13:4:13 | x | Node should have one toString but has 2. |
|
||||
| ir.cpp:888:6:888:16 | (no string representation) | Node should have one toString but has 0. |
|
||||
| misc.c:197:6:197:9 | (no string representation) | Node should have one toString but has 0. |
|
||||
| newexpr.cpp:3:9:3:9 | i | Node should have one toString but has 2. |
|
||||
| newexpr.cpp:3:9:3:9 | x | Node should have one toString but has 2. |
|
||||
| newexpr.cpp:3:16:3:16 | j | Node should have one toString but has 2. |
|
||||
| newexpr.cpp:3:16:3:16 | y | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | i | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | i | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | x | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | x | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:2:14:2:14 | i | Node should have one toString but has 2. |
|
||||
| nodefaultswitchstmt.c:2:14:2:14 | x | Node should have one toString but has 2. |
|
||||
| switchstmt.c:1:12:1:12 | i | Node should have one toString but has 2. |
|
||||
| switchstmt.c:1:12:1:12 | i | Node should have one toString but has 2. |
|
||||
| switchstmt.c:1:12:1:12 | x | Node should have one toString but has 2. |
|
||||
| switchstmt.c:1:12:1:12 | x | Node should have one toString but has 2. |
|
||||
| switchstmt.c:2:14:2:14 | i | Node should have one toString but has 2. |
|
||||
| switchstmt.c:2:14:2:14 | x | Node should have one toString but has 2. |
|
||||
missingToString
|
||||
| Nodes without toString: 2 |
|
||||
parameterCallable
|
||||
localFlowIsLocal
|
||||
compatibleTypesReflexive
|
||||
unreachableNodeCCtx
|
||||
localCallNodes
|
||||
postIsNotPre
|
||||
postHasUniquePre
|
||||
uniquePostUpdate
|
||||
postIsInSameCallable
|
||||
reverseRead
|
||||
storeIsPostUpdate
|
||||
argHasPostUpdate
|
||||
@@ -0,0 +1 @@
|
||||
import semmle.code.cpp.ir.dataflow.internal.DataFlowImplConsistency::Consistency
|
||||
@@ -49,6 +49,7 @@ missingOperandType
|
||||
duplicateChiOperand
|
||||
sideEffectWithoutPrimary
|
||||
instructionWithoutSuccessor
|
||||
| CPP-309.cpp:7:5:7:20 | InitializeDynamicAllocation: new[] |
|
||||
| VacuousDestructorCall.cpp:2:29:2:29 | InitializeIndirection: y |
|
||||
| VacuousDestructorCall.cpp:3:3:3:3 | VariableAddress: x |
|
||||
| VacuousDestructorCall.cpp:4:3:4:3 | Load: y |
|
||||
@@ -57,7 +58,9 @@ instructionWithoutSuccessor
|
||||
| condition_decls.cpp:26:23:26:24 | IndirectMayWriteSideEffect: call to BoxedInt |
|
||||
| condition_decls.cpp:41:22:41:23 | IndirectMayWriteSideEffect: call to BoxedInt |
|
||||
| condition_decls.cpp:48:52:48:53 | IndirectMayWriteSideEffect: call to BoxedInt |
|
||||
| cpp17.cpp:15:5:15:45 | InitializeDynamicAllocation: new |
|
||||
| cpp17.cpp:15:11:15:21 | Convert: (void *)... |
|
||||
| enum.c:6:9:6:9 | Constant: (int)... |
|
||||
| file://:0:0:0:0 | CompareNE: (bool)... |
|
||||
| file://:0:0:0:0 | CompareNE: (bool)... |
|
||||
| file://:0:0:0:0 | CompareNE: (bool)... |
|
||||
@@ -138,50 +141,48 @@ ambiguousSuccessors
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | pmcallexpr.cpp:7:5:7:5 | VariableAddress: definition of c |
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | staticmembercallexpr.cpp:7:4:7:4 | VariableAddress: definition of c |
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | staticmembercallexpr_args.cpp:8:6:8:6 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| conditional_destructors.cpp:29:6:29:7 | UnmodeledDefinition: f1 | Goto | 2 | conditional_destructors.cpp:30:9:30:13 | FunctionAddress: call to C1 |
|
||||
| conditional_destructors.cpp:29:6:29:7 | UnmodeledDefinition: f1 | Goto | 2 | forstmt.cpp:2:14:2:14 | VariableAddress: definition of i |
|
||||
| conditional_destructors.cpp:38:6:38:7 | UnmodeledDefinition: f2 | Goto | 2 | conditional_destructors.cpp:39:9:39:13 | FunctionAddress: call to C2 |
|
||||
@@ -268,50 +269,48 @@ ambiguousSuccessors
|
||||
| dostmt.c:16:6:16:18 | UnmodeledDefinition: always_true_2 | Goto | 4 | whilestmt.c:24:9:24:9 | Constant: 1 |
|
||||
| dostmt.c:25:6:25:18 | UnmodeledDefinition: always_true_3 | Goto | 2 | dostmt.c:27:5:27:7 | NoOp: label ...: |
|
||||
| dostmt.c:25:6:25:18 | UnmodeledDefinition: always_true_3 | Goto | 2 | whilestmt.c:33:9:33:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | array_delete.cpp:6:12:6:24 | Constant: (Foo *)... |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | assignexpr.cpp:7:4:7:4 | VariableAddress: definition of c |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | constmemberaccess.cpp:7:5:7:5 | VariableAddress: definition of c |
|
||||
@@ -416,50 +415,48 @@ ambiguousSuccessors
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition: main | Goto | 4 | no_dynamic_init.cpp:11:3:11:11 | VariableAddress: return ... |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition: main | Goto | 4 | parameterinitializer.cpp:19:5:19:5 | FunctionAddress: call to f |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition: main | Goto | 4 | stream_it.cpp:18:15:18:16 | VariableAddress: definition of xs |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nonmembercallexpr.c:1:6:1:6 | UnmodeledDefinition: g | Goto | 2 | nonmembercallexpr.c:1:12:1:12 | NoOp: return ... |
|
||||
| nonmembercallexpr.c:1:6:1:6 | UnmodeledDefinition: g | Goto | 2 | revsubscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| parameterinitializer.cpp:18:5:18:8 | UnmodeledDefinition: main | Goto | 4 | allocators.cpp:16:8:16:10 | VariableAddress: definition of foo |
|
||||
@@ -518,50 +515,48 @@ ambiguousSuccessors
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition: main | Goto | 4 | no_dynamic_init.cpp:11:3:11:11 | VariableAddress: return ... |
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition: main | Goto | 4 | parameterinitializer.cpp:19:5:19:5 | FunctionAddress: call to f |
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition: main | Goto | 4 | stream_it.cpp:18:15:18:16 | VariableAddress: definition of xs |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition: always_false_1 | Goto | 3 | ifelsestmt.c:2:6:2:6 | Constant: 0 |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition: always_false_1 | Goto | 3 | ifstmt.c:2:6:2:6 | Constant: 0 |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition: always_false_1 | Goto | 3 | whilestmt.c:2:9:2:9 | Constant: 0 |
|
||||
@@ -594,6 +589,7 @@ unexplainedLoop
|
||||
| range_analysis.c:355:14:355:27 | test_ternary01 | range_analysis.c:367:10:367:10 | Load: x |
|
||||
| range_analysis.c:355:14:355:27 | test_ternary01 | range_analysis.c:367:10:367:10 | VariableAddress: x |
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -30,7 +30,6 @@ missingOperand
|
||||
unexpectedOperand
|
||||
duplicateOperand
|
||||
missingPhiOperand
|
||||
| cpp11.cpp:141:7:141:7 | Phi: g | cpp11.cpp:161:16:161:16 | NoOp: label ...: |
|
||||
| range_analysis.c:373:3:373:47 | Phi: return ... | range_analysis.c:371:37:371:39 | Constant: 500 |
|
||||
| range_analysis.c:373:3:373:47 | Phi: return ... | range_analysis.c:371:37:371:39 | Constant: 500 |
|
||||
| range_analysis.c:373:3:373:47 | Phi: return ... | range_analysis.c:371:37:371:39 | Constant: 500 |
|
||||
@@ -92,50 +91,48 @@ ambiguousSuccessors
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | pmcallexpr.cpp:7:5:7:5 | VariableAddress: definition of c |
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | staticmembercallexpr.cpp:7:4:7:4 | VariableAddress: definition of c |
|
||||
| assignexpr.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | staticmembercallexpr_args.cpp:8:6:8:6 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| break_labels.c:2:11:2:11 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| conditional_destructors.cpp:29:6:29:7 | UnmodeledDefinition: f1 | Goto | 2 | conditional_destructors.cpp:30:9:30:13 | FunctionAddress: call to C1 |
|
||||
| conditional_destructors.cpp:29:6:29:7 | UnmodeledDefinition: f1 | Goto | 2 | forstmt.cpp:2:14:2:14 | VariableAddress: definition of i |
|
||||
| conditional_destructors.cpp:38:6:38:7 | UnmodeledDefinition: f2 | Goto | 2 | conditional_destructors.cpp:39:9:39:13 | FunctionAddress: call to C2 |
|
||||
@@ -222,50 +219,48 @@ ambiguousSuccessors
|
||||
| dostmt.c:16:6:16:18 | UnmodeledDefinition: always_true_2 | Goto | 4 | whilestmt.c:24:9:24:9 | Constant: 1 |
|
||||
| dostmt.c:25:6:25:18 | UnmodeledDefinition: always_true_3 | Goto | 2 | dostmt.c:27:5:27:7 | NoOp: label ...: |
|
||||
| dostmt.c:25:6:25:18 | UnmodeledDefinition: always_true_3 | Goto | 2 | whilestmt.c:33:9:33:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| duff.c:2:12:2:12 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | array_delete.cpp:6:12:6:24 | Constant: (Foo *)... |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | assignexpr.cpp:7:4:7:4 | VariableAddress: definition of c |
|
||||
| fieldaccess.cpp:6:6:6:6 | UnmodeledDefinition: f | Goto | 14 | constmemberaccess.cpp:7:5:7:5 | VariableAddress: definition of c |
|
||||
@@ -370,50 +365,48 @@ ambiguousSuccessors
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition: main | Goto | 4 | no_dynamic_init.cpp:11:3:11:11 | VariableAddress: return ... |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition: main | Goto | 4 | parameterinitializer.cpp:19:5:19:5 | FunctionAddress: call to f |
|
||||
| no_dynamic_init.cpp:9:5:9:8 | UnmodeledDefinition: main | Goto | 4 | stream_it.cpp:18:15:18:16 | VariableAddress: definition of xs |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| nodefaultswitchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| nonmembercallexpr.c:1:6:1:6 | UnmodeledDefinition: g | Goto | 2 | nonmembercallexpr.c:1:12:1:12 | NoOp: return ... |
|
||||
| nonmembercallexpr.c:1:6:1:6 | UnmodeledDefinition: g | Goto | 2 | revsubscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| parameterinitializer.cpp:18:5:18:8 | UnmodeledDefinition: main | Goto | 4 | allocators.cpp:16:8:16:10 | VariableAddress: definition of foo |
|
||||
@@ -472,50 +465,48 @@ ambiguousSuccessors
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition: main | Goto | 4 | no_dynamic_init.cpp:11:3:11:11 | VariableAddress: return ... |
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition: main | Goto | 4 | parameterinitializer.cpp:19:5:19:5 | FunctionAddress: call to f |
|
||||
| stream_it.cpp:16:5:16:8 | UnmodeledDefinition: main | Goto | 4 | stream_it.cpp:18:15:18:16 | VariableAddress: definition of xs |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | enum.c:6:2:6:10 | VariableAddress: return ... |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 20 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: i | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | aggregateinitializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | break_labels.c:3:9:3:14 | VariableAddress: definition of result |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | duff.c:3:9:3:9 | VariableAddress: definition of n |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | dummyblock.c:2:9:2:9 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | emptyblock.c:2:5:3:5 | NoOp: { ... } |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | exprstmt.c:2:5:2:5 | Constant: 1 |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | initializer.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | landexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | lorexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | ltrbinopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nodefaultswitchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmembercallexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfp2callexpr.c:4:2:4:2 | FunctionAddress: call to g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | nonmemberfpcallexpr.c:2:8:2:8 | VariableAddress: definition of g |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | questionexpr.c:2:6:2:6 | VariableAddress: definition of a |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | subscriptexpr.c:2:9:2:9 | VariableAddress: definition of x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: i |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | switchstmt.c:2:14:2:14 | VariableAddress: x |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | tinyforstmt.c:3:9:3:9 | NoOp: ; |
|
||||
| switchstmt.c:1:12:1:12 | InitializeParameter: x | Goto | 19 | unaryopexpr.c:2:9:2:9 | VariableAddress: definition of i |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition: always_false_1 | Goto | 3 | ifelsestmt.c:2:6:2:6 | Constant: 0 |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition: always_false_1 | Goto | 3 | ifstmt.c:2:6:2:6 | Constant: 0 |
|
||||
| whilestmt.c:1:6:1:19 | UnmodeledDefinition: always_false_1 | Goto | 3 | whilestmt.c:2:9:2:9 | Constant: 0 |
|
||||
@@ -548,6 +539,7 @@ unexplainedLoop
|
||||
| range_analysis.c:355:14:355:27 | test_ternary01 | range_analysis.c:367:10:367:10 | Load: x |
|
||||
| range_analysis.c:355:14:355:27 | test_ternary01 | range_analysis.c:367:10:367:10 | VariableAddress: x |
|
||||
unnecessaryPhiInstruction
|
||||
memoryOperandDefinitionIsUnmodeled
|
||||
operandAcrossFunctions
|
||||
instructionWithoutUniqueBlock
|
||||
containsLoopOfForwardEdges
|
||||
|
||||
@@ -3,6 +3,6 @@ import cpp
|
||||
// It should be the case that "f.isDefined()" is equivalent to "exists(f.getBlock())".
|
||||
from Function f, string isdef, string hasblock
|
||||
where
|
||||
(if f.isDefined() then isdef = "defined" else isdef = "not defined") and
|
||||
(if f.hasDefinition() then isdef = "defined" else isdef = "not defined") and
|
||||
(if exists(f.getBlock()) then hasblock = "has block" else hasblock = "no block")
|
||||
select f.getName(), isdef, hasblock
|
||||
|
||||
@@ -1,80 +1,78 @@
|
||||
test.cpp:
|
||||
# 1| int test00(int, int)
|
||||
# 1| void test00(int, int)
|
||||
# 1| Block 0
|
||||
# 1| v1_1(void) = EnterFunction :
|
||||
# 1| m1_2(unknown) = AliasedDefinition :
|
||||
# 1| v1_1(void) = EnterFunction :
|
||||
# 1| m1_2(unknown) = AliasedDefinition :
|
||||
# 1| valnum = unique
|
||||
# 1| m1_3(unknown) = InitializeNonLocal :
|
||||
# 1| m1_3(unknown) = InitializeNonLocal :
|
||||
# 1| valnum = unique
|
||||
# 1| m1_4(unknown) = Chi : total:m1_2, partial:m1_3
|
||||
# 1| m1_4(unknown) = Chi : total:m1_2, partial:m1_3
|
||||
# 1| valnum = unique
|
||||
# 1| mu1_5(unknown) = UnmodeledDefinition :
|
||||
# 1| mu1_5(unknown) = UnmodeledDefinition :
|
||||
# 1| valnum = unique
|
||||
# 1| r1_6(glval<int>) = VariableAddress[p0] :
|
||||
# 1| r1_6(glval<int>) = VariableAddress[p0] :
|
||||
# 1| valnum = r1_6, r5_1, r6_1
|
||||
# 1| m1_7(int) = InitializeParameter[p0] : &:r1_6
|
||||
# 1| m1_7(int) = InitializeParameter[p0] : &:r1_6
|
||||
# 1| valnum = m1_7, r5_2, r6_2
|
||||
# 1| r1_8(glval<int>) = VariableAddress[p1] :
|
||||
# 1| r1_8(glval<int>) = VariableAddress[p1] :
|
||||
# 1| valnum = r1_8, r5_3, r6_3
|
||||
# 1| m1_9(int) = InitializeParameter[p1] : &:r1_8
|
||||
# 1| m1_9(int) = InitializeParameter[p1] : &:r1_8
|
||||
# 1| valnum = m1_9, r5_4, r6_4
|
||||
# 2| r2_1(glval<int>) = VariableAddress[x] :
|
||||
# 2| r2_1(glval<int>) = VariableAddress[x] :
|
||||
# 2| valnum = r2_1, r5_6, r6_6, r7_1
|
||||
# 2| m2_2(int) = Uninitialized[x] : &:r2_1
|
||||
# 2| m2_2(int) = Uninitialized[x] : &:r2_1
|
||||
# 2| valnum = unique
|
||||
# 2| r2_3(glval<int>) = VariableAddress[y] :
|
||||
# 2| r2_3(glval<int>) = VariableAddress[y] :
|
||||
# 2| valnum = r2_3, r7_3
|
||||
# 2| m2_4(int) = Uninitialized[y] : &:r2_3
|
||||
# 2| m2_4(int) = Uninitialized[y] : &:r2_3
|
||||
# 2| valnum = unique
|
||||
# 3| r3_1(glval<unsigned char>) = VariableAddress[b] :
|
||||
# 3| r3_1(glval<unsigned char>) = VariableAddress[b] :
|
||||
# 3| valnum = unique
|
||||
# 3| m3_2(unsigned char) = Uninitialized[b] : &:r3_1
|
||||
# 3| m3_2(unsigned char) = Uninitialized[b] : &:r3_1
|
||||
# 3| valnum = unique
|
||||
# 5| r5_1(glval<int>) = VariableAddress[p0] :
|
||||
# 5| r5_1(glval<int>) = VariableAddress[p0] :
|
||||
# 5| valnum = r1_6, r5_1, r6_1
|
||||
# 5| r5_2(int) = Load : &:r5_1, m1_7
|
||||
# 5| r5_2(int) = Load : &:r5_1, m1_7
|
||||
# 5| valnum = m1_7, r5_2, r6_2
|
||||
# 5| r5_3(glval<int>) = VariableAddress[p1] :
|
||||
# 5| r5_3(glval<int>) = VariableAddress[p1] :
|
||||
# 5| valnum = r1_8, r5_3, r6_3
|
||||
# 5| r5_4(int) = Load : &:r5_3, m1_9
|
||||
# 5| r5_4(int) = Load : &:r5_3, m1_9
|
||||
# 5| valnum = m1_9, r5_4, r6_4
|
||||
# 5| r5_5(int) = Add : r5_2, r5_4
|
||||
# 5| r5_5(int) = Add : r5_2, r5_4
|
||||
# 5| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
|
||||
# 5| r5_6(glval<int>) = VariableAddress[x] :
|
||||
# 5| r5_6(glval<int>) = VariableAddress[x] :
|
||||
# 5| valnum = r2_1, r5_6, r6_6, r7_1
|
||||
# 5| m5_7(int) = Store : &:r5_6, r5_5
|
||||
# 5| m5_7(int) = Store : &:r5_6, r5_5
|
||||
# 5| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
|
||||
# 6| r6_1(glval<int>) = VariableAddress[p0] :
|
||||
# 6| r6_1(glval<int>) = VariableAddress[p0] :
|
||||
# 6| valnum = r1_6, r5_1, r6_1
|
||||
# 6| r6_2(int) = Load : &:r6_1, m1_7
|
||||
# 6| r6_2(int) = Load : &:r6_1, m1_7
|
||||
# 6| valnum = m1_7, r5_2, r6_2
|
||||
# 6| r6_3(glval<int>) = VariableAddress[p1] :
|
||||
# 6| r6_3(glval<int>) = VariableAddress[p1] :
|
||||
# 6| valnum = r1_8, r5_3, r6_3
|
||||
# 6| r6_4(int) = Load : &:r6_3, m1_9
|
||||
# 6| r6_4(int) = Load : &:r6_3, m1_9
|
||||
# 6| valnum = m1_9, r5_4, r6_4
|
||||
# 6| r6_5(int) = Add : r6_2, r6_4
|
||||
# 6| r6_5(int) = Add : r6_2, r6_4
|
||||
# 6| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
|
||||
# 6| r6_6(glval<int>) = VariableAddress[x] :
|
||||
# 6| r6_6(glval<int>) = VariableAddress[x] :
|
||||
# 6| valnum = r2_1, r5_6, r6_6, r7_1
|
||||
# 6| m6_7(int) = Store : &:r6_6, r6_5
|
||||
# 6| m6_7(int) = Store : &:r6_6, r6_5
|
||||
# 6| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
|
||||
# 7| r7_1(glval<int>) = VariableAddress[x] :
|
||||
# 7| r7_1(glval<int>) = VariableAddress[x] :
|
||||
# 7| valnum = r2_1, r5_6, r6_6, r7_1
|
||||
# 7| r7_2(int) = Load : &:r7_1, m6_7
|
||||
# 7| r7_2(int) = Load : &:r7_1, m6_7
|
||||
# 7| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
|
||||
# 7| r7_3(glval<int>) = VariableAddress[y] :
|
||||
# 7| r7_3(glval<int>) = VariableAddress[y] :
|
||||
# 7| valnum = r2_3, r7_3
|
||||
# 7| m7_4(int) = Store : &:r7_3, r7_2
|
||||
# 7| m7_4(int) = Store : &:r7_3, r7_2
|
||||
# 7| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
|
||||
# 8| v8_1(void) = NoOp :
|
||||
# 1| r1_10(glval<int>) = VariableAddress[#return] :
|
||||
# 1| valnum = unique
|
||||
# 1| v1_11(void) = ReturnValue : &:r1_10
|
||||
# 1| v1_12(void) = UnmodeledUse : mu*
|
||||
# 1| v1_13(void) = AliasedUse : m1_3
|
||||
# 1| v1_14(void) = ExitFunction :
|
||||
# 8| v8_1(void) = NoOp :
|
||||
# 1| v1_10(void) = ReturnVoid :
|
||||
# 1| v1_11(void) = UnmodeledUse : mu*
|
||||
# 1| v1_12(void) = AliasedUse : m1_3
|
||||
# 1| v1_13(void) = ExitFunction :
|
||||
|
||||
# 12| int test01(int, int)
|
||||
# 12| void test01(int, int)
|
||||
# 12| Block 0
|
||||
# 12| v12_1(void) = EnterFunction :
|
||||
# 12| m12_2(unknown) = AliasedDefinition :
|
||||
@@ -154,14 +152,12 @@ test.cpp:
|
||||
# 18| m18_4(int) = Store : &:r18_3, r18_2
|
||||
# 18| valnum = m16_10, m17_10, m18_4, r16_8, r17_8, r18_2
|
||||
# 19| v19_1(void) = NoOp :
|
||||
# 12| r12_10(glval<int>) = VariableAddress[#return] :
|
||||
# 12| valnum = unique
|
||||
# 12| v12_11(void) = ReturnValue : &:r12_10
|
||||
# 12| v12_12(void) = UnmodeledUse : mu*
|
||||
# 12| v12_13(void) = AliasedUse : m12_3
|
||||
# 12| v12_14(void) = ExitFunction :
|
||||
# 12| v12_10(void) = ReturnVoid :
|
||||
# 12| v12_11(void) = UnmodeledUse : mu*
|
||||
# 12| v12_12(void) = AliasedUse : m12_3
|
||||
# 12| v12_13(void) = ExitFunction :
|
||||
|
||||
# 25| int test02(int, int)
|
||||
# 25| void test02(int, int)
|
||||
# 25| Block 0
|
||||
# 25| v25_1(void) = EnterFunction :
|
||||
# 25| m25_2(unknown) = AliasedDefinition :
|
||||
@@ -248,14 +244,12 @@ test.cpp:
|
||||
# 32| m32_4(int) = Store : &:r32_3, r32_2
|
||||
# 32| valnum = m31_10, m32_4, r31_8, r32_2
|
||||
# 33| v33_1(void) = NoOp :
|
||||
# 25| r25_10(glval<int>) = VariableAddress[#return] :
|
||||
# 25| valnum = unique
|
||||
# 25| v25_11(void) = ReturnValue : &:r25_10
|
||||
# 25| v25_12(void) = UnmodeledUse : mu*
|
||||
# 25| v25_13(void) = AliasedUse : ~m30_4
|
||||
# 25| v25_14(void) = ExitFunction :
|
||||
# 25| v25_10(void) = ReturnVoid :
|
||||
# 25| v25_11(void) = UnmodeledUse : mu*
|
||||
# 25| v25_12(void) = AliasedUse : ~m30_4
|
||||
# 25| v25_13(void) = ExitFunction :
|
||||
|
||||
# 39| int test03(int, int, int*)
|
||||
# 39| void test03(int, int, int*)
|
||||
# 39| Block 0
|
||||
# 39| v39_1(void) = EnterFunction :
|
||||
# 39| m39_2(unknown) = AliasedDefinition :
|
||||
@@ -355,13 +349,11 @@ test.cpp:
|
||||
# 46| m46_4(int) = Store : &:r46_3, r46_2
|
||||
# 46| valnum = m43_10, m45_10, m46_4, r43_8, r45_8, r46_2
|
||||
# 47| v47_1(void) = NoOp :
|
||||
# 39| v39_14(void) = ReturnIndirection : &:r39_12, m44_6
|
||||
# 39| r39_15(glval<int>) = VariableAddress[#return] :
|
||||
# 39| valnum = unique
|
||||
# 39| v39_16(void) = ReturnValue : &:r39_15
|
||||
# 39| v39_17(void) = UnmodeledUse : mu*
|
||||
# 39| v39_18(void) = AliasedUse : m39_3
|
||||
# 39| v39_19(void) = ExitFunction :
|
||||
# 39| v39_14(void) = ReturnIndirection[p2] : &:r39_12, m44_6
|
||||
# 39| v39_15(void) = ReturnVoid :
|
||||
# 39| v39_16(void) = UnmodeledUse : mu*
|
||||
# 39| v39_17(void) = AliasedUse : m39_3
|
||||
# 39| v39_18(void) = ExitFunction :
|
||||
|
||||
# 49| unsigned int my_strspn(char const*, char const*)
|
||||
# 49| Block 0
|
||||
@@ -531,8 +523,8 @@ test.cpp:
|
||||
# 65| valnum = m53_1, m65_4, r62_2, r65_3
|
||||
# 65| m65_4(unsigned int) = Store : &:r65_1, r65_3
|
||||
# 65| valnum = m53_1, m65_4, r62_2, r65_3
|
||||
# 49| v49_14(void) = ReturnIndirection : &:r49_8, m49_9
|
||||
# 49| v49_15(void) = ReturnIndirection : &:r49_12, m49_13
|
||||
# 49| v49_14(void) = ReturnIndirection[str] : &:r49_8, m49_9
|
||||
# 49| v49_15(void) = ReturnIndirection[chars] : &:r49_12, m49_13
|
||||
# 49| r49_16(glval<unsigned int>) = VariableAddress[#return] :
|
||||
# 49| valnum = r49_16, r65_1
|
||||
# 49| v49_17(void) = ReturnValue : &:r49_16, m65_4
|
||||
@@ -625,14 +617,14 @@ test.cpp:
|
||||
#-----| Goto -> Block 2
|
||||
|
||||
# 82| Block 2
|
||||
# 82| m82_1(unknown) = Phi : from 0:~m77_5, from 1:~m80_4
|
||||
# 82| m82_1(unknown) = Phi : from 0:~m77_5, from 1:~m80_4
|
||||
# 82| valnum = unique
|
||||
# 82| v82_2(void) = NoOp :
|
||||
# 75| v75_10(void) = ReturnIndirection : &:r75_8, m75_9
|
||||
# 75| v75_11(void) = ReturnVoid :
|
||||
# 75| v75_12(void) = UnmodeledUse : mu*
|
||||
# 75| v75_13(void) = AliasedUse : ~m82_1
|
||||
# 75| v75_14(void) = ExitFunction :
|
||||
# 82| v82_2(void) = NoOp :
|
||||
# 75| v75_10(void) = ReturnIndirection[vals] : &:r75_8, m75_9
|
||||
# 75| v75_11(void) = ReturnVoid :
|
||||
# 75| v75_12(void) = UnmodeledUse : mu*
|
||||
# 75| v75_13(void) = AliasedUse : ~m82_1
|
||||
# 75| v75_14(void) = ExitFunction :
|
||||
|
||||
# 84| void test05(int, int, void*)
|
||||
# 84| Block 0
|
||||
@@ -689,7 +681,7 @@ test.cpp:
|
||||
# 88| m88_10(int) = Store : &:r88_9, r88_8
|
||||
# 88| valnum = m88_10, m88_6, r88_8
|
||||
# 89| v89_1(void) = NoOp :
|
||||
# 84| v84_14(void) = ReturnIndirection : &:r84_12, m84_13
|
||||
# 84| v84_14(void) = ReturnIndirection[p] : &:r84_12, m84_13
|
||||
# 84| v84_15(void) = ReturnVoid :
|
||||
# 84| v84_16(void) = UnmodeledUse : mu*
|
||||
# 84| v84_17(void) = AliasedUse : m84_3
|
||||
@@ -818,7 +810,7 @@ test.cpp:
|
||||
# 109| valnum = m105_7, m107_6, m109_4, r105_6, r107_5, r109_3
|
||||
# 109| m109_4(int) = Store : &:r109_1, r109_3
|
||||
# 109| valnum = m105_7, m107_6, m109_4, r105_6, r107_5, r109_3
|
||||
# 104| v104_10(void) = ReturnIndirection : &:r104_8, m104_9
|
||||
# 104| v104_10(void) = ReturnIndirection[pd] : &:r104_8, m104_9
|
||||
# 104| r104_11(glval<int>) = VariableAddress[#return] :
|
||||
# 104| valnum = r104_11, r109_1
|
||||
# 104| v104_12(void) = ReturnValue : &:r104_11, m109_4
|
||||
@@ -925,7 +917,7 @@ test.cpp:
|
||||
# 129| m129_6(int) = Store : &:r129_1, r129_5
|
||||
# 129| valnum = m124_11, m128_6, m129_6, r128_2, r129_5
|
||||
# 130| v130_1(void) = NoOp :
|
||||
# 124| v124_12(void) = ReturnIndirection : &:r124_8, m128_7
|
||||
# 124| v124_12(void) = ReturnIndirection[pa] : &:r124_8, m128_7
|
||||
# 124| v124_13(void) = ReturnVoid :
|
||||
# 124| v124_14(void) = UnmodeledUse : mu*
|
||||
# 124| v124_15(void) = AliasedUse : m124_3
|
||||
@@ -1068,7 +1060,7 @@ test.cpp:
|
||||
# 149| m149_6(int) = Store : &:r149_1, r149_5
|
||||
# 149| valnum = m144_6, m149_6, r144_5, r149_5
|
||||
# 150| v150_1(void) = NoOp :
|
||||
# 143| v143_10(void) = ReturnIndirection : &:r143_8, m147_7
|
||||
# 143| v143_10(void) = ReturnIndirection[pa] : &:r143_8, m147_7
|
||||
# 143| v143_11(void) = ReturnVoid :
|
||||
# 143| v143_12(void) = UnmodeledUse : mu*
|
||||
# 143| v143_13(void) = AliasedUse : m143_3
|
||||
|
||||
@@ -5,3 +5,4 @@
|
||||
import semmle.code.cpp.ir.PrintIR
|
||||
import semmle.code.cpp.ir.IR
|
||||
import semmle.code.cpp.ir.ValueNumbering
|
||||
import semmle.code.cpp.ir.implementation.aliased_ssa.gvn.PrintValueNumbering
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
int test00(int p0, int p1) {
|
||||
void test00(int p0, int p1) {
|
||||
int x, y;
|
||||
unsigned char b;
|
||||
|
||||
@@ -9,7 +9,7 @@ int test00(int p0, int p1) {
|
||||
|
||||
int global01 = 1;
|
||||
|
||||
int test01(int p0, int p1) {
|
||||
void test01(int p0, int p1) {
|
||||
int x, y;
|
||||
unsigned char b;
|
||||
|
||||
@@ -22,7 +22,7 @@ int global02 = 2;
|
||||
|
||||
void change_global02(); // Just a declaration
|
||||
|
||||
int test02(int p0, int p1) {
|
||||
void test02(int p0, int p1) {
|
||||
int x, y;
|
||||
unsigned char b;
|
||||
|
||||
@@ -36,7 +36,7 @@ int global03 = 3;
|
||||
|
||||
void change_global03(); // Just a declaration
|
||||
|
||||
int test03(int p0, int p1, int* p2) {
|
||||
void test03(int p0, int p1, int* p2) {
|
||||
int x, y;
|
||||
unsigned char b;
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
name: codeql-cpp-tests
|
||||
version: 0.0.0
|
||||
libraryPathDependencies: codeql-cpp
|
||||
extractor: cpp
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
| test2.cpp:19:3:19:6 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test2.cpp:18:12:18:18 | new | new |
|
||||
| test2.cpp:26:3:26:6 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test2.cpp:25:7:25:13 | new | new |
|
||||
| test2.cpp:51:2:51:5 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test2.cpp:45:18:45:24 | new | new |
|
||||
| test2.cpp:55:2:55:5 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test2.cpp:46:20:46:33 | call to operator new | new |
|
||||
| test2.cpp:57:2:57:18 | delete | There is a malloc/delete mismatch between this delete and the corresponding $@. | test2.cpp:47:21:47:26 | call to malloc | malloc |
|
||||
| test2.cpp:58:2:58:18 | call to operator delete | There is a malloc/delete mismatch between this delete and the corresponding $@. | test2.cpp:47:21:47:26 | call to malloc | malloc |
|
||||
| test.cpp:36:2:36:17 | delete | There is a malloc/delete mismatch between this delete and the corresponding $@. | test.cpp:27:18:27:23 | call to malloc | malloc |
|
||||
| test.cpp:41:2:41:5 | call to free | There is a new/free mismatch between this free and the corresponding $@. | test.cpp:26:7:26:17 | new | new |
|
||||
| test.cpp:68:3:68:11 | delete | There is a malloc/delete mismatch between this delete and the corresponding $@. | test.cpp:64:28:64:33 | call to malloc | malloc |
|
||||
|
||||
@@ -34,3 +34,27 @@ public:
|
||||
};
|
||||
|
||||
MyTest2Class<int> mt2c_i;
|
||||
|
||||
// ---
|
||||
|
||||
void* operator new(size_t);
|
||||
void operator delete(void*);
|
||||
|
||||
void test_operator_new()
|
||||
{
|
||||
void *ptr_new = new int;
|
||||
void *ptr_opnew = ::operator new(sizeof(int));
|
||||
void *ptr_malloc = malloc(sizeof(int));
|
||||
|
||||
delete ptr_new; // GOOD
|
||||
::operator delete(ptr_new); // GOOD
|
||||
free(ptr_new); // BAD
|
||||
|
||||
delete ptr_opnew; // GOOD
|
||||
::operator delete(ptr_opnew); // GOOD
|
||||
free(ptr_opnew); // BAD
|
||||
|
||||
delete ptr_malloc; // BAD
|
||||
::operator delete(ptr_malloc); // BAD
|
||||
free(ptr_malloc); // GOOD
|
||||
}
|
||||
|
||||
@@ -1 +1,13 @@
|
||||
| test.c:17:11:17:18 | fileName | This argument to a file access function is derived from $@ and then passed to fopen(filename) | test.c:9:23:9:26 | argv | user input (argv) |
|
||||
edges
|
||||
| test.c:9:23:9:26 | argv | test.c:17:11:17:18 | (const char *)... |
|
||||
| test.c:9:23:9:26 | argv | test.c:17:11:17:18 | (const char *)... |
|
||||
| test.c:9:23:9:26 | argv | test.c:17:11:17:18 | fileName |
|
||||
| test.c:9:23:9:26 | argv | test.c:17:11:17:18 | fileName |
|
||||
nodes
|
||||
| test.c:9:23:9:26 | argv | semmle.label | argv |
|
||||
| test.c:9:23:9:26 | argv | semmle.label | argv |
|
||||
| test.c:17:11:17:18 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.c:17:11:17:18 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.c:17:11:17:18 | fileName | semmle.label | fileName |
|
||||
#select
|
||||
| test.c:17:11:17:18 | fileName | test.c:9:23:9:26 | argv | test.c:17:11:17:18 | fileName | This argument to a file access function is derived from $@ and then passed to fopen(filename) | test.c:9:23:9:26 | argv | user input (argv) |
|
||||
|
||||
@@ -1,2 +1,30 @@
|
||||
| search.c:17:8:17:12 | query | Cross-site scripting vulnerability due to $@. | search.c:41:21:41:26 | call to getenv | this query data |
|
||||
| search.c:23:39:23:43 | query | Cross-site scripting vulnerability due to $@. | search.c:41:21:41:26 | call to getenv | this query data |
|
||||
edges
|
||||
| search.c:14:24:14:28 | query | search.c:17:8:17:12 | (const char *)... |
|
||||
| search.c:14:24:14:28 | query | search.c:17:8:17:12 | query |
|
||||
| search.c:14:24:14:28 | query | search.c:17:8:17:12 | query |
|
||||
| search.c:22:24:22:28 | query | search.c:23:39:23:43 | query |
|
||||
| search.c:22:24:22:28 | query | search.c:23:39:23:43 | query |
|
||||
| search.c:41:21:41:26 | call to getenv | search.c:45:17:45:25 | raw_query |
|
||||
| search.c:41:21:41:26 | call to getenv | search.c:45:17:45:25 | raw_query |
|
||||
| search.c:41:21:41:26 | call to getenv | search.c:47:17:47:25 | raw_query |
|
||||
| search.c:41:21:41:26 | call to getenv | search.c:47:17:47:25 | raw_query |
|
||||
| search.c:45:17:45:25 | raw_query | search.c:14:24:14:28 | query |
|
||||
| search.c:47:17:47:25 | raw_query | search.c:22:24:22:28 | query |
|
||||
nodes
|
||||
| search.c:14:24:14:28 | query | semmle.label | query |
|
||||
| search.c:17:8:17:12 | (const char *)... | semmle.label | (const char *)... |
|
||||
| search.c:17:8:17:12 | (const char *)... | semmle.label | (const char *)... |
|
||||
| search.c:17:8:17:12 | query | semmle.label | query |
|
||||
| search.c:17:8:17:12 | query | semmle.label | query |
|
||||
| search.c:17:8:17:12 | query | semmle.label | query |
|
||||
| search.c:22:24:22:28 | query | semmle.label | query |
|
||||
| search.c:23:39:23:43 | query | semmle.label | query |
|
||||
| search.c:23:39:23:43 | query | semmle.label | query |
|
||||
| search.c:23:39:23:43 | query | semmle.label | query |
|
||||
| search.c:41:21:41:26 | call to getenv | semmle.label | call to getenv |
|
||||
| search.c:41:21:41:26 | call to getenv | semmle.label | call to getenv |
|
||||
| search.c:45:17:45:25 | raw_query | semmle.label | raw_query |
|
||||
| search.c:47:17:47:25 | raw_query | semmle.label | raw_query |
|
||||
#select
|
||||
| search.c:17:8:17:12 | query | search.c:41:21:41:26 | call to getenv | search.c:17:8:17:12 | query | Cross-site scripting vulnerability due to $@. | search.c:41:21:41:26 | call to getenv | this query data |
|
||||
| search.c:23:39:23:43 | query | search.c:41:21:41:26 | call to getenv | search.c:23:39:23:43 | query | Cross-site scripting vulnerability due to $@. | search.c:41:21:41:26 | call to getenv | this query data |
|
||||
|
||||
@@ -1,2 +1,25 @@
|
||||
| test.cpp:26:10:26:16 | command | The value of this argument may come from $@ and is being passed to system | test.cpp:42:18:42:23 | call to getenv | call to getenv |
|
||||
| test.cpp:31:10:31:16 | command | The value of this argument may come from $@ and is being passed to system | test.cpp:43:18:43:23 | call to getenv | call to getenv |
|
||||
edges
|
||||
| test.cpp:24:30:24:36 | command | test.cpp:26:10:26:16 | command |
|
||||
| test.cpp:24:30:24:36 | command | test.cpp:26:10:26:16 | command |
|
||||
| test.cpp:29:30:29:36 | command | test.cpp:31:10:31:16 | command |
|
||||
| test.cpp:29:30:29:36 | command | test.cpp:31:10:31:16 | command |
|
||||
| test.cpp:42:18:42:23 | call to getenv | test.cpp:24:30:24:36 | command |
|
||||
| test.cpp:42:18:42:34 | (const char *)... | test.cpp:24:30:24:36 | command |
|
||||
| test.cpp:43:18:43:23 | call to getenv | test.cpp:29:30:29:36 | command |
|
||||
| test.cpp:43:18:43:34 | (const char *)... | test.cpp:29:30:29:36 | command |
|
||||
nodes
|
||||
| test.cpp:24:30:24:36 | command | semmle.label | command |
|
||||
| test.cpp:26:10:26:16 | command | semmle.label | command |
|
||||
| test.cpp:26:10:26:16 | command | semmle.label | command |
|
||||
| test.cpp:26:10:26:16 | command | semmle.label | command |
|
||||
| test.cpp:29:30:29:36 | command | semmle.label | command |
|
||||
| test.cpp:31:10:31:16 | command | semmle.label | command |
|
||||
| test.cpp:31:10:31:16 | command | semmle.label | command |
|
||||
| test.cpp:31:10:31:16 | command | semmle.label | command |
|
||||
| test.cpp:42:18:42:23 | call to getenv | semmle.label | call to getenv |
|
||||
| test.cpp:42:18:42:34 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.cpp:43:18:43:23 | call to getenv | semmle.label | call to getenv |
|
||||
| test.cpp:43:18:43:34 | (const char *)... | semmle.label | (const char *)... |
|
||||
#select
|
||||
| test.cpp:26:10:26:16 | command | test.cpp:42:18:42:23 | call to getenv | test.cpp:26:10:26:16 | command | The value of this argument may come from $@ and is being passed to system | test.cpp:42:18:42:23 | call to getenv | call to getenv |
|
||||
| test.cpp:31:10:31:16 | command | test.cpp:43:18:43:23 | call to getenv | test.cpp:31:10:31:16 | command | The value of this argument may come from $@ and is being passed to system | test.cpp:43:18:43:23 | call to getenv | call to getenv |
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
edges
|
||||
nodes
|
||||
#select
|
||||
|
||||
@@ -1,5 +1,53 @@
|
||||
| tests.c:28:3:28:9 | call to sprintf | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:28:22:28:25 | argv | argv |
|
||||
| tests.c:29:3:29:9 | call to sprintf | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:29:28:29:31 | argv | argv |
|
||||
| tests.c:31:15:31:23 | buffer100 | This 'scanf string argument' with input from $@ may overflow the destination. | tests.c:31:15:31:23 | buffer100 | buffer100 |
|
||||
| tests.c:33:21:33:29 | buffer100 | This 'scanf string argument' with input from $@ may overflow the destination. | tests.c:33:21:33:29 | buffer100 | buffer100 |
|
||||
| tests.c:34:25:34:33 | buffer100 | This 'sscanf string argument' with input from $@ may overflow the destination. | tests.c:34:10:34:13 | argv | argv |
|
||||
edges
|
||||
| tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | (const char *)... |
|
||||
| tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | (const char *)... |
|
||||
| tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array |
|
||||
| tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array |
|
||||
| tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array |
|
||||
| tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array |
|
||||
| tests.c:29:28:29:31 | argv | tests.c:29:28:29:34 | access to array |
|
||||
| tests.c:29:28:29:31 | argv | tests.c:29:28:29:34 | access to array |
|
||||
| tests.c:29:28:29:31 | argv | tests.c:29:28:29:34 | access to array |
|
||||
| tests.c:29:28:29:31 | argv | tests.c:29:28:29:34 | access to array |
|
||||
| tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | (const char *)... |
|
||||
| tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | (const char *)... |
|
||||
| tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array |
|
||||
| tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array |
|
||||
| tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array |
|
||||
| tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array |
|
||||
nodes
|
||||
| tests.c:28:22:28:25 | argv | semmle.label | argv |
|
||||
| tests.c:28:22:28:25 | argv | semmle.label | argv |
|
||||
| tests.c:28:22:28:28 | (const char *)... | semmle.label | (const char *)... |
|
||||
| tests.c:28:22:28:28 | (const char *)... | semmle.label | (const char *)... |
|
||||
| tests.c:28:22:28:28 | access to array | semmle.label | access to array |
|
||||
| tests.c:28:22:28:28 | access to array | semmle.label | access to array |
|
||||
| tests.c:28:22:28:28 | access to array | semmle.label | access to array |
|
||||
| tests.c:29:28:29:31 | argv | semmle.label | argv |
|
||||
| tests.c:29:28:29:31 | argv | semmle.label | argv |
|
||||
| tests.c:29:28:29:34 | access to array | semmle.label | access to array |
|
||||
| tests.c:29:28:29:34 | access to array | semmle.label | access to array |
|
||||
| tests.c:29:28:29:34 | access to array | semmle.label | access to array |
|
||||
| tests.c:31:15:31:23 | array to pointer conversion | semmle.label | array to pointer conversion |
|
||||
| tests.c:31:15:31:23 | array to pointer conversion | semmle.label | array to pointer conversion |
|
||||
| tests.c:31:15:31:23 | buffer100 | semmle.label | buffer100 |
|
||||
| tests.c:31:15:31:23 | buffer100 | semmle.label | buffer100 |
|
||||
| tests.c:31:15:31:23 | buffer100 | semmle.label | buffer100 |
|
||||
| tests.c:33:21:33:29 | array to pointer conversion | semmle.label | array to pointer conversion |
|
||||
| tests.c:33:21:33:29 | array to pointer conversion | semmle.label | array to pointer conversion |
|
||||
| tests.c:33:21:33:29 | buffer100 | semmle.label | buffer100 |
|
||||
| tests.c:33:21:33:29 | buffer100 | semmle.label | buffer100 |
|
||||
| tests.c:33:21:33:29 | buffer100 | semmle.label | buffer100 |
|
||||
| tests.c:34:10:34:13 | argv | semmle.label | argv |
|
||||
| tests.c:34:10:34:13 | argv | semmle.label | argv |
|
||||
| tests.c:34:10:34:16 | (const char *)... | semmle.label | (const char *)... |
|
||||
| tests.c:34:10:34:16 | (const char *)... | semmle.label | (const char *)... |
|
||||
| tests.c:34:10:34:16 | access to array | semmle.label | access to array |
|
||||
| tests.c:34:10:34:16 | access to array | semmle.label | access to array |
|
||||
| tests.c:34:10:34:16 | access to array | semmle.label | access to array |
|
||||
#select
|
||||
| tests.c:28:3:28:9 | call to sprintf | tests.c:28:22:28:25 | argv | tests.c:28:22:28:28 | access to array | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:28:22:28:25 | argv | argv |
|
||||
| tests.c:29:3:29:9 | call to sprintf | tests.c:29:28:29:31 | argv | tests.c:29:28:29:34 | access to array | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:29:28:29:31 | argv | argv |
|
||||
| tests.c:31:15:31:23 | buffer100 | tests.c:31:15:31:23 | buffer100 | tests.c:31:15:31:23 | buffer100 | This 'scanf string argument' with input from $@ may overflow the destination. | tests.c:31:15:31:23 | buffer100 | buffer100 |
|
||||
| tests.c:33:21:33:29 | buffer100 | tests.c:33:21:33:29 | buffer100 | tests.c:33:21:33:29 | buffer100 | This 'scanf string argument' with input from $@ may overflow the destination. | tests.c:33:21:33:29 | buffer100 | buffer100 |
|
||||
| tests.c:34:25:34:33 | buffer100 | tests.c:34:10:34:13 | argv | tests.c:34:10:34:16 | access to array | This 'sscanf string argument' with input from $@ may overflow the destination. | tests.c:34:10:34:13 | argv | argv |
|
||||
|
||||
@@ -1,28 +1,314 @@
|
||||
| argvLocal.c:95:9:95:15 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:95:9:95:12 | argv | argv |
|
||||
| argvLocal.c:96:15:96:21 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:96:15:96:18 | argv | argv |
|
||||
| argvLocal.c:101:9:101:10 | i1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
|
||||
| argvLocal.c:102:15:102:16 | i1 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
|
||||
| argvLocal.c:106:9:106:13 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:105:14:105:17 | argv | argv |
|
||||
| argvLocal.c:107:15:107:19 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:105:14:105:17 | argv | argv |
|
||||
| argvLocal.c:110:9:110:11 | * ... | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:105:14:105:17 | argv | argv |
|
||||
| argvLocal.c:111:15:111:17 | * ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:105:14:105:17 | argv | argv |
|
||||
| argvLocal.c:116:9:116:10 | i3 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:117:15:117:16 | i3 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:121:9:121:10 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:122:15:122:16 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:127:9:127:10 | i5 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:126:10:126:13 | argv | argv |
|
||||
| argvLocal.c:128:15:128:16 | i5 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:126:10:126:13 | argv | argv |
|
||||
| argvLocal.c:131:9:131:14 | ... + ... | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:126:10:126:13 | argv | argv |
|
||||
| argvLocal.c:132:15:132:20 | ... + ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:126:10:126:13 | argv | argv |
|
||||
| argvLocal.c:135:9:135:12 | ... ++ | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:136:15:136:18 | -- ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:144:9:144:10 | i7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
|
||||
| argvLocal.c:145:15:145:16 | i7 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
|
||||
| argvLocal.c:150:9:150:10 | i8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:149:11:149:14 | argv | argv |
|
||||
| argvLocal.c:151:15:151:16 | i8 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:149:11:149:14 | argv | argv |
|
||||
| argvLocal.c:157:9:157:10 | i9 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:156:23:156:26 | argv | argv |
|
||||
| argvLocal.c:158:15:158:16 | i9 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:156:23:156:26 | argv | argv |
|
||||
| argvLocal.c:164:9:164:11 | i91 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:163:22:163:25 | argv | argv |
|
||||
| argvLocal.c:165:15:165:17 | i91 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:163:22:163:25 | argv | argv |
|
||||
| argvLocal.c:169:18:169:20 | i10 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:168:18:168:21 | argv | argv |
|
||||
| argvLocal.c:170:24:170:26 | i10 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:168:18:168:21 | argv | argv |
|
||||
edges
|
||||
| argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | (const char *)... |
|
||||
| argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | (const char *)... |
|
||||
| argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array |
|
||||
| argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array |
|
||||
| argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array |
|
||||
| argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array |
|
||||
| argvLocal.c:96:15:96:18 | argv | argvLocal.c:96:15:96:21 | access to array |
|
||||
| argvLocal.c:96:15:96:18 | argv | argvLocal.c:96:15:96:21 | access to array |
|
||||
| argvLocal.c:96:15:96:18 | argv | argvLocal.c:96:15:96:21 | access to array |
|
||||
| argvLocal.c:96:15:96:18 | argv | argvLocal.c:96:15:96:21 | access to array |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | (const char *)... |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | (const char *)... |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:102:15:102:16 | i1 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:102:15:102:16 | i1 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:102:15:102:16 | i1 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:102:15:102:16 | i1 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | (const char *)... |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | (const char *)... |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:145:15:145:16 | i7 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:145:15:145:16 | i7 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:145:15:145:16 | i7 |
|
||||
| argvLocal.c:100:7:100:10 | argv | argvLocal.c:145:15:145:16 | i7 |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | (const char *)... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | (const char *)... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:107:15:107:19 | access to array |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:107:15:107:19 | access to array |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:107:15:107:19 | access to array |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:107:15:107:19 | access to array |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | (const char *)... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | (const char *)... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... |
|
||||
| argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | (const char *)... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | (const char *)... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | array to pointer conversion |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | array to pointer conversion |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | array to pointer conversion |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | array to pointer conversion |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | i3 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | i3 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | (const char *)... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | (const char *)... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | (const char *)... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | (const char *)... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... |
|
||||
| argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... |
|
||||
| argvLocal.c:117:15:117:16 | array to pointer conversion | argvLocal.c:117:15:117:16 | printWrapper output argument |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:121:9:121:10 | (const char *)... |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:121:9:121:10 | i4 |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:122:15:122:16 | i4 |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:122:15:122:16 | i4 |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:122:15:122:16 | i4 |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:135:9:135:12 | (const char *)... |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:135:9:135:12 | ... ++ |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:136:15:136:18 | -- ... |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | argvLocal.c:136:15:136:18 | -- ... |
|
||||
| argvLocal.c:122:15:122:16 | i4 | argvLocal.c:122:15:122:16 | printWrapper output argument |
|
||||
| argvLocal.c:122:15:122:16 | printWrapper output argument | argvLocal.c:135:9:135:12 | (const char *)... |
|
||||
| argvLocal.c:122:15:122:16 | printWrapper output argument | argvLocal.c:135:9:135:12 | ... ++ |
|
||||
| argvLocal.c:122:15:122:16 | printWrapper output argument | argvLocal.c:136:15:136:18 | -- ... |
|
||||
| argvLocal.c:122:15:122:16 | printWrapper output argument | argvLocal.c:136:15:136:18 | -- ... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:127:9:127:10 | (const char *)... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:127:9:127:10 | (const char *)... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:127:9:127:10 | i5 |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:127:9:127:10 | i5 |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | array to pointer conversion |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | array to pointer conversion |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | array to pointer conversion |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | array to pointer conversion |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | i5 |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | i5 |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | (const char *)... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | (const char *)... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | ... + ... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | ... + ... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... |
|
||||
| argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... |
|
||||
| argvLocal.c:128:15:128:16 | array to pointer conversion | argvLocal.c:128:15:128:16 | printWrapper output argument |
|
||||
| argvLocal.c:128:15:128:16 | printWrapper output argument | argvLocal.c:131:9:131:14 | (const char *)... |
|
||||
| argvLocal.c:128:15:128:16 | printWrapper output argument | argvLocal.c:131:9:131:14 | ... + ... |
|
||||
| argvLocal.c:128:15:128:16 | printWrapper output argument | argvLocal.c:132:15:132:20 | ... + ... |
|
||||
| argvLocal.c:128:15:128:16 | printWrapper output argument | argvLocal.c:132:15:132:20 | ... + ... |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | (const char *)... |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | (const char *)... |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:151:15:151:16 | i8 |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:151:15:151:16 | i8 |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:151:15:151:16 | i8 |
|
||||
| argvLocal.c:149:11:149:14 | argv | argvLocal.c:151:15:151:16 | i8 |
|
||||
| argvLocal.c:156:23:156:26 | argv | argvLocal.c:157:9:157:10 | (const char *)... |
|
||||
| argvLocal.c:156:23:156:26 | argv | argvLocal.c:157:9:157:10 | (const char *)... |
|
||||
| argvLocal.c:156:23:156:26 | argv | argvLocal.c:157:9:157:10 | i9 |
|
||||
| argvLocal.c:156:23:156:26 | argv | argvLocal.c:157:9:157:10 | i9 |
|
||||
| argvLocal.c:156:23:156:26 | argv | argvLocal.c:158:15:158:16 | i9 |
|
||||
| argvLocal.c:156:23:156:26 | argv | argvLocal.c:158:15:158:16 | i9 |
|
||||
| argvLocal.c:156:23:156:26 | argv | argvLocal.c:158:15:158:16 | i9 |
|
||||
| argvLocal.c:156:23:156:26 | argv | argvLocal.c:158:15:158:16 | i9 |
|
||||
| argvLocal.c:163:22:163:25 | argv | argvLocal.c:164:9:164:11 | (const char *)... |
|
||||
| argvLocal.c:163:22:163:25 | argv | argvLocal.c:164:9:164:11 | (const char *)... |
|
||||
| argvLocal.c:163:22:163:25 | argv | argvLocal.c:164:9:164:11 | i91 |
|
||||
| argvLocal.c:163:22:163:25 | argv | argvLocal.c:164:9:164:11 | i91 |
|
||||
| argvLocal.c:163:22:163:25 | argv | argvLocal.c:165:15:165:17 | i91 |
|
||||
| argvLocal.c:163:22:163:25 | argv | argvLocal.c:165:15:165:17 | i91 |
|
||||
| argvLocal.c:163:22:163:25 | argv | argvLocal.c:165:15:165:17 | i91 |
|
||||
| argvLocal.c:163:22:163:25 | argv | argvLocal.c:165:15:165:17 | i91 |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:9:169:20 | (char *)... |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:9:169:20 | (char *)... |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:9:169:20 | (const char *)... |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:9:169:20 | (const char *)... |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:15:170:26 | (char *)... |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:15:170:26 | (char *)... |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:24:170:26 | i10 |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:24:170:26 | i10 |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:24:170:26 | i10 |
|
||||
| argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:24:170:26 | i10 |
|
||||
nodes
|
||||
| argvLocal.c:9:25:9:31 | correct | semmle.label | correct |
|
||||
| argvLocal.c:10:9:10:15 | Chi | semmle.label | Chi |
|
||||
| argvLocal.c:95:9:95:12 | argv | semmle.label | argv |
|
||||
| argvLocal.c:95:9:95:12 | argv | semmle.label | argv |
|
||||
| argvLocal.c:95:9:95:15 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:95:9:95:15 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:95:9:95:15 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:95:9:95:15 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:95:9:95:15 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:96:15:96:18 | argv | semmle.label | argv |
|
||||
| argvLocal.c:96:15:96:18 | argv | semmle.label | argv |
|
||||
| argvLocal.c:96:15:96:21 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:96:15:96:21 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:96:15:96:21 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:100:7:100:10 | argv | semmle.label | argv |
|
||||
| argvLocal.c:100:7:100:10 | argv | semmle.label | argv |
|
||||
| argvLocal.c:101:9:101:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:101:9:101:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:101:9:101:10 | i1 | semmle.label | i1 |
|
||||
| argvLocal.c:101:9:101:10 | i1 | semmle.label | i1 |
|
||||
| argvLocal.c:101:9:101:10 | i1 | semmle.label | i1 |
|
||||
| argvLocal.c:102:15:102:16 | i1 | semmle.label | i1 |
|
||||
| argvLocal.c:102:15:102:16 | i1 | semmle.label | i1 |
|
||||
| argvLocal.c:102:15:102:16 | i1 | semmle.label | i1 |
|
||||
| argvLocal.c:105:14:105:17 | argv | semmle.label | argv |
|
||||
| argvLocal.c:105:14:105:17 | argv | semmle.label | argv |
|
||||
| argvLocal.c:106:9:106:13 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:106:9:106:13 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:106:9:106:13 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:106:9:106:13 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:106:9:106:13 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:107:15:107:19 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:107:15:107:19 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:107:15:107:19 | access to array | semmle.label | access to array |
|
||||
| argvLocal.c:110:9:110:11 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:110:9:110:11 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:110:9:110:11 | * ... | semmle.label | * ... |
|
||||
| argvLocal.c:110:9:110:11 | * ... | semmle.label | * ... |
|
||||
| argvLocal.c:110:9:110:11 | * ... | semmle.label | * ... |
|
||||
| argvLocal.c:111:15:111:17 | * ... | semmle.label | * ... |
|
||||
| argvLocal.c:111:15:111:17 | * ... | semmle.label | * ... |
|
||||
| argvLocal.c:111:15:111:17 | * ... | semmle.label | * ... |
|
||||
| argvLocal.c:115:13:115:16 | argv | semmle.label | argv |
|
||||
| argvLocal.c:115:13:115:16 | argv | semmle.label | argv |
|
||||
| argvLocal.c:116:9:116:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:116:9:116:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:116:9:116:10 | i3 | semmle.label | i3 |
|
||||
| argvLocal.c:117:15:117:16 | array to pointer conversion | semmle.label | array to pointer conversion |
|
||||
| argvLocal.c:117:15:117:16 | array to pointer conversion | semmle.label | array to pointer conversion |
|
||||
| argvLocal.c:117:15:117:16 | i3 | semmle.label | i3 |
|
||||
| argvLocal.c:117:15:117:16 | printWrapper output argument | semmle.label | printWrapper output argument |
|
||||
| argvLocal.c:121:9:121:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:121:9:121:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:121:9:121:10 | i4 | semmle.label | i4 |
|
||||
| argvLocal.c:122:15:122:16 | i4 | semmle.label | i4 |
|
||||
| argvLocal.c:122:15:122:16 | i4 | semmle.label | i4 |
|
||||
| argvLocal.c:122:15:122:16 | i4 | semmle.label | i4 |
|
||||
| argvLocal.c:122:15:122:16 | printWrapper output argument | semmle.label | printWrapper output argument |
|
||||
| argvLocal.c:126:10:126:13 | argv | semmle.label | argv |
|
||||
| argvLocal.c:126:10:126:13 | argv | semmle.label | argv |
|
||||
| argvLocal.c:127:9:127:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:127:9:127:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:127:9:127:10 | i5 | semmle.label | i5 |
|
||||
| argvLocal.c:128:15:128:16 | array to pointer conversion | semmle.label | array to pointer conversion |
|
||||
| argvLocal.c:128:15:128:16 | array to pointer conversion | semmle.label | array to pointer conversion |
|
||||
| argvLocal.c:128:15:128:16 | i5 | semmle.label | i5 |
|
||||
| argvLocal.c:128:15:128:16 | printWrapper output argument | semmle.label | printWrapper output argument |
|
||||
| argvLocal.c:131:9:131:14 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:131:9:131:14 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:131:9:131:14 | ... + ... | semmle.label | ... + ... |
|
||||
| argvLocal.c:132:15:132:20 | ... + ... | semmle.label | ... + ... |
|
||||
| argvLocal.c:132:15:132:20 | ... + ... | semmle.label | ... + ... |
|
||||
| argvLocal.c:132:15:132:20 | ... + ... | semmle.label | ... + ... |
|
||||
| argvLocal.c:135:9:135:12 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:135:9:135:12 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:135:9:135:12 | ... ++ | semmle.label | ... ++ |
|
||||
| argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... |
|
||||
| argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... |
|
||||
| argvLocal.c:136:15:136:18 | -- ... | semmle.label | -- ... |
|
||||
| argvLocal.c:144:9:144:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:144:9:144:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:144:9:144:10 | i7 | semmle.label | i7 |
|
||||
| argvLocal.c:144:9:144:10 | i7 | semmle.label | i7 |
|
||||
| argvLocal.c:144:9:144:10 | i7 | semmle.label | i7 |
|
||||
| argvLocal.c:145:15:145:16 | i7 | semmle.label | i7 |
|
||||
| argvLocal.c:145:15:145:16 | i7 | semmle.label | i7 |
|
||||
| argvLocal.c:145:15:145:16 | i7 | semmle.label | i7 |
|
||||
| argvLocal.c:149:11:149:14 | argv | semmle.label | argv |
|
||||
| argvLocal.c:149:11:149:14 | argv | semmle.label | argv |
|
||||
| argvLocal.c:150:9:150:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:150:9:150:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:150:9:150:10 | i8 | semmle.label | i8 |
|
||||
| argvLocal.c:150:9:150:10 | i8 | semmle.label | i8 |
|
||||
| argvLocal.c:150:9:150:10 | i8 | semmle.label | i8 |
|
||||
| argvLocal.c:151:15:151:16 | i8 | semmle.label | i8 |
|
||||
| argvLocal.c:151:15:151:16 | i8 | semmle.label | i8 |
|
||||
| argvLocal.c:151:15:151:16 | i8 | semmle.label | i8 |
|
||||
| argvLocal.c:156:23:156:26 | argv | semmle.label | argv |
|
||||
| argvLocal.c:156:23:156:26 | argv | semmle.label | argv |
|
||||
| argvLocal.c:157:9:157:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:157:9:157:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:157:9:157:10 | i9 | semmle.label | i9 |
|
||||
| argvLocal.c:158:15:158:16 | i9 | semmle.label | i9 |
|
||||
| argvLocal.c:158:15:158:16 | i9 | semmle.label | i9 |
|
||||
| argvLocal.c:158:15:158:16 | i9 | semmle.label | i9 |
|
||||
| argvLocal.c:163:22:163:25 | argv | semmle.label | argv |
|
||||
| argvLocal.c:163:22:163:25 | argv | semmle.label | argv |
|
||||
| argvLocal.c:164:9:164:11 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:164:9:164:11 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:164:9:164:11 | i91 | semmle.label | i91 |
|
||||
| argvLocal.c:165:15:165:17 | i91 | semmle.label | i91 |
|
||||
| argvLocal.c:165:15:165:17 | i91 | semmle.label | i91 |
|
||||
| argvLocal.c:165:15:165:17 | i91 | semmle.label | i91 |
|
||||
| argvLocal.c:168:18:168:21 | argv | semmle.label | argv |
|
||||
| argvLocal.c:168:18:168:21 | argv | semmle.label | argv |
|
||||
| argvLocal.c:169:9:169:20 | (char *)... | semmle.label | (char *)... |
|
||||
| argvLocal.c:169:9:169:20 | (char *)... | semmle.label | (char *)... |
|
||||
| argvLocal.c:169:9:169:20 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:169:9:169:20 | (const char *)... | semmle.label | (const char *)... |
|
||||
| argvLocal.c:169:18:169:20 | i10 | semmle.label | i10 |
|
||||
| argvLocal.c:169:18:169:20 | i10 | semmle.label | i10 |
|
||||
| argvLocal.c:169:18:169:20 | i10 | semmle.label | i10 |
|
||||
| argvLocal.c:170:15:170:26 | (char *)... | semmle.label | (char *)... |
|
||||
| argvLocal.c:170:15:170:26 | (char *)... | semmle.label | (char *)... |
|
||||
| argvLocal.c:170:24:170:26 | i10 | semmle.label | i10 |
|
||||
| argvLocal.c:170:24:170:26 | i10 | semmle.label | i10 |
|
||||
| argvLocal.c:170:24:170:26 | i10 | semmle.label | i10 |
|
||||
#select
|
||||
| argvLocal.c:95:9:95:15 | access to array | argvLocal.c:95:9:95:12 | argv | argvLocal.c:95:9:95:15 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:95:9:95:12 | argv | argv |
|
||||
| argvLocal.c:96:15:96:21 | access to array | argvLocal.c:96:15:96:18 | argv | argvLocal.c:96:15:96:21 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:96:15:96:18 | argv | argv |
|
||||
| argvLocal.c:101:9:101:10 | i1 | argvLocal.c:100:7:100:10 | argv | argvLocal.c:101:9:101:10 | i1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
|
||||
| argvLocal.c:102:15:102:16 | i1 | argvLocal.c:100:7:100:10 | argv | argvLocal.c:102:15:102:16 | i1 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
|
||||
| argvLocal.c:106:9:106:13 | access to array | argvLocal.c:105:14:105:17 | argv | argvLocal.c:106:9:106:13 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:105:14:105:17 | argv | argv |
|
||||
| argvLocal.c:107:15:107:19 | access to array | argvLocal.c:105:14:105:17 | argv | argvLocal.c:107:15:107:19 | access to array | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:105:14:105:17 | argv | argv |
|
||||
| argvLocal.c:110:9:110:11 | * ... | argvLocal.c:105:14:105:17 | argv | argvLocal.c:110:9:110:11 | * ... | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:105:14:105:17 | argv | argv |
|
||||
| argvLocal.c:111:15:111:17 | * ... | argvLocal.c:105:14:105:17 | argv | argvLocal.c:111:15:111:17 | * ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:105:14:105:17 | argv | argv |
|
||||
| argvLocal.c:116:9:116:10 | i3 | argvLocal.c:115:13:115:16 | argv | argvLocal.c:116:9:116:10 | i3 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:117:15:117:16 | i3 | argvLocal.c:115:13:115:16 | argv | argvLocal.c:117:15:117:16 | i3 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:121:9:121:10 | i4 | argvLocal.c:115:13:115:16 | argv | argvLocal.c:121:9:121:10 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:122:15:122:16 | i4 | argvLocal.c:115:13:115:16 | argv | argvLocal.c:122:15:122:16 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:127:9:127:10 | i5 | argvLocal.c:126:10:126:13 | argv | argvLocal.c:127:9:127:10 | i5 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:126:10:126:13 | argv | argv |
|
||||
| argvLocal.c:128:15:128:16 | i5 | argvLocal.c:126:10:126:13 | argv | argvLocal.c:128:15:128:16 | i5 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:126:10:126:13 | argv | argv |
|
||||
| argvLocal.c:131:9:131:14 | ... + ... | argvLocal.c:126:10:126:13 | argv | argvLocal.c:131:9:131:14 | ... + ... | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:126:10:126:13 | argv | argv |
|
||||
| argvLocal.c:132:15:132:20 | ... + ... | argvLocal.c:126:10:126:13 | argv | argvLocal.c:132:15:132:20 | ... + ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:126:10:126:13 | argv | argv |
|
||||
| argvLocal.c:135:9:135:12 | ... ++ | argvLocal.c:115:13:115:16 | argv | argvLocal.c:135:9:135:12 | ... ++ | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:136:15:136:18 | -- ... | argvLocal.c:115:13:115:16 | argv | argvLocal.c:136:15:136:18 | -- ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:115:13:115:16 | argv | argv |
|
||||
| argvLocal.c:144:9:144:10 | i7 | argvLocal.c:100:7:100:10 | argv | argvLocal.c:144:9:144:10 | i7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
|
||||
| argvLocal.c:145:15:145:16 | i7 | argvLocal.c:100:7:100:10 | argv | argvLocal.c:145:15:145:16 | i7 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:100:7:100:10 | argv | argv |
|
||||
| argvLocal.c:150:9:150:10 | i8 | argvLocal.c:149:11:149:14 | argv | argvLocal.c:150:9:150:10 | i8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:149:11:149:14 | argv | argv |
|
||||
| argvLocal.c:151:15:151:16 | i8 | argvLocal.c:149:11:149:14 | argv | argvLocal.c:151:15:151:16 | i8 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:149:11:149:14 | argv | argv |
|
||||
| argvLocal.c:157:9:157:10 | i9 | argvLocal.c:156:23:156:26 | argv | argvLocal.c:157:9:157:10 | i9 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:156:23:156:26 | argv | argv |
|
||||
| argvLocal.c:158:15:158:16 | i9 | argvLocal.c:156:23:156:26 | argv | argvLocal.c:158:15:158:16 | i9 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:156:23:156:26 | argv | argv |
|
||||
| argvLocal.c:164:9:164:11 | i91 | argvLocal.c:163:22:163:25 | argv | argvLocal.c:164:9:164:11 | i91 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:163:22:163:25 | argv | argv |
|
||||
| argvLocal.c:165:15:165:17 | i91 | argvLocal.c:163:22:163:25 | argv | argvLocal.c:165:15:165:17 | i91 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:163:22:163:25 | argv | argv |
|
||||
| argvLocal.c:169:18:169:20 | i10 | argvLocal.c:168:18:168:21 | argv | argvLocal.c:169:18:169:20 | i10 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | argvLocal.c:168:18:168:21 | argv | argv |
|
||||
| argvLocal.c:170:24:170:26 | i10 | argvLocal.c:168:18:168:21 | argv | argvLocal.c:170:24:170:26 | i10 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format) | argvLocal.c:168:18:168:21 | argv | argv |
|
||||
|
||||
@@ -1,7 +1,83 @@
|
||||
| funcsLocal.c:17:9:17:10 | i1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:16:8:16:9 | i1 | fread |
|
||||
| funcsLocal.c:27:9:27:10 | i3 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:26:8:26:9 | i3 | fgets |
|
||||
| funcsLocal.c:32:9:32:10 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:31:13:31:17 | call to fgets | fgets |
|
||||
| funcsLocal.c:32:9:32:10 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:31:19:31:21 | i41 | fgets |
|
||||
| funcsLocal.c:37:9:37:10 | i5 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:36:7:36:8 | i5 | gets |
|
||||
| funcsLocal.c:42:9:42:10 | i6 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:41:13:41:16 | call to gets | gets |
|
||||
| funcsLocal.c:42:9:42:10 | i6 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:41:18:41:20 | i61 | gets |
|
||||
edges
|
||||
| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:17:9:17:10 | (const char *)... |
|
||||
| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:17:9:17:10 | i1 |
|
||||
| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:58:9:58:10 | (const char *)... |
|
||||
| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:58:9:58:10 | e1 |
|
||||
| funcsLocal.c:16:8:16:9 | i1 | funcsLocal.c:17:9:17:10 | (const char *)... |
|
||||
| funcsLocal.c:16:8:16:9 | i1 | funcsLocal.c:17:9:17:10 | i1 |
|
||||
| funcsLocal.c:16:8:16:9 | i1 | funcsLocal.c:58:9:58:10 | (const char *)... |
|
||||
| funcsLocal.c:16:8:16:9 | i1 | funcsLocal.c:58:9:58:10 | e1 |
|
||||
| funcsLocal.c:26:8:26:9 | fgets output argument | funcsLocal.c:27:9:27:10 | (const char *)... |
|
||||
| funcsLocal.c:26:8:26:9 | fgets output argument | funcsLocal.c:27:9:27:10 | i3 |
|
||||
| funcsLocal.c:26:8:26:9 | i3 | funcsLocal.c:27:9:27:10 | (const char *)... |
|
||||
| funcsLocal.c:26:8:26:9 | i3 | funcsLocal.c:27:9:27:10 | i3 |
|
||||
| funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | (const char *)... |
|
||||
| funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | (const char *)... |
|
||||
| funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 |
|
||||
| funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 |
|
||||
| funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 |
|
||||
| funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 |
|
||||
| funcsLocal.c:31:19:31:21 | fgets output argument | funcsLocal.c:32:9:32:10 | (const char *)... |
|
||||
| funcsLocal.c:31:19:31:21 | fgets output argument | funcsLocal.c:32:9:32:10 | i4 |
|
||||
| funcsLocal.c:31:19:31:21 | i41 | funcsLocal.c:32:9:32:10 | (const char *)... |
|
||||
| funcsLocal.c:31:19:31:21 | i41 | funcsLocal.c:32:9:32:10 | i4 |
|
||||
| funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | (const char *)... |
|
||||
| funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | i5 |
|
||||
| funcsLocal.c:36:7:36:8 | i5 | funcsLocal.c:37:9:37:10 | (const char *)... |
|
||||
| funcsLocal.c:36:7:36:8 | i5 | funcsLocal.c:37:9:37:10 | i5 |
|
||||
| funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | (const char *)... |
|
||||
| funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | (const char *)... |
|
||||
| funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 |
|
||||
| funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 |
|
||||
| funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 |
|
||||
| funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 |
|
||||
| funcsLocal.c:41:18:41:20 | gets output argument | funcsLocal.c:42:9:42:10 | (const char *)... |
|
||||
| funcsLocal.c:41:18:41:20 | gets output argument | funcsLocal.c:42:9:42:10 | i6 |
|
||||
| funcsLocal.c:41:18:41:20 | i61 | funcsLocal.c:42:9:42:10 | (const char *)... |
|
||||
| funcsLocal.c:41:18:41:20 | i61 | funcsLocal.c:42:9:42:10 | i6 |
|
||||
nodes
|
||||
| funcsLocal.c:16:8:16:9 | fread output argument | semmle.label | fread output argument |
|
||||
| funcsLocal.c:16:8:16:9 | i1 | semmle.label | i1 |
|
||||
| funcsLocal.c:17:9:17:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:17:9:17:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:17:9:17:10 | i1 | semmle.label | i1 |
|
||||
| funcsLocal.c:26:8:26:9 | fgets output argument | semmle.label | fgets output argument |
|
||||
| funcsLocal.c:26:8:26:9 | i3 | semmle.label | i3 |
|
||||
| funcsLocal.c:27:9:27:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:27:9:27:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:27:9:27:10 | i3 | semmle.label | i3 |
|
||||
| funcsLocal.c:31:13:31:17 | call to fgets | semmle.label | call to fgets |
|
||||
| funcsLocal.c:31:13:31:17 | call to fgets | semmle.label | call to fgets |
|
||||
| funcsLocal.c:31:19:31:21 | fgets output argument | semmle.label | fgets output argument |
|
||||
| funcsLocal.c:31:19:31:21 | i41 | semmle.label | i41 |
|
||||
| funcsLocal.c:32:9:32:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:32:9:32:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:32:9:32:10 | i4 | semmle.label | i4 |
|
||||
| funcsLocal.c:32:9:32:10 | i4 | semmle.label | i4 |
|
||||
| funcsLocal.c:32:9:32:10 | i4 | semmle.label | i4 |
|
||||
| funcsLocal.c:36:7:36:8 | gets output argument | semmle.label | gets output argument |
|
||||
| funcsLocal.c:36:7:36:8 | i5 | semmle.label | i5 |
|
||||
| funcsLocal.c:37:9:37:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:37:9:37:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:37:9:37:10 | i5 | semmle.label | i5 |
|
||||
| funcsLocal.c:41:13:41:16 | call to gets | semmle.label | call to gets |
|
||||
| funcsLocal.c:41:13:41:16 | call to gets | semmle.label | call to gets |
|
||||
| funcsLocal.c:41:18:41:20 | gets output argument | semmle.label | gets output argument |
|
||||
| funcsLocal.c:41:18:41:20 | i61 | semmle.label | i61 |
|
||||
| funcsLocal.c:42:9:42:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:42:9:42:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:42:9:42:10 | i6 | semmle.label | i6 |
|
||||
| funcsLocal.c:42:9:42:10 | i6 | semmle.label | i6 |
|
||||
| funcsLocal.c:42:9:42:10 | i6 | semmle.label | i6 |
|
||||
| funcsLocal.c:58:9:58:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:58:9:58:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| funcsLocal.c:58:9:58:10 | e1 | semmle.label | e1 |
|
||||
#select
|
||||
| funcsLocal.c:17:9:17:10 | i1 | funcsLocal.c:16:8:16:9 | i1 | funcsLocal.c:17:9:17:10 | i1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:16:8:16:9 | i1 | fread |
|
||||
| funcsLocal.c:27:9:27:10 | i3 | funcsLocal.c:26:8:26:9 | i3 | funcsLocal.c:27:9:27:10 | i3 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:26:8:26:9 | i3 | fgets |
|
||||
| funcsLocal.c:32:9:32:10 | i4 | funcsLocal.c:31:13:31:17 | call to fgets | funcsLocal.c:32:9:32:10 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:31:13:31:17 | call to fgets | fgets |
|
||||
| funcsLocal.c:32:9:32:10 | i4 | funcsLocal.c:31:19:31:21 | i41 | funcsLocal.c:32:9:32:10 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:31:19:31:21 | i41 | fgets |
|
||||
| funcsLocal.c:37:9:37:10 | i5 | funcsLocal.c:36:7:36:8 | i5 | funcsLocal.c:37:9:37:10 | i5 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:36:7:36:8 | i5 | gets |
|
||||
| funcsLocal.c:42:9:42:10 | i6 | funcsLocal.c:41:13:41:16 | call to gets | funcsLocal.c:42:9:42:10 | i6 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:41:13:41:16 | call to gets | gets |
|
||||
| funcsLocal.c:42:9:42:10 | i6 | funcsLocal.c:41:18:41:20 | i61 | funcsLocal.c:42:9:42:10 | i6 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:41:18:41:20 | i61 | gets |
|
||||
| funcsLocal.c:58:9:58:10 | e1 | funcsLocal.c:16:8:16:9 | i1 | funcsLocal.c:58:9:58:10 | e1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | funcsLocal.c:16:8:16:9 | i1 | fread |
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
edges
|
||||
nodes
|
||||
#select
|
||||
|
||||
@@ -1,5 +1,65 @@
|
||||
| globalVars.c:27:9:27:12 | copy | This value may flow through $@, originating from $@, and is a formatting argument to printf(format). | globalVars.c:8:7:8:10 | copy | copy | globalVars.c:24:11:24:14 | argv | argv |
|
||||
| globalVars.c:30:15:30:18 | copy | This value may flow through $@, originating from $@, and is a formatting argument to printWrapper(str), which calls printf(format). | globalVars.c:8:7:8:10 | copy | copy | globalVars.c:24:11:24:14 | argv | argv |
|
||||
| globalVars.c:38:9:38:13 | copy2 | This value may flow through $@, originating from $@, and is a formatting argument to printf(format). | globalVars.c:9:7:9:11 | copy2 | copy2 | globalVars.c:24:11:24:14 | argv | argv |
|
||||
| globalVars.c:41:15:41:19 | copy2 | This value may flow through $@, originating from $@, and is a formatting argument to printWrapper(str), which calls printf(format). | globalVars.c:9:7:9:11 | copy2 | copy2 | globalVars.c:24:11:24:14 | argv | argv |
|
||||
| globalVars.c:50:9:50:13 | copy2 | This value may flow through $@, originating from $@, and is a formatting argument to printf(format). | globalVars.c:9:7:9:11 | copy2 | copy2 | globalVars.c:24:11:24:14 | argv | argv |
|
||||
edges
|
||||
| globalVars.c:8:7:8:10 | copy | globalVars.c:27:9:27:12 | copy |
|
||||
| globalVars.c:8:7:8:10 | copy | globalVars.c:27:9:27:12 | copy |
|
||||
| globalVars.c:8:7:8:10 | copy | globalVars.c:27:9:27:12 | copy |
|
||||
| globalVars.c:8:7:8:10 | copy | globalVars.c:30:15:30:18 | copy |
|
||||
| globalVars.c:8:7:8:10 | copy | globalVars.c:30:15:30:18 | copy |
|
||||
| globalVars.c:8:7:8:10 | copy | globalVars.c:35:11:35:14 | copy |
|
||||
| globalVars.c:9:7:9:11 | copy2 | globalVars.c:38:9:38:13 | copy2 |
|
||||
| globalVars.c:9:7:9:11 | copy2 | globalVars.c:38:9:38:13 | copy2 |
|
||||
| globalVars.c:9:7:9:11 | copy2 | globalVars.c:38:9:38:13 | copy2 |
|
||||
| globalVars.c:9:7:9:11 | copy2 | globalVars.c:41:15:41:19 | copy2 |
|
||||
| globalVars.c:9:7:9:11 | copy2 | globalVars.c:41:15:41:19 | copy2 |
|
||||
| globalVars.c:9:7:9:11 | copy2 | globalVars.c:50:9:50:13 | copy2 |
|
||||
| globalVars.c:9:7:9:11 | copy2 | globalVars.c:50:9:50:13 | copy2 |
|
||||
| globalVars.c:9:7:9:11 | copy2 | globalVars.c:50:9:50:13 | copy2 |
|
||||
| globalVars.c:11:22:11:25 | argv | globalVars.c:12:2:12:15 | Store |
|
||||
| globalVars.c:12:2:12:15 | Store | globalVars.c:8:7:8:10 | copy |
|
||||
| globalVars.c:15:21:15:23 | val | globalVars.c:16:2:16:12 | Store |
|
||||
| globalVars.c:16:2:16:12 | Store | globalVars.c:9:7:9:11 | copy2 |
|
||||
| globalVars.c:24:11:24:14 | argv | globalVars.c:11:22:11:25 | argv |
|
||||
| globalVars.c:24:11:24:14 | argv | globalVars.c:11:22:11:25 | argv |
|
||||
| globalVars.c:27:9:27:12 | copy | globalVars.c:27:9:27:12 | (const char *)... |
|
||||
| globalVars.c:27:9:27:12 | copy | globalVars.c:27:9:27:12 | copy |
|
||||
| globalVars.c:35:11:35:14 | copy | globalVars.c:15:21:15:23 | val |
|
||||
| globalVars.c:38:9:38:13 | copy2 | globalVars.c:38:9:38:13 | (const char *)... |
|
||||
| globalVars.c:38:9:38:13 | copy2 | globalVars.c:38:9:38:13 | copy2 |
|
||||
| globalVars.c:50:9:50:13 | copy2 | globalVars.c:50:9:50:13 | (const char *)... |
|
||||
| globalVars.c:50:9:50:13 | copy2 | globalVars.c:50:9:50:13 | copy2 |
|
||||
nodes
|
||||
| globalVars.c:8:7:8:10 | copy | semmle.label | copy |
|
||||
| globalVars.c:9:7:9:11 | copy2 | semmle.label | copy2 |
|
||||
| globalVars.c:11:22:11:25 | argv | semmle.label | argv |
|
||||
| globalVars.c:12:2:12:15 | Store | semmle.label | Store |
|
||||
| globalVars.c:15:21:15:23 | val | semmle.label | val |
|
||||
| globalVars.c:16:2:16:12 | Store | semmle.label | Store |
|
||||
| globalVars.c:24:11:24:14 | argv | semmle.label | argv |
|
||||
| globalVars.c:24:11:24:14 | argv | semmle.label | argv |
|
||||
| globalVars.c:27:9:27:12 | (const char *)... | semmle.label | (const char *)... |
|
||||
| globalVars.c:27:9:27:12 | (const char *)... | semmle.label | (const char *)... |
|
||||
| globalVars.c:27:9:27:12 | copy | semmle.label | copy |
|
||||
| globalVars.c:27:9:27:12 | copy | semmle.label | copy |
|
||||
| globalVars.c:27:9:27:12 | copy | semmle.label | copy |
|
||||
| globalVars.c:30:15:30:18 | copy | semmle.label | copy |
|
||||
| globalVars.c:30:15:30:18 | copy | semmle.label | copy |
|
||||
| globalVars.c:30:15:30:18 | copy | semmle.label | copy |
|
||||
| globalVars.c:35:11:35:14 | copy | semmle.label | copy |
|
||||
| globalVars.c:38:9:38:13 | (const char *)... | semmle.label | (const char *)... |
|
||||
| globalVars.c:38:9:38:13 | (const char *)... | semmle.label | (const char *)... |
|
||||
| globalVars.c:38:9:38:13 | copy2 | semmle.label | copy2 |
|
||||
| globalVars.c:38:9:38:13 | copy2 | semmle.label | copy2 |
|
||||
| globalVars.c:38:9:38:13 | copy2 | semmle.label | copy2 |
|
||||
| globalVars.c:41:15:41:19 | copy2 | semmle.label | copy2 |
|
||||
| globalVars.c:41:15:41:19 | copy2 | semmle.label | copy2 |
|
||||
| globalVars.c:41:15:41:19 | copy2 | semmle.label | copy2 |
|
||||
| globalVars.c:50:9:50:13 | (const char *)... | semmle.label | (const char *)... |
|
||||
| globalVars.c:50:9:50:13 | (const char *)... | semmle.label | (const char *)... |
|
||||
| globalVars.c:50:9:50:13 | copy2 | semmle.label | copy2 |
|
||||
| globalVars.c:50:9:50:13 | copy2 | semmle.label | copy2 |
|
||||
| globalVars.c:50:9:50:13 | copy2 | semmle.label | copy2 |
|
||||
#select
|
||||
| globalVars.c:27:9:27:12 | copy | globalVars.c:24:11:24:14 | argv | globalVars.c:27:9:27:12 | copy | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | globalVars.c:24:11:24:14 | argv | argv |
|
||||
| globalVars.c:30:15:30:18 | copy | globalVars.c:24:11:24:14 | argv | globalVars.c:30:15:30:18 | copy | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(str), which calls printf(format) | globalVars.c:24:11:24:14 | argv | argv |
|
||||
| globalVars.c:38:9:38:13 | copy2 | globalVars.c:24:11:24:14 | argv | globalVars.c:38:9:38:13 | copy2 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | globalVars.c:24:11:24:14 | argv | argv |
|
||||
| globalVars.c:41:15:41:19 | copy2 | globalVars.c:24:11:24:14 | argv | globalVars.c:41:15:41:19 | copy2 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(str), which calls printf(format) | globalVars.c:24:11:24:14 | argv | argv |
|
||||
| globalVars.c:50:9:50:13 | copy2 | globalVars.c:24:11:24:14 | argv | globalVars.c:50:9:50:13 | copy2 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | globalVars.c:24:11:24:14 | argv | argv |
|
||||
|
||||
@@ -1,11 +1,157 @@
|
||||
| ifs.c:62:9:62:10 | c7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:61:8:61:11 | argv | argv |
|
||||
| ifs.c:69:9:69:10 | c8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:68:8:68:11 | argv | argv |
|
||||
| ifs.c:75:9:75:10 | i1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:74:8:74:11 | argv | argv |
|
||||
| ifs.c:81:9:81:10 | i2 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:80:8:80:11 | argv | argv |
|
||||
| ifs.c:87:9:87:10 | i3 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:86:8:86:11 | argv | argv |
|
||||
| ifs.c:93:9:93:10 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:92:8:92:11 | argv | argv |
|
||||
| ifs.c:99:9:99:10 | i5 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:98:8:98:11 | argv | argv |
|
||||
| ifs.c:106:9:106:10 | i6 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:105:8:105:11 | argv | argv |
|
||||
| ifs.c:112:9:112:10 | i7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:111:8:111:11 | argv | argv |
|
||||
| ifs.c:118:9:118:10 | i8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:117:8:117:11 | argv | argv |
|
||||
| ifs.c:124:9:124:10 | i9 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:123:8:123:11 | argv | argv |
|
||||
edges
|
||||
| ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | (const char *)... |
|
||||
| ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | (const char *)... |
|
||||
| ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 |
|
||||
| ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 |
|
||||
| ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 |
|
||||
| ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 |
|
||||
| ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | (const char *)... |
|
||||
| ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | (const char *)... |
|
||||
| ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 |
|
||||
| ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 |
|
||||
| ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 |
|
||||
| ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 |
|
||||
| ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | (const char *)... |
|
||||
| ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | (const char *)... |
|
||||
| ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 |
|
||||
| ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 |
|
||||
| ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 |
|
||||
| ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 |
|
||||
| ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | (const char *)... |
|
||||
| ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | (const char *)... |
|
||||
| ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 |
|
||||
| ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 |
|
||||
| ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 |
|
||||
| ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 |
|
||||
| ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | (const char *)... |
|
||||
| ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | (const char *)... |
|
||||
| ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 |
|
||||
| ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 |
|
||||
| ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 |
|
||||
| ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 |
|
||||
| ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | (const char *)... |
|
||||
| ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | (const char *)... |
|
||||
| ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 |
|
||||
| ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 |
|
||||
| ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 |
|
||||
| ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 |
|
||||
| ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | (const char *)... |
|
||||
| ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | (const char *)... |
|
||||
| ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 |
|
||||
| ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 |
|
||||
| ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 |
|
||||
| ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 |
|
||||
| ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | (const char *)... |
|
||||
| ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | (const char *)... |
|
||||
| ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 |
|
||||
| ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 |
|
||||
| ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 |
|
||||
| ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 |
|
||||
| ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | (const char *)... |
|
||||
| ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | (const char *)... |
|
||||
| ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 |
|
||||
| ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 |
|
||||
| ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 |
|
||||
| ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 |
|
||||
| ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | (const char *)... |
|
||||
| ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | (const char *)... |
|
||||
| ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 |
|
||||
| ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 |
|
||||
| ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 |
|
||||
| ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 |
|
||||
| ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | (const char *)... |
|
||||
| ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | (const char *)... |
|
||||
| ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 |
|
||||
| ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 |
|
||||
| ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 |
|
||||
| ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 |
|
||||
nodes
|
||||
| ifs.c:61:8:61:11 | argv | semmle.label | argv |
|
||||
| ifs.c:61:8:61:11 | argv | semmle.label | argv |
|
||||
| ifs.c:62:9:62:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:62:9:62:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:62:9:62:10 | c7 | semmle.label | c7 |
|
||||
| ifs.c:62:9:62:10 | c7 | semmle.label | c7 |
|
||||
| ifs.c:62:9:62:10 | c7 | semmle.label | c7 |
|
||||
| ifs.c:68:8:68:11 | argv | semmle.label | argv |
|
||||
| ifs.c:68:8:68:11 | argv | semmle.label | argv |
|
||||
| ifs.c:69:9:69:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:69:9:69:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:69:9:69:10 | c8 | semmle.label | c8 |
|
||||
| ifs.c:69:9:69:10 | c8 | semmle.label | c8 |
|
||||
| ifs.c:69:9:69:10 | c8 | semmle.label | c8 |
|
||||
| ifs.c:74:8:74:11 | argv | semmle.label | argv |
|
||||
| ifs.c:74:8:74:11 | argv | semmle.label | argv |
|
||||
| ifs.c:75:9:75:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:75:9:75:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:75:9:75:10 | i1 | semmle.label | i1 |
|
||||
| ifs.c:75:9:75:10 | i1 | semmle.label | i1 |
|
||||
| ifs.c:75:9:75:10 | i1 | semmle.label | i1 |
|
||||
| ifs.c:80:8:80:11 | argv | semmle.label | argv |
|
||||
| ifs.c:80:8:80:11 | argv | semmle.label | argv |
|
||||
| ifs.c:81:9:81:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:81:9:81:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:81:9:81:10 | i2 | semmle.label | i2 |
|
||||
| ifs.c:81:9:81:10 | i2 | semmle.label | i2 |
|
||||
| ifs.c:81:9:81:10 | i2 | semmle.label | i2 |
|
||||
| ifs.c:86:8:86:11 | argv | semmle.label | argv |
|
||||
| ifs.c:86:8:86:11 | argv | semmle.label | argv |
|
||||
| ifs.c:87:9:87:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:87:9:87:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:87:9:87:10 | i3 | semmle.label | i3 |
|
||||
| ifs.c:87:9:87:10 | i3 | semmle.label | i3 |
|
||||
| ifs.c:87:9:87:10 | i3 | semmle.label | i3 |
|
||||
| ifs.c:92:8:92:11 | argv | semmle.label | argv |
|
||||
| ifs.c:92:8:92:11 | argv | semmle.label | argv |
|
||||
| ifs.c:93:9:93:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:93:9:93:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:93:9:93:10 | i4 | semmle.label | i4 |
|
||||
| ifs.c:93:9:93:10 | i4 | semmle.label | i4 |
|
||||
| ifs.c:93:9:93:10 | i4 | semmle.label | i4 |
|
||||
| ifs.c:98:8:98:11 | argv | semmle.label | argv |
|
||||
| ifs.c:98:8:98:11 | argv | semmle.label | argv |
|
||||
| ifs.c:99:9:99:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:99:9:99:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:99:9:99:10 | i5 | semmle.label | i5 |
|
||||
| ifs.c:99:9:99:10 | i5 | semmle.label | i5 |
|
||||
| ifs.c:99:9:99:10 | i5 | semmle.label | i5 |
|
||||
| ifs.c:105:8:105:11 | argv | semmle.label | argv |
|
||||
| ifs.c:105:8:105:11 | argv | semmle.label | argv |
|
||||
| ifs.c:106:9:106:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:106:9:106:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:106:9:106:10 | i6 | semmle.label | i6 |
|
||||
| ifs.c:106:9:106:10 | i6 | semmle.label | i6 |
|
||||
| ifs.c:106:9:106:10 | i6 | semmle.label | i6 |
|
||||
| ifs.c:111:8:111:11 | argv | semmle.label | argv |
|
||||
| ifs.c:111:8:111:11 | argv | semmle.label | argv |
|
||||
| ifs.c:112:9:112:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:112:9:112:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:112:9:112:10 | i7 | semmle.label | i7 |
|
||||
| ifs.c:112:9:112:10 | i7 | semmle.label | i7 |
|
||||
| ifs.c:112:9:112:10 | i7 | semmle.label | i7 |
|
||||
| ifs.c:117:8:117:11 | argv | semmle.label | argv |
|
||||
| ifs.c:117:8:117:11 | argv | semmle.label | argv |
|
||||
| ifs.c:118:9:118:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:118:9:118:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:118:9:118:10 | i8 | semmle.label | i8 |
|
||||
| ifs.c:118:9:118:10 | i8 | semmle.label | i8 |
|
||||
| ifs.c:118:9:118:10 | i8 | semmle.label | i8 |
|
||||
| ifs.c:123:8:123:11 | argv | semmle.label | argv |
|
||||
| ifs.c:123:8:123:11 | argv | semmle.label | argv |
|
||||
| ifs.c:124:9:124:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:124:9:124:10 | (const char *)... | semmle.label | (const char *)... |
|
||||
| ifs.c:124:9:124:10 | i9 | semmle.label | i9 |
|
||||
| ifs.c:124:9:124:10 | i9 | semmle.label | i9 |
|
||||
| ifs.c:124:9:124:10 | i9 | semmle.label | i9 |
|
||||
#select
|
||||
| ifs.c:62:9:62:10 | c7 | ifs.c:61:8:61:11 | argv | ifs.c:62:9:62:10 | c7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:61:8:61:11 | argv | argv |
|
||||
| ifs.c:69:9:69:10 | c8 | ifs.c:68:8:68:11 | argv | ifs.c:69:9:69:10 | c8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:68:8:68:11 | argv | argv |
|
||||
| ifs.c:75:9:75:10 | i1 | ifs.c:74:8:74:11 | argv | ifs.c:75:9:75:10 | i1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:74:8:74:11 | argv | argv |
|
||||
| ifs.c:81:9:81:10 | i2 | ifs.c:80:8:80:11 | argv | ifs.c:81:9:81:10 | i2 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:80:8:80:11 | argv | argv |
|
||||
| ifs.c:87:9:87:10 | i3 | ifs.c:86:8:86:11 | argv | ifs.c:87:9:87:10 | i3 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:86:8:86:11 | argv | argv |
|
||||
| ifs.c:93:9:93:10 | i4 | ifs.c:92:8:92:11 | argv | ifs.c:93:9:93:10 | i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:92:8:92:11 | argv | argv |
|
||||
| ifs.c:99:9:99:10 | i5 | ifs.c:98:8:98:11 | argv | ifs.c:99:9:99:10 | i5 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:98:8:98:11 | argv | argv |
|
||||
| ifs.c:106:9:106:10 | i6 | ifs.c:105:8:105:11 | argv | ifs.c:106:9:106:10 | i6 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:105:8:105:11 | argv | argv |
|
||||
| ifs.c:112:9:112:10 | i7 | ifs.c:111:8:111:11 | argv | ifs.c:112:9:112:10 | i7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:111:8:111:11 | argv | argv |
|
||||
| ifs.c:118:9:118:10 | i8 | ifs.c:117:8:117:11 | argv | ifs.c:118:9:118:10 | i8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:117:8:117:11 | argv | argv |
|
||||
| ifs.c:124:9:124:10 | i9 | ifs.c:123:8:123:11 | argv | ifs.c:124:9:124:10 | i9 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format) | ifs.c:123:8:123:11 | argv | argv |
|
||||
|
||||
@@ -1,9 +1,151 @@
|
||||
| test.cpp:42:31:42:36 | call to malloc | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:43:31:43:36 | call to malloc | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:43:38:43:63 | ... * ... | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:45:31:45:36 | call to malloc | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:48:25:48:30 | call to malloc | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:49:17:49:30 | new[] | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:52:21:52:27 | call to realloc | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:52:35:52:60 | ... * ... | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:127:17:127:22 | call to malloc | This allocation size is derived from $@ and might overflow | test.cpp:123:25:123:30 | call to getenv | user input (getenv) |
|
||||
edges
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:42:38:42:44 | (size_t)... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:42:38:42:44 | (size_t)... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:42:38:42:44 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:42:38:42:44 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:42:38:42:44 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:42:38:42:44 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:44 | (unsigned long)... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:44 | (unsigned long)... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:44 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:44 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:44 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:44 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:63 | ... * ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:63 | ... * ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:63 | ... * ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:63 | ... * ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:45:38:45:63 | ... + ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:45:38:45:63 | ... + ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:45:38:45:63 | ... + ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:45:38:45:63 | ... + ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:48:32:48:35 | (size_t)... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:48:32:48:35 | (size_t)... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:48:32:48:35 | size |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:48:32:48:35 | size |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:48:32:48:35 | size |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:48:32:48:35 | size |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:49:26:49:29 | size |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:49:26:49:29 | size |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:49:26:49:29 | size |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:49:26:49:29 | size |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:35:52:60 | ... * ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:35:52:60 | ... * ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:35:52:60 | ... * ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:35:52:60 | ... * ... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:54:52:60 | (unsigned long)... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:54:52:60 | (unsigned long)... |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:54:52:60 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:54:52:60 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:54:52:60 | tainted |
|
||||
| test.cpp:39:21:39:24 | argv | test.cpp:52:54:52:60 | tainted |
|
||||
| test.cpp:123:18:123:23 | call to getenv | test.cpp:127:24:127:27 | (unsigned long)... |
|
||||
| test.cpp:123:18:123:23 | call to getenv | test.cpp:127:24:127:27 | size |
|
||||
| test.cpp:123:18:123:23 | call to getenv | test.cpp:127:24:127:27 | size |
|
||||
| test.cpp:123:18:123:23 | call to getenv | test.cpp:127:24:127:41 | ... * ... |
|
||||
| test.cpp:123:18:123:23 | call to getenv | test.cpp:127:24:127:41 | ... * ... |
|
||||
| test.cpp:123:18:123:31 | (const char *)... | test.cpp:127:24:127:27 | (unsigned long)... |
|
||||
| test.cpp:123:18:123:31 | (const char *)... | test.cpp:127:24:127:27 | size |
|
||||
| test.cpp:123:18:123:31 | (const char *)... | test.cpp:127:24:127:27 | size |
|
||||
| test.cpp:123:18:123:31 | (const char *)... | test.cpp:127:24:127:41 | ... * ... |
|
||||
| test.cpp:123:18:123:31 | (const char *)... | test.cpp:127:24:127:41 | ... * ... |
|
||||
| test.cpp:132:19:132:24 | call to getenv | test.cpp:134:10:134:13 | (unsigned long)... |
|
||||
| test.cpp:132:19:132:24 | call to getenv | test.cpp:134:10:134:13 | size |
|
||||
| test.cpp:132:19:132:24 | call to getenv | test.cpp:134:10:134:13 | size |
|
||||
| test.cpp:132:19:132:24 | call to getenv | test.cpp:134:10:134:27 | ... * ... |
|
||||
| test.cpp:132:19:132:24 | call to getenv | test.cpp:134:10:134:27 | ... * ... |
|
||||
| test.cpp:132:19:132:32 | (const char *)... | test.cpp:134:10:134:13 | (unsigned long)... |
|
||||
| test.cpp:132:19:132:32 | (const char *)... | test.cpp:134:10:134:13 | size |
|
||||
| test.cpp:132:19:132:32 | (const char *)... | test.cpp:134:10:134:13 | size |
|
||||
| test.cpp:132:19:132:32 | (const char *)... | test.cpp:134:10:134:27 | ... * ... |
|
||||
| test.cpp:132:19:132:32 | (const char *)... | test.cpp:134:10:134:27 | ... * ... |
|
||||
| test.cpp:138:19:138:24 | call to getenv | test.cpp:142:11:142:14 | (unsigned long)... |
|
||||
| test.cpp:138:19:138:24 | call to getenv | test.cpp:142:11:142:14 | size |
|
||||
| test.cpp:138:19:138:24 | call to getenv | test.cpp:142:11:142:14 | size |
|
||||
| test.cpp:138:19:138:24 | call to getenv | test.cpp:142:11:142:28 | ... * ... |
|
||||
| test.cpp:138:19:138:24 | call to getenv | test.cpp:142:11:142:28 | ... * ... |
|
||||
| test.cpp:138:19:138:32 | (const char *)... | test.cpp:142:11:142:14 | (unsigned long)... |
|
||||
| test.cpp:138:19:138:32 | (const char *)... | test.cpp:142:11:142:14 | size |
|
||||
| test.cpp:138:19:138:32 | (const char *)... | test.cpp:142:11:142:14 | size |
|
||||
| test.cpp:138:19:138:32 | (const char *)... | test.cpp:142:11:142:28 | ... * ... |
|
||||
| test.cpp:138:19:138:32 | (const char *)... | test.cpp:142:11:142:28 | ... * ... |
|
||||
nodes
|
||||
| test.cpp:39:21:39:24 | argv | semmle.label | argv |
|
||||
| test.cpp:39:21:39:24 | argv | semmle.label | argv |
|
||||
| test.cpp:42:38:42:44 | (size_t)... | semmle.label | (size_t)... |
|
||||
| test.cpp:42:38:42:44 | (size_t)... | semmle.label | (size_t)... |
|
||||
| test.cpp:42:38:42:44 | tainted | semmle.label | tainted |
|
||||
| test.cpp:42:38:42:44 | tainted | semmle.label | tainted |
|
||||
| test.cpp:42:38:42:44 | tainted | semmle.label | tainted |
|
||||
| test.cpp:43:38:43:44 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:43:38:43:44 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:43:38:43:44 | tainted | semmle.label | tainted |
|
||||
| test.cpp:43:38:43:44 | tainted | semmle.label | tainted |
|
||||
| test.cpp:43:38:43:44 | tainted | semmle.label | tainted |
|
||||
| test.cpp:43:38:43:63 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:43:38:43:63 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:43:38:43:63 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:45:38:45:63 | ... + ... | semmle.label | ... + ... |
|
||||
| test.cpp:45:38:45:63 | ... + ... | semmle.label | ... + ... |
|
||||
| test.cpp:45:38:45:63 | ... + ... | semmle.label | ... + ... |
|
||||
| test.cpp:48:32:48:35 | (size_t)... | semmle.label | (size_t)... |
|
||||
| test.cpp:48:32:48:35 | (size_t)... | semmle.label | (size_t)... |
|
||||
| test.cpp:48:32:48:35 | size | semmle.label | size |
|
||||
| test.cpp:48:32:48:35 | size | semmle.label | size |
|
||||
| test.cpp:48:32:48:35 | size | semmle.label | size |
|
||||
| test.cpp:49:26:49:29 | size | semmle.label | size |
|
||||
| test.cpp:49:26:49:29 | size | semmle.label | size |
|
||||
| test.cpp:49:26:49:29 | size | semmle.label | size |
|
||||
| test.cpp:52:35:52:60 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:52:35:52:60 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:52:35:52:60 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:52:54:52:60 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:52:54:52:60 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:52:54:52:60 | tainted | semmle.label | tainted |
|
||||
| test.cpp:52:54:52:60 | tainted | semmle.label | tainted |
|
||||
| test.cpp:52:54:52:60 | tainted | semmle.label | tainted |
|
||||
| test.cpp:123:18:123:23 | call to getenv | semmle.label | call to getenv |
|
||||
| test.cpp:123:18:123:31 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.cpp:127:24:127:27 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:127:24:127:27 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:127:24:127:27 | size | semmle.label | size |
|
||||
| test.cpp:127:24:127:27 | size | semmle.label | size |
|
||||
| test.cpp:127:24:127:27 | size | semmle.label | size |
|
||||
| test.cpp:127:24:127:41 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:127:24:127:41 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:127:24:127:41 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:132:19:132:24 | call to getenv | semmle.label | call to getenv |
|
||||
| test.cpp:132:19:132:32 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.cpp:134:10:134:13 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:134:10:134:13 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:134:10:134:13 | size | semmle.label | size |
|
||||
| test.cpp:134:10:134:13 | size | semmle.label | size |
|
||||
| test.cpp:134:10:134:13 | size | semmle.label | size |
|
||||
| test.cpp:134:10:134:27 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:134:10:134:27 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:134:10:134:27 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:138:19:138:24 | call to getenv | semmle.label | call to getenv |
|
||||
| test.cpp:138:19:138:32 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.cpp:142:11:142:14 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:142:11:142:14 | (unsigned long)... | semmle.label | (unsigned long)... |
|
||||
| test.cpp:142:11:142:14 | size | semmle.label | size |
|
||||
| test.cpp:142:11:142:14 | size | semmle.label | size |
|
||||
| test.cpp:142:11:142:14 | size | semmle.label | size |
|
||||
| test.cpp:142:11:142:28 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:142:11:142:28 | ... * ... | semmle.label | ... * ... |
|
||||
| test.cpp:142:11:142:28 | ... * ... | semmle.label | ... * ... |
|
||||
#select
|
||||
| test.cpp:42:31:42:36 | call to malloc | test.cpp:39:21:39:24 | argv | test.cpp:42:38:42:44 | tainted | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:43:31:43:36 | call to malloc | test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:63 | ... * ... | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:43:38:43:63 | ... * ... | test.cpp:39:21:39:24 | argv | test.cpp:43:38:43:44 | tainted | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:45:31:45:36 | call to malloc | test.cpp:39:21:39:24 | argv | test.cpp:45:38:45:63 | ... + ... | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:48:25:48:30 | call to malloc | test.cpp:39:21:39:24 | argv | test.cpp:48:32:48:35 | size | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:49:17:49:30 | new[] | test.cpp:39:21:39:24 | argv | test.cpp:49:26:49:29 | size | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:52:21:52:27 | call to realloc | test.cpp:39:21:39:24 | argv | test.cpp:52:35:52:60 | ... * ... | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:52:35:52:60 | ... * ... | test.cpp:39:21:39:24 | argv | test.cpp:52:54:52:60 | tainted | This allocation size is derived from $@ and might overflow | test.cpp:39:21:39:24 | argv | user input (argv) |
|
||||
| test.cpp:127:17:127:22 | call to malloc | test.cpp:123:18:123:23 | call to getenv | test.cpp:127:24:127:41 | ... * ... | This allocation size is derived from $@ and might overflow | test.cpp:123:18:123:23 | call to getenv | user input (getenv) |
|
||||
| test.cpp:127:24:127:41 | ... * ... | test.cpp:123:18:123:23 | call to getenv | test.cpp:127:24:127:27 | size | This allocation size is derived from $@ and might overflow | test.cpp:123:18:123:23 | call to getenv | user input (getenv) |
|
||||
| test.cpp:134:3:134:8 | call to malloc | test.cpp:132:19:132:24 | call to getenv | test.cpp:134:10:134:27 | ... * ... | This allocation size is derived from $@ and might overflow | test.cpp:132:19:132:24 | call to getenv | user input (getenv) |
|
||||
| test.cpp:134:10:134:27 | ... * ... | test.cpp:132:19:132:24 | call to getenv | test.cpp:134:10:134:13 | size | This allocation size is derived from $@ and might overflow | test.cpp:132:19:132:24 | call to getenv | user input (getenv) |
|
||||
| test.cpp:142:4:142:9 | call to malloc | test.cpp:138:19:138:24 | call to getenv | test.cpp:142:11:142:28 | ... * ... | This allocation size is derived from $@ and might overflow | test.cpp:138:19:138:24 | call to getenv | user input (getenv) |
|
||||
| test.cpp:142:11:142:28 | ... * ... | test.cpp:138:19:138:24 | call to getenv | test.cpp:142:11:142:14 | size | This allocation size is derived from $@ and might overflow | test.cpp:138:19:138:24 | call to getenv | user input (getenv) |
|
||||
|
||||
@@ -39,10 +39,10 @@ int main(int argc, char **argv) {
|
||||
int tainted = atoi(argv[1]);
|
||||
|
||||
MyStruct *arr1 = (MyStruct *)malloc(sizeof(MyStruct)); // GOOD
|
||||
MyStruct *arr2 = (MyStruct *)malloc(tainted); // BAD
|
||||
MyStruct *arr2 = (MyStruct *)malloc(tainted); // DUBIOUS (not multiplied by anything)
|
||||
MyStruct *arr3 = (MyStruct *)malloc(tainted * sizeof(MyStruct)); // BAD
|
||||
MyStruct *arr4 = (MyStruct *)malloc(getTainted() * sizeof(MyStruct)); // BAD [NOT DETECTED]
|
||||
MyStruct *arr5 = (MyStruct *)malloc(sizeof(MyStruct) + tainted); // BAD [NOT DETECTED]
|
||||
MyStruct *arr5 = (MyStruct *)malloc(sizeof(MyStruct) + tainted); // DUBIOUS (not multiplied by anything)
|
||||
|
||||
int size = tainted * 8;
|
||||
char *chars1 = (char *)malloc(size); // BAD
|
||||
@@ -52,7 +52,7 @@ int main(int argc, char **argv) {
|
||||
arr1 = (MyStruct *)realloc(arr1, sizeof(MyStruct) * tainted); // BAD
|
||||
|
||||
size = 8;
|
||||
chars3 = new char[size]; // GOOD [FALSE POSITIVE]
|
||||
chars3 = new char[size]; // GOOD
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -120,9 +120,73 @@ int bounded(int x, int limit) {
|
||||
}
|
||||
|
||||
void open_file_bounded () {
|
||||
int size = size = atoi(getenv("USER"));
|
||||
int size = atoi(getenv("USER"));
|
||||
int bounded_size = bounded(size, MAX_SIZE);
|
||||
|
||||
int* a = (int*)malloc(bounded_size); // GOOD
|
||||
int* b = (int*)malloc(size); // BAD
|
||||
}
|
||||
int* a = (int*)malloc(bounded_size * sizeof(int)); // GOOD
|
||||
int* b = (int*)malloc(size * sizeof(int)); // BAD
|
||||
}
|
||||
|
||||
void more_bounded_tests() {
|
||||
{
|
||||
int size = atoi(getenv("USER"));
|
||||
|
||||
malloc(size * sizeof(int)); // BAD
|
||||
}
|
||||
|
||||
{
|
||||
int size = atoi(getenv("USER"));
|
||||
|
||||
if (size > 0)
|
||||
{
|
||||
malloc(size * sizeof(int)); // BAD
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
int size = atoi(getenv("USER"));
|
||||
|
||||
if (size < 100)
|
||||
{
|
||||
malloc(size * sizeof(int)); // BAD [NOT DETECTED]
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
int size = atoi(getenv("USER"));
|
||||
|
||||
if ((size > 0) && (size < 100))
|
||||
{
|
||||
malloc(size * sizeof(int)); // GOOD
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
int size = atoi(getenv("USER"));
|
||||
|
||||
if ((100 > size) && (0 < size))
|
||||
{
|
||||
malloc(size * sizeof(int)); // GOOD
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
int size = atoi(getenv("USER"));
|
||||
|
||||
malloc(size * sizeof(int)); // BAD [NOT DETECTED]
|
||||
|
||||
if ((size > 0) && (size < 100))
|
||||
{
|
||||
// ...
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
int size = atoi(getenv("USER"));
|
||||
|
||||
if (size > 100)
|
||||
{
|
||||
malloc(size * sizeof(int)); // BAD [NOT DETECTED]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,138 @@
|
||||
| test.c:21:17:21:17 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:18:13:18:16 | call to rand | Uncontrolled value |
|
||||
| test.c:35:5:35:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:34:13:34:18 | call to rand | Uncontrolled value |
|
||||
| test.c:40:5:40:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:39:13:39:21 | ... % ... | Uncontrolled value |
|
||||
| test.c:45:5:45:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:44:13:44:16 | call to rand | Uncontrolled value |
|
||||
| test.c:56:5:56:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:54:13:54:16 | call to rand | Uncontrolled value |
|
||||
| test.c:67:5:67:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:66:13:66:16 | call to rand | Uncontrolled value |
|
||||
| test.c:77:9:77:9 | r | $@ flows to here and is used in arithmetic, potentially causing an underflow. | test.c:75:13:75:19 | ... ^ ... | Uncontrolled value |
|
||||
| test.c:100:5:100:5 | r | $@ flows to here and is used in arithmetic, potentially causing an underflow. | test.c:99:14:99:19 | call to rand | Uncontrolled value |
|
||||
| test.cpp:25:7:25:7 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.cpp:8:9:8:12 | call to rand | Uncontrolled value |
|
||||
edges
|
||||
| test.c:18:13:18:16 | call to rand | test.c:21:17:21:17 | r |
|
||||
| test.c:18:13:18:16 | call to rand | test.c:21:17:21:17 | r |
|
||||
| test.c:18:13:18:16 | call to rand | test.c:21:17:21:17 | r |
|
||||
| test.c:18:13:18:16 | call to rand | test.c:21:17:21:17 | r |
|
||||
| test.c:34:13:34:18 | call to rand | test.c:35:5:35:5 | r |
|
||||
| test.c:34:13:34:18 | call to rand | test.c:35:5:35:5 | r |
|
||||
| test.c:34:13:34:18 | call to rand | test.c:35:5:35:5 | r |
|
||||
| test.c:34:13:34:18 | call to rand | test.c:35:5:35:5 | r |
|
||||
| test.c:39:13:39:21 | ... % ... | test.c:40:5:40:5 | r |
|
||||
| test.c:39:13:39:21 | ... % ... | test.c:40:5:40:5 | r |
|
||||
| test.c:39:13:39:21 | ... % ... | test.c:40:5:40:5 | r |
|
||||
| test.c:39:13:39:21 | ... % ... | test.c:40:5:40:5 | r |
|
||||
| test.c:44:13:44:16 | call to rand | test.c:45:5:45:5 | r |
|
||||
| test.c:44:13:44:16 | call to rand | test.c:45:5:45:5 | r |
|
||||
| test.c:44:13:44:16 | call to rand | test.c:45:5:45:5 | r |
|
||||
| test.c:44:13:44:16 | call to rand | test.c:45:5:45:5 | r |
|
||||
| test.c:54:13:54:16 | call to rand | test.c:56:5:56:5 | r |
|
||||
| test.c:54:13:54:16 | call to rand | test.c:56:5:56:5 | r |
|
||||
| test.c:54:13:54:16 | call to rand | test.c:56:5:56:5 | r |
|
||||
| test.c:54:13:54:16 | call to rand | test.c:56:5:56:5 | r |
|
||||
| test.c:60:13:60:16 | call to rand | test.c:61:5:61:5 | r |
|
||||
| test.c:60:13:60:16 | call to rand | test.c:61:5:61:5 | r |
|
||||
| test.c:60:13:60:16 | call to rand | test.c:61:5:61:5 | r |
|
||||
| test.c:60:13:60:16 | call to rand | test.c:61:5:61:5 | r |
|
||||
| test.c:60:13:60:16 | call to rand | test.c:62:5:62:5 | r |
|
||||
| test.c:60:13:60:16 | call to rand | test.c:62:5:62:5 | r |
|
||||
| test.c:60:13:60:16 | call to rand | test.c:62:5:62:5 | r |
|
||||
| test.c:60:13:60:16 | call to rand | test.c:62:5:62:5 | r |
|
||||
| test.c:66:13:66:16 | call to rand | test.c:67:5:67:5 | r |
|
||||
| test.c:66:13:66:16 | call to rand | test.c:67:5:67:5 | r |
|
||||
| test.c:66:13:66:16 | call to rand | test.c:67:5:67:5 | r |
|
||||
| test.c:66:13:66:16 | call to rand | test.c:67:5:67:5 | r |
|
||||
| test.c:75:13:75:19 | ... ^ ... | test.c:77:9:77:9 | r |
|
||||
| test.c:75:13:75:19 | ... ^ ... | test.c:77:9:77:9 | r |
|
||||
| test.c:75:13:75:19 | ... ^ ... | test.c:77:9:77:9 | r |
|
||||
| test.c:75:13:75:19 | ... ^ ... | test.c:77:9:77:9 | r |
|
||||
| test.c:99:14:99:19 | call to rand | test.c:100:5:100:5 | r |
|
||||
| test.c:99:14:99:19 | call to rand | test.c:100:5:100:5 | r |
|
||||
| test.c:99:14:99:19 | call to rand | test.c:100:5:100:5 | r |
|
||||
| test.c:99:14:99:19 | call to rand | test.c:100:5:100:5 | r |
|
||||
| test.cpp:8:9:8:12 | Store | test.cpp:24:11:24:18 | call to get_rand |
|
||||
| test.cpp:8:9:8:12 | call to rand | test.cpp:8:9:8:12 | Store |
|
||||
| test.cpp:8:9:8:12 | call to rand | test.cpp:8:9:8:12 | Store |
|
||||
| test.cpp:13:2:13:15 | Chi | test.cpp:30:13:30:14 | get_rand2 output argument |
|
||||
| test.cpp:13:10:13:13 | call to rand | test.cpp:13:2:13:15 | Chi |
|
||||
| test.cpp:13:10:13:13 | call to rand | test.cpp:13:2:13:15 | Chi |
|
||||
| test.cpp:18:2:18:14 | Chi | test.cpp:36:13:36:13 | get_rand3 output argument |
|
||||
| test.cpp:18:9:18:12 | call to rand | test.cpp:18:2:18:14 | Chi |
|
||||
| test.cpp:18:9:18:12 | call to rand | test.cpp:18:2:18:14 | Chi |
|
||||
| test.cpp:24:11:24:18 | call to get_rand | test.cpp:25:7:25:7 | r |
|
||||
| test.cpp:24:11:24:18 | call to get_rand | test.cpp:25:7:25:7 | r |
|
||||
| test.cpp:30:13:30:14 | get_rand2 output argument | test.cpp:31:7:31:7 | r |
|
||||
| test.cpp:30:13:30:14 | get_rand2 output argument | test.cpp:31:7:31:7 | r |
|
||||
| test.cpp:36:13:36:13 | get_rand3 output argument | test.cpp:37:7:37:7 | r |
|
||||
| test.cpp:36:13:36:13 | get_rand3 output argument | test.cpp:37:7:37:7 | r |
|
||||
nodes
|
||||
| test.c:18:13:18:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:18:13:18:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:21:17:21:17 | r | semmle.label | r |
|
||||
| test.c:21:17:21:17 | r | semmle.label | r |
|
||||
| test.c:21:17:21:17 | r | semmle.label | r |
|
||||
| test.c:34:13:34:18 | call to rand | semmle.label | call to rand |
|
||||
| test.c:34:13:34:18 | call to rand | semmle.label | call to rand |
|
||||
| test.c:35:5:35:5 | r | semmle.label | r |
|
||||
| test.c:35:5:35:5 | r | semmle.label | r |
|
||||
| test.c:35:5:35:5 | r | semmle.label | r |
|
||||
| test.c:39:13:39:21 | ... % ... | semmle.label | ... % ... |
|
||||
| test.c:39:13:39:21 | ... % ... | semmle.label | ... % ... |
|
||||
| test.c:40:5:40:5 | r | semmle.label | r |
|
||||
| test.c:40:5:40:5 | r | semmle.label | r |
|
||||
| test.c:40:5:40:5 | r | semmle.label | r |
|
||||
| test.c:44:13:44:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:44:13:44:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:45:5:45:5 | r | semmle.label | r |
|
||||
| test.c:45:5:45:5 | r | semmle.label | r |
|
||||
| test.c:45:5:45:5 | r | semmle.label | r |
|
||||
| test.c:54:13:54:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:54:13:54:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:56:5:56:5 | r | semmle.label | r |
|
||||
| test.c:56:5:56:5 | r | semmle.label | r |
|
||||
| test.c:56:5:56:5 | r | semmle.label | r |
|
||||
| test.c:60:13:60:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:60:13:60:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:61:5:61:5 | r | semmle.label | r |
|
||||
| test.c:61:5:61:5 | r | semmle.label | r |
|
||||
| test.c:61:5:61:5 | r | semmle.label | r |
|
||||
| test.c:62:5:62:5 | r | semmle.label | r |
|
||||
| test.c:62:5:62:5 | r | semmle.label | r |
|
||||
| test.c:62:5:62:5 | r | semmle.label | r |
|
||||
| test.c:66:13:66:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:66:13:66:16 | call to rand | semmle.label | call to rand |
|
||||
| test.c:67:5:67:5 | r | semmle.label | r |
|
||||
| test.c:67:5:67:5 | r | semmle.label | r |
|
||||
| test.c:67:5:67:5 | r | semmle.label | r |
|
||||
| test.c:75:13:75:19 | ... ^ ... | semmle.label | ... ^ ... |
|
||||
| test.c:75:13:75:19 | ... ^ ... | semmle.label | ... ^ ... |
|
||||
| test.c:77:9:77:9 | r | semmle.label | r |
|
||||
| test.c:77:9:77:9 | r | semmle.label | r |
|
||||
| test.c:77:9:77:9 | r | semmle.label | r |
|
||||
| test.c:99:14:99:19 | call to rand | semmle.label | call to rand |
|
||||
| test.c:99:14:99:19 | call to rand | semmle.label | call to rand |
|
||||
| test.c:100:5:100:5 | r | semmle.label | r |
|
||||
| test.c:100:5:100:5 | r | semmle.label | r |
|
||||
| test.c:100:5:100:5 | r | semmle.label | r |
|
||||
| test.cpp:8:9:8:12 | Store | semmle.label | Store |
|
||||
| test.cpp:8:9:8:12 | call to rand | semmle.label | call to rand |
|
||||
| test.cpp:8:9:8:12 | call to rand | semmle.label | call to rand |
|
||||
| test.cpp:13:2:13:15 | Chi | semmle.label | Chi |
|
||||
| test.cpp:13:10:13:13 | call to rand | semmle.label | call to rand |
|
||||
| test.cpp:13:10:13:13 | call to rand | semmle.label | call to rand |
|
||||
| test.cpp:18:2:18:14 | Chi | semmle.label | Chi |
|
||||
| test.cpp:18:9:18:12 | call to rand | semmle.label | call to rand |
|
||||
| test.cpp:18:9:18:12 | call to rand | semmle.label | call to rand |
|
||||
| test.cpp:24:11:24:18 | call to get_rand | semmle.label | call to get_rand |
|
||||
| test.cpp:25:7:25:7 | r | semmle.label | r |
|
||||
| test.cpp:25:7:25:7 | r | semmle.label | r |
|
||||
| test.cpp:25:7:25:7 | r | semmle.label | r |
|
||||
| test.cpp:30:13:30:14 | get_rand2 output argument | semmle.label | get_rand2 output argument |
|
||||
| test.cpp:31:7:31:7 | r | semmle.label | r |
|
||||
| test.cpp:31:7:31:7 | r | semmle.label | r |
|
||||
| test.cpp:31:7:31:7 | r | semmle.label | r |
|
||||
| test.cpp:36:13:36:13 | get_rand3 output argument | semmle.label | get_rand3 output argument |
|
||||
| test.cpp:37:7:37:7 | r | semmle.label | r |
|
||||
| test.cpp:37:7:37:7 | r | semmle.label | r |
|
||||
| test.cpp:37:7:37:7 | r | semmle.label | r |
|
||||
#select
|
||||
| test.c:21:17:21:17 | r | test.c:18:13:18:16 | call to rand | test.c:21:17:21:17 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:18:13:18:16 | call to rand | Uncontrolled value |
|
||||
| test.c:35:5:35:5 | r | test.c:34:13:34:18 | call to rand | test.c:35:5:35:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:34:13:34:18 | call to rand | Uncontrolled value |
|
||||
| test.c:40:5:40:5 | r | test.c:39:13:39:21 | ... % ... | test.c:40:5:40:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:39:13:39:21 | ... % ... | Uncontrolled value |
|
||||
| test.c:45:5:45:5 | r | test.c:44:13:44:16 | call to rand | test.c:45:5:45:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:44:13:44:16 | call to rand | Uncontrolled value |
|
||||
| test.c:56:5:56:5 | r | test.c:54:13:54:16 | call to rand | test.c:56:5:56:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:54:13:54:16 | call to rand | Uncontrolled value |
|
||||
| test.c:67:5:67:5 | r | test.c:66:13:66:16 | call to rand | test.c:67:5:67:5 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.c:66:13:66:16 | call to rand | Uncontrolled value |
|
||||
| test.c:77:9:77:9 | r | test.c:75:13:75:19 | ... ^ ... | test.c:77:9:77:9 | r | $@ flows to here and is used in arithmetic, potentially causing an underflow. | test.c:75:13:75:19 | ... ^ ... | Uncontrolled value |
|
||||
| test.c:100:5:100:5 | r | test.c:99:14:99:19 | call to rand | test.c:100:5:100:5 | r | $@ flows to here and is used in arithmetic, potentially causing an underflow. | test.c:99:14:99:19 | call to rand | Uncontrolled value |
|
||||
| test.cpp:25:7:25:7 | r | test.cpp:8:9:8:12 | call to rand | test.cpp:25:7:25:7 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.cpp:8:9:8:12 | call to rand | Uncontrolled value |
|
||||
| test.cpp:31:7:31:7 | r | test.cpp:13:10:13:13 | call to rand | test.cpp:31:7:31:7 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.cpp:13:10:13:13 | call to rand | Uncontrolled value |
|
||||
| test.cpp:37:7:37:7 | r | test.cpp:18:9:18:12 | call to rand | test.cpp:37:7:37:7 | r | $@ flows to here and is used in arithmetic, potentially causing an overflow. | test.cpp:18:9:18:12 | call to rand | Uncontrolled value |
|
||||
|
||||
@@ -1,3 +1,33 @@
|
||||
| test.cpp:20:7:20:12 | call to strcmp | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:16:25:16:30 | call to getenv | call to getenv |
|
||||
| test.cpp:31:7:31:12 | call to strcmp | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:27:25:27:30 | call to getenv | call to getenv |
|
||||
| test.cpp:42:7:42:12 | call to strcmp | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:38:25:38:30 | call to getenv | call to getenv |
|
||||
edges
|
||||
| test.cpp:16:25:16:30 | call to getenv | test.cpp:20:14:20:20 | address |
|
||||
| test.cpp:16:25:16:30 | call to getenv | test.cpp:20:14:20:20 | address |
|
||||
| test.cpp:16:25:16:42 | (const char *)... | test.cpp:20:14:20:20 | address |
|
||||
| test.cpp:16:25:16:42 | (const char *)... | test.cpp:20:14:20:20 | address |
|
||||
| test.cpp:27:25:27:30 | call to getenv | test.cpp:31:14:31:20 | address |
|
||||
| test.cpp:27:25:27:30 | call to getenv | test.cpp:31:14:31:20 | address |
|
||||
| test.cpp:27:25:27:42 | (const char *)... | test.cpp:31:14:31:20 | address |
|
||||
| test.cpp:27:25:27:42 | (const char *)... | test.cpp:31:14:31:20 | address |
|
||||
| test.cpp:38:25:38:30 | call to getenv | test.cpp:42:14:42:20 | address |
|
||||
| test.cpp:38:25:38:30 | call to getenv | test.cpp:42:14:42:20 | address |
|
||||
| test.cpp:38:25:38:42 | (const char *)... | test.cpp:42:14:42:20 | address |
|
||||
| test.cpp:38:25:38:42 | (const char *)... | test.cpp:42:14:42:20 | address |
|
||||
nodes
|
||||
| test.cpp:16:25:16:30 | call to getenv | semmle.label | call to getenv |
|
||||
| test.cpp:16:25:16:42 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.cpp:20:14:20:20 | address | semmle.label | address |
|
||||
| test.cpp:20:14:20:20 | address | semmle.label | address |
|
||||
| test.cpp:20:14:20:20 | address | semmle.label | address |
|
||||
| test.cpp:27:25:27:30 | call to getenv | semmle.label | call to getenv |
|
||||
| test.cpp:27:25:27:42 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.cpp:31:14:31:20 | address | semmle.label | address |
|
||||
| test.cpp:31:14:31:20 | address | semmle.label | address |
|
||||
| test.cpp:31:14:31:20 | address | semmle.label | address |
|
||||
| test.cpp:38:25:38:30 | call to getenv | semmle.label | call to getenv |
|
||||
| test.cpp:38:25:38:42 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.cpp:42:14:42:20 | address | semmle.label | address |
|
||||
| test.cpp:42:14:42:20 | address | semmle.label | address |
|
||||
| test.cpp:42:14:42:20 | address | semmle.label | address |
|
||||
#select
|
||||
| test.cpp:20:7:20:12 | call to strcmp | test.cpp:16:25:16:30 | call to getenv | test.cpp:20:14:20:20 | address | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:16:25:16:30 | call to getenv | call to getenv |
|
||||
| test.cpp:31:7:31:12 | call to strcmp | test.cpp:27:25:27:30 | call to getenv | test.cpp:31:14:31:20 | address | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:27:25:27:30 | call to getenv | call to getenv |
|
||||
| test.cpp:42:7:42:12 | call to strcmp | test.cpp:38:25:38:30 | call to getenv | test.cpp:42:14:42:20 | address | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:38:25:38:30 | call to getenv | call to getenv |
|
||||
|
||||
@@ -1 +1,13 @@
|
||||
| test.cpp:58:3:58:9 | call to sprintf | This write into buffer 'passwd' may contain unencrypted data from $@ | test.cpp:54:17:54:20 | argv | user input (argv) |
|
||||
edges
|
||||
| test.cpp:54:17:54:20 | argv | test.cpp:58:25:58:29 | input |
|
||||
| test.cpp:54:17:54:20 | argv | test.cpp:58:25:58:29 | input |
|
||||
| test.cpp:54:17:54:20 | argv | test.cpp:58:25:58:29 | input |
|
||||
| test.cpp:54:17:54:20 | argv | test.cpp:58:25:58:29 | input |
|
||||
nodes
|
||||
| test.cpp:54:17:54:20 | argv | semmle.label | argv |
|
||||
| test.cpp:54:17:54:20 | argv | semmle.label | argv |
|
||||
| test.cpp:58:25:58:29 | input | semmle.label | input |
|
||||
| test.cpp:58:25:58:29 | input | semmle.label | input |
|
||||
| test.cpp:58:25:58:29 | input | semmle.label | input |
|
||||
#select
|
||||
| test.cpp:58:3:58:9 | call to sprintf | test.cpp:54:17:54:20 | argv | test.cpp:58:25:58:29 | input | This write into buffer 'passwd' may contain unencrypted data from $@ | test.cpp:54:17:54:20 | argv | user input (argv) |
|
||||
|
||||
@@ -1,2 +1,37 @@
|
||||
| test.cpp:24:10:24:35 | ! ... | Reliance on untrusted input $@ to raise privilege at $@ | test.cpp:20:29:20:34 | call to getenv | call to getenv | test.cpp:25:9:25:27 | ... = ... | ... = ... |
|
||||
| test.cpp:41:10:41:38 | ! ... | Reliance on untrusted input $@ to raise privilege at $@ | test.cpp:20:29:20:34 | call to getenv | call to getenv | test.cpp:42:8:42:26 | ... = ... | ... = ... |
|
||||
edges
|
||||
| test.cpp:20:29:20:34 | call to getenv | test.cpp:24:10:24:35 | ! ... |
|
||||
| test.cpp:20:29:20:34 | call to getenv | test.cpp:24:11:24:16 | call to strcmp |
|
||||
| test.cpp:20:29:20:34 | call to getenv | test.cpp:24:11:24:16 | call to strcmp |
|
||||
| test.cpp:20:29:20:34 | call to getenv | test.cpp:24:11:24:35 | (bool)... |
|
||||
| test.cpp:20:29:20:34 | call to getenv | test.cpp:41:10:41:38 | ! ... |
|
||||
| test.cpp:20:29:20:34 | call to getenv | test.cpp:41:11:41:16 | call to strcmp |
|
||||
| test.cpp:20:29:20:34 | call to getenv | test.cpp:41:11:41:16 | call to strcmp |
|
||||
| test.cpp:20:29:20:34 | call to getenv | test.cpp:41:11:41:38 | (bool)... |
|
||||
| test.cpp:20:29:20:47 | (const char *)... | test.cpp:24:10:24:35 | ! ... |
|
||||
| test.cpp:20:29:20:47 | (const char *)... | test.cpp:24:11:24:16 | call to strcmp |
|
||||
| test.cpp:20:29:20:47 | (const char *)... | test.cpp:24:11:24:16 | call to strcmp |
|
||||
| test.cpp:20:29:20:47 | (const char *)... | test.cpp:24:11:24:35 | (bool)... |
|
||||
| test.cpp:20:29:20:47 | (const char *)... | test.cpp:41:10:41:38 | ! ... |
|
||||
| test.cpp:20:29:20:47 | (const char *)... | test.cpp:41:11:41:16 | call to strcmp |
|
||||
| test.cpp:20:29:20:47 | (const char *)... | test.cpp:41:11:41:16 | call to strcmp |
|
||||
| test.cpp:20:29:20:47 | (const char *)... | test.cpp:41:11:41:38 | (bool)... |
|
||||
| test.cpp:24:11:24:16 | call to strcmp | test.cpp:24:10:24:35 | ! ... |
|
||||
| test.cpp:24:11:24:16 | call to strcmp | test.cpp:24:11:24:35 | (bool)... |
|
||||
| test.cpp:41:11:41:16 | call to strcmp | test.cpp:41:10:41:38 | ! ... |
|
||||
| test.cpp:41:11:41:16 | call to strcmp | test.cpp:41:11:41:38 | (bool)... |
|
||||
nodes
|
||||
| test.cpp:20:29:20:34 | call to getenv | semmle.label | call to getenv |
|
||||
| test.cpp:20:29:20:47 | (const char *)... | semmle.label | (const char *)... |
|
||||
| test.cpp:24:10:24:35 | ! ... | semmle.label | ! ... |
|
||||
| test.cpp:24:11:24:16 | call to strcmp | semmle.label | call to strcmp |
|
||||
| test.cpp:24:11:24:16 | call to strcmp | semmle.label | call to strcmp |
|
||||
| test.cpp:24:11:24:35 | (bool)... | semmle.label | (bool)... |
|
||||
| test.cpp:24:11:24:35 | (bool)... | semmle.label | (bool)... |
|
||||
| test.cpp:41:10:41:38 | ! ... | semmle.label | ! ... |
|
||||
| test.cpp:41:11:41:16 | call to strcmp | semmle.label | call to strcmp |
|
||||
| test.cpp:41:11:41:16 | call to strcmp | semmle.label | call to strcmp |
|
||||
| test.cpp:41:11:41:38 | (bool)... | semmle.label | (bool)... |
|
||||
| test.cpp:41:11:41:38 | (bool)... | semmle.label | (bool)... |
|
||||
#select
|
||||
| test.cpp:24:10:24:35 | ! ... | test.cpp:20:29:20:34 | call to getenv | test.cpp:24:10:24:35 | ! ... | Reliance on untrusted input $@ to raise privilege at $@ | test.cpp:20:29:20:34 | call to getenv | call to getenv | test.cpp:25:9:25:27 | ... = ... | ... = ... |
|
||||
| test.cpp:41:10:41:38 | ! ... | test.cpp:20:29:20:34 | call to getenv | test.cpp:41:10:41:38 | ! ... | Reliance on untrusted input $@ to raise privilege at $@ | test.cpp:20:29:20:34 | call to getenv | call to getenv | test.cpp:42:8:42:26 | ... = ... | ... = ... |
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
| test.c:25:9:25:14 | ExprStmt | Function f4 should return a value of type int but does not return a value here |
|
||||
| test.c:39:9:39:14 | ExprStmt | Function f6 should return a value of type int but does not return a value here |
|
||||
| test.cpp:16:1:18:1 | { ... } | Function g2 should return a value of type MyValue but does not return a value here |
|
||||
| test.cpp:48:2:48:26 | if (...) ... | Function g7 should return a value of type MyValue but does not return a value here |
|
||||
| test.cpp:52:1:52:1 | return ... | Function g7 should return a value of type MyValue but does not return a value here |
|
||||
| test.cpp:74:1:76:1 | { ... } | Function g10 should return a value of type second but does not return a value here |
|
||||
| test.cpp:86:1:88:1 | { ... } | Function g12 should return a value of type second but does not return a value here |
|
||||
| test.cpp:108:2:111:2 | if (...) ... | Function g14 should return a value of type int but does not return a value here |
|
||||
| test.cpp:112:1:112:1 | return ... | Function g14 should return a value of type int but does not return a value here |
|
||||
| test.cpp:134:2:134:36 | ExprStmt | Function g16 should return a value of type int but does not return a value here |
|
||||
| test.cpp:141:3:141:37 | ExprStmt | Function g17 should return a value of type int but does not return a value here |
|
||||
|
||||
@@ -48,7 +48,7 @@ MyValue g7(bool c)
|
||||
if (c) return MyValue(7);
|
||||
DONOTHING
|
||||
DONOTHING
|
||||
// BAD [the alert here is unfortunately placed]
|
||||
// BAD
|
||||
}
|
||||
|
||||
typedef void MYVOID;
|
||||
|
||||
Reference in New Issue
Block a user