Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// Example from issue 1125 drafting; D() and v were well-formed with the // wording approved in Rapperswil, now seems they should be ill-formed. // { dg-do compile { target c++11 } } struct B { constexpr B(int x) : i(0) { } // "x" is unused int i; }; int global; // { dg-message "not const" } struct D : B { constexpr D() : B(global) { } // { dg-error "global|argument" } }; struct A2 { constexpr A2(bool b, int x) : m(b ? 42 : x) { } int m; }; // ok, constructor call initializes m with the value 42 after substitution constexpr int v = A2(true, global).m; // { dg-error "global" } // error: initializer for m is "x", which is non-constant constexpr int w = A2(false, global).m; // { dg-error "global" }