[PATCH] D103938: Diagnose -Wunused-value in constant evaluation context
Yuanfang Chen via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 10 23:07:45 PDT 2021
ychen added a comment.
In D103938#2806885 <https://reviews.llvm.org/D103938#2806885>, @rsmith wrote:
> This will diagnose unused values in unreachable code in constant-evaluated contexts; that doesn't seem quite right. For example, in:
>
> void f() {
> new double[false ? (1, 2) : 3][false ? (1, 2) : 3];
> }
>
> ... we'll diagnose that the `1` is unused in only one of the two array bounds, because one of them is a constant-evaluated context and the other is not.
>
> I'd suggest we start by adding a separate `DiagIfReachable` function that does the same thing as `DiagRuntimeBehavior` except without the context check, with the intent to eventually refine it to check for reachability even in expressions for which we don't build a CFG (eg, in the initializer of a global or in a constant expression).
@rsmith Thanks for the pointer! Comments addressed. For the reachability check in contexts without CFG, it seems that some delayed processing is needed since constant evaluation happens later, however, I'm not sure about that.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D103938/new/
https://reviews.llvm.org/D103938
More information about the cfe-commits
mailing list