[PATCH] D111400: [Clang] Implement P2242R3
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 14 08:10:00 PST 2022
aaron.ballman added a comment.
In D111400#3172097 <https://reviews.llvm.org/D111400#3172097>, @cor3ntin wrote:
> Regression compared to the status quo:
> This code no longer warns (as noted by Hubert above)
>
> auto f = [](bool b) {
> if (b) return 42;
> static int x = 0;
> return x;
> };
> constexpr int x = f(true);
> const int *p = &x;
>
> GCC doesn't warn and... if we wanted to produce a warning there, I have no idea how to go about it.
I think I found the issue in the code, but one thing that's strange is that we don't seem to treat it as an extension but instead issue an error, but the behavior is consistent with other things we handle as an extension there (e.g., a local variable in C++14 mode).
================
Comment at: clang/lib/Sema/SemaDeclCXX.cpp:1900
+ << (VD->getTLSKind() == VarDecl::TLS_Dynamic);
}
}
----------------
I think this is missing an `else` case to return `false` when checking for validity, similar to what's done on line 1916 and 1928.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D111400/new/
https://reviews.llvm.org/D111400
More information about the cfe-commits
mailing list