Closed
Description
Function arguments are cast to int**
when the corresponding parameter is _Ptr<int*>
. In the following example, the cast can be removed, and it will still compile.
Original | Converted |
---|---|
void buz(int **a) {
*a = (int*)1;
}
void test() {
int *y;
buz(&y);
} |
void buz(_Ptr<int*> a) {
*a = (int*)1;
}
void test() {
int *y;
buz(((int **)&y));
} |
I don't think this has the same underlying issue as #134. The place to start looking is probably this line in GatherTool.cpp
.
It considers a parameter WILD
if any of its atoms are wild, so a checked pointer to an unchecked pointer is WILD
even though the outermost pointer is checked.
Metadata
Metadata
Assignees
Labels
No labels