In order to detect modifying constant objects in constexpr evaluation, which is UB, in r10-2655 I added code that sets TREE_READONLY on CONSTRUCTORs of const-qualified objects after they have been fully constructed. But I never made sure that what we're setting the flag on actually is a CONSTRUCTOR. Consequently, as this test case shows, we could set TREE_READONLY on a VAR_DECL that in fact wasn't constant, causing problems later. Fixed by setting the flag on CONSTRUCTORs only, and only when the evaluation produced something constant. 2020-02-19 Marek Polacek <polacek@redhat.com> PR c++/93169 - wrong-code with a non-constexpr constructor. * constexpr.c (cxx_eval_call_expression): Only set TREE_READONLY on constant CONSTRUCTORs. * g++.dg/cpp0x/constexpr-93169.C: New test.
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| ada | Loading commit data... | |
| brig.dg | Loading commit data... | |
| c-c++-common | Loading commit data... | |
| config | Loading commit data... | |
| g++.dg | Loading commit data... | |
| g++.old-deja | Loading commit data... | |
| g++.target | Loading commit data... | |
| gcc.c-torture | Loading commit data... | |
| gcc.dg | Loading commit data... | |
| gcc.dg-selftests | Loading commit data... | |
| gcc.misc-tests | Loading commit data... | |
| gcc.src | Loading commit data... | |
| gcc.target | Loading commit data... | |
| gcc.test-framework | Loading commit data... | |
| gdc.dg | Loading commit data... | |
| gdc.test | Loading commit data... | |
| gfortran.dg | Loading commit data... | |
| gfortran.fortran-torture | Loading commit data... | |
| gnat.dg | Loading commit data... | |
| go.dg | Loading commit data... | |
| go.go-torture/execute | Loading commit data... | |
| go.test | Loading commit data... | |
| jit.dg | Loading commit data... | |
| lib | Loading commit data... | |
| obj-c++.dg | Loading commit data... | |
| objc | Loading commit data... | |
| objc-obj-c++-shared | Loading commit data... | |
| objc.dg | Loading commit data... | |
| selftests | Loading commit data... | |
| .gitattributes | Loading commit data... | |
| ChangeLog | Loading commit data... | |
| ChangeLog-1993-2007 | Loading commit data... | |
| ChangeLog-2008 | Loading commit data... | |
| ChangeLog-2009 | Loading commit data... | |
| ChangeLog-2010 | Loading commit data... | |
| ChangeLog-2011 | Loading commit data... | |
| ChangeLog-2012 | Loading commit data... | |
| ChangeLog-2013 | Loading commit data... | |
| ChangeLog-2014 | Loading commit data... | |
| ChangeLog-2015 | Loading commit data... | |
| ChangeLog-2016 | Loading commit data... | |
| ChangeLog-2017 | Loading commit data... | |
| ChangeLog-2018 | Loading commit data... | |
| ChangeLog-2019 | Loading commit data... | |
| ChangeLog.graphite | Loading commit data... | |
| ChangeLog.jit | Loading commit data... | |
| ChangeLog.ptr | Loading commit data... | |
| ChangeLog.tree-ssa | Loading commit data... | |
| README | Loading commit data... | |
| README.compat | Loading commit data... | |
| README.gcc | Loading commit data... |