https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91264

            Bug ID: 91264
           Summary: modifying const-qual object in constexpr context not
                    detected
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mpolacek at gcc dot gnu.org
  Target Milestone: ---

constexpr int
foo ()
{
  const int i = 5;
  const_cast<int &>(i) = 10;
  return i;
}

int
main ()
{
  int i = foo ();
}

$ ./cc1plus -quiet w.C
# nothing
$ clang++ -c w.C
w.C:3:1: error: constexpr function never produces a constant expression
[-Winvalid-constexpr]
foo ()
^
w.C:6:24: note: modification of object of const-qualified type 'const int' is
not allowed in a constant
      expression
  const_cast<int &>(i) = 10;
                       ^
1 error generated.

Reply via email to