expand note.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90429 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-12-03 07:43:46 +00:00
parent 053321731c
commit 89742c2c3f

View File

@ -1734,5 +1734,20 @@ if.end:
And functionattrs doesn't realize that the p.0 load points to function local
memory.
Also, functionattrs doesn't know about memcpy/memset. This function should be
marked readnone, since it only twiddles local memory, but functionattrs doesn't
handle memset/memcpy/memmove aggressively:
struct X { int *p; int *q; };
int foo() {
int i = 0, j = 1;
struct X x, y;
int **p;
y.p = &i;
x.q = &j;
p = __builtin_memcpy (&x, &y, sizeof (int *));
return **p;
}
//===---------------------------------------------------------------------===//