[PATCH] [analyzer] Do not reinitialize static globals when the function is called more than once along a path
Ted Kremenek
kremenek at apple.com
Wed Feb 6 15:27:49 PST 2013
On Feb 6, 2013, at 3:24 PM, Ted Kremenek <kremenek at apple.com> wrote:
> Put another way, this patch seems to rely on the value of a variable being "uninitialized" to indicate whether or not the initializer has been executed. That's not a valid assumption. For example:
>
> static id x = foo(x);
>
> is "okay" in Objective-C.
… or rather Objective-C++.
$ cat t.mm
#include <stdio.h>
id foo(id x) {
printf("%p\n", x);
return x;
}
int main() {
static id x = foo(x);
}
$ clang++ t.mm
$ ./a.out
0x0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130206/2510cdcc/attachment.html>
More information about the cfe-commits
mailing list