* semantics.c (cxx_eval_constant_expression): Explain
[official-gcc.git] / gcc / testsuite / g++.dg / parse / constant4.C
blob4d9814fb485563261c65ebfca9211aebd3b06afd
1 // { dg-do compile }
3 // Copyright (C) 2003 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 31 Jul 2003 <nathan@codesourcery.com>
6 // PR c++/11525 incorrect error about non-constant initalizer
8 template<typename> class X;
9 template<unsigned> class Y {};
12 template<typename T>
13 void Foo ()
15   static const unsigned I = X<T>::I;
16   
17   Y<I> i;
18   
19   static const unsigned J = X<T>::J; // { dg-message "not initialized with a constant expression" }
20   
21   Y<J> j; // { dg-error "constant" "" }
24 struct A 
26   operator unsigned () const;
29 template <typename> struct X 
31   enum {I};
32   static A const J;
35 void Baz ()
37   Foo<int> (); // { dg-message "instantiated" "" }
40