<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/141906>141906</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
-Wreturn-stack-address false negative
</td>
</tr>
<tr>
<th>Labels</th>
<td>
false-negative
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
JVApen
</td>
</tr>
</table>
<pre>
````
#include <tuple>
#include <iostream>
struct A {
int i;
};
auto getA(int i) -> const A& {
std::tuple<A> tuple = std::make_tuple<A>(A{i});
return std::get<A>(tuple);
}
int main() {
std::cout << getA(9).i;
}
````
[Code on compiler-explorer](https://godbolt.org/z/1G11j9z3d)
MSVC does report a warning here: `warning C4172: returning address of local variable or temporary : tuple`
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxsUstu2zAQ_JrVZSGDIvU86CDbcYECPRVIjwUlrmUmlCiQlNvk6wv6AadpAQMWd2dmZ4eU3utxJmqh2EKxT-QaTta1X5-7heakt-qthZI9fqwDLvQ8mFURgtiFdTEE4umfhrY-OJLTrcc6H9w6BOwQqi2wDhFRzwE1iHiEan_7YJ1cg8WRQge8vkJ4gymIJxzs7AN2wMsPKj4oEB2I7uZl10Xo5YAg9o_-JF_p50cQ8LqDaqvjcN5c56OjsLr5wRopPOBX9h0beRfH0eUk9Qy8jl7_422wa4ixgNjdV2uANxv9l9KnpIvtzipCO-Ngp0Ubcin9Xox15KDYA69PISw-DuAH4IfRqt6asLFuBH54B37IvmTZS_MuVLR8cfrt-_MOlSWPjhbrAkr8Jd2s5xFP5AhEh1Cye2mXZxWPtWsosSSVcuQ92iMaO0iDZ-m07A2hdRhoWqyT7g0j6RpWyRLVCtWIRibUZlVeF0zkdZacWtErlfckRdlLVtcly7NjkzVKFaouOTsmuuWMF6zgDat4nmcbWTWKs0opUTR1n5eQM5qkNhtjzlNcPNHer9RmedawMjGyJ-Mvb5vzozSe0plGGfSZgPP43l0bmWm_jh5yZrQP_qEVdDDUpj-u26c-yOE1vQdwkcO7XLI60366Dh1Oa78Z7AT8EDVvf-ni7AsNAfjhYtbHi7r6Pbf8TwAAAP__-A8PnQ">