------- Comment #5 from pinskia at gcc dot gnu dot org 2006-09-04 02:32 ------- The problem is here: /* The array dimension behaves like a non-type template arg, in that we want to fold it as much as possible. */ max = tsubst_template_arg (omax, args, complain, in_decl); max = fold_decl_constant_value (max);
It actually does not behave like one if we the decl is inside a function so that you can use VLAs. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28903