https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95789
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |10.2 CC| |jakub at gcc dot gnu.org Summary|Const method is allowed to |[10/11 Regression] Const |return non-const reference |method is allowed to return |on template class |non-const reference on | |template class Keywords| |accepts-invalid Last reconfirmed| |2020-06-21 Status|UNCONFIRMED |NEW Known to fail| |10.1.0, 11.0 Ever confirmed|0 |1 Known to work| |9.3.0 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- struct B { int n; }; template <typename T> struct A { B& get() const { return f; } B f; }; int main() { A<int> a; a.f = {}; a.get().n = 10; if (a.f.n != 0) __builtin_abort(); } Started with r10-7094 c++: Readd [LR]ROTATE_EXPR support to constexpr.c [PR94067] Since r10-6527-gaaa26bf496a646778ac861aed124d960b5bf549f fold_for_warn will perform maybe_constant_value even on some cp_fold produced trees and so can include rotate exprs which were removed last fall from constexpr.c 2020-03-09 Jakub Jelinek <ja...@redhat.com> PR c++/94067 Revert 2019-10-11 Paolo Carlini <paolo.carl...@oracle.com> * constexpr.c (cxx_eval_constant_expression): Do not handle RROTATE_EXPR and LROTATE_EXPR. * g++.dg/warn/Wconversion-pr94067.C: New test.