[PATCH] D48322: [Sema] Discarded statment should be an evaluatable context
Erik Pilkington via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 2 16:40:39 PDT 2018
erik.pilkington added a comment.
In https://reviews.llvm.org/D48322#1148424, @rsmith wrote:
> Hmm, so this will mean that we can have internal linkage declarations marked `Used` for which there is no definition, and we need to not warn on that.
>
> I think it might be better to avoid marking things used in this case (even though they're still technically odr-used).
We already return `false` for discarded statements in `isOdrUseContext`, so neither `MarkVarDeclReferenced` nor `MarkFunctionReferenced` will set `Used`. With or without this patch, clang doesn't emit -Wundefined-internal for the following code:
static int p();
int main() {
if constexpr (false) p();
}
Is this what you were concerned about?
Repository:
rC Clang
https://reviews.llvm.org/D48322
More information about the cfe-commits
mailing list