// Copyright (C) 2000 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 14 Nov 2000 // Bug 635. We failed to emit initializer code for out-of-class defined // static const members of template instantiations. static int inited = 0; static bool setFlag() { inited++; return true; } template struct X { static const bool cflag; static bool flag; static const bool iflag = true; static const bool jflag = true; }; template const bool X::cflag (setFlag ()); template bool X::flag (setFlag ()); template const bool X::iflag; int main () { X a; if (!a.flag) return 1; if (!a.cflag) return 2; if (!a.iflag) return 3; if (!a.jflag) return 5; if (!X::flag) return 5; if (!X::cflag) return 6; if (!X::iflag) return 7; if (!X::jflag) return 8; if (inited != 4) return 9; return 0; }