* constexpr.c (potential_constant_expression_1): Check want_rval instead of checking if we have a decl. * decl2.c (decl_maybe_constant_var_p): Don't consider volatile constexpr variables as maybe constant. * g++.dg/cpp0x/constexpr-volatile2.C: New test. * g++.dg/cpp0x/pr65327.C: Add dg-error. From-SVN: r267030
14 lines
385 B
C
14 lines
385 B
C
// PR c++/86608
|
|
// { dg-do compile { target c++11 } }
|
|
|
|
template<typename T, T v> struct X {};
|
|
|
|
int
|
|
main ()
|
|
{
|
|
static constexpr volatile int a = 3;
|
|
constexpr volatile int b = 2;
|
|
return (sizeof(X<decltype(a), a>) // { dg-error "lvalue-to-rvalue conversion of a volatile lvalue" }
|
|
+ sizeof(X<decltype(b), b>)); // { dg-error "lvalue-to-rvalue conversion of a volatile lvalue" }
|
|
}
|