Quuxplusone added a comment.
> I think that, ultimately, this warning isn't worth the code complexity in
> clang to support it.
The code complexity is //at most// 11 lines (the 11 lines removed by this
patch), which really isn't much. But there's an interface-complexity argument
to be made, for sure. If you added a new option `-Wret-addr-label` as
suggested above (for a total patch of +2 lines), then is it accurate to say:
- if `-Wret-addr-label` was enabled by default, we know of at least one
codebase that would pass `-Wno-ret-addr-label` to their build
- if `-Wret-addr-label` was disabled by default, we don't know of any codebases
that would voluntarily enable it
And if nobody would enable it voluntarily... might as well eliminate it, right?
================
Comment at: clang/test/Analysis/stack-addr-ps.cpp:81
label:
- void *const &x = &&label; // expected-note {{binding reference variable
'x' here}}
- return x; // expected-warning {{returning address of label, which is
local}}
+ void *const &x = &&label;
+ return x;
----------------
Is it just me, or is this test case relying on lifetime extension for no good
reason? Why is this not `void *const x = &&label;`?
https://reviews.llvm.org/D50805
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits