]> granicus.if.org Git - clang/commit
When going through references to check if the function returns the address
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 30 Apr 2012 23:23:55 +0000 (23:23 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 30 Apr 2012 23:23:55 +0000 (23:23 +0000)
commite720ce7a3b1c1bfa5f7482183caa6e31fca9a3fb
treeba99317c718cc14ca0e53b0071474498d53f75af
parent8fba894335b979e6d213c685bca959168c1f2182
When going through references to check if the function returns the address
of a local variable, make sure we don't infinitely recurse when the
reference binds to itself.

e.g:

int* func() {
    int& i = i;    // assign non-exist variable to a reference which has same name.
    return &i;    // return pointer
}

rdar://11345441

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155856 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaChecking.cpp
test/Analysis/stack-addr-ps.cpp