}
}
/* we only allow 1-dimensional arrays */
- if (parser->tok == '[') {
+ if (var->m_vtype != TYPE_FUNCTION && parser->tok == '[') {
wasarray = true;
var = parse_arraysize(parser, var);
if (!var) {
}
}
- if (parser->tok != '{' || var->m_vtype != TYPE_FUNCTION) {
+ if (var->m_vtype != TYPE_FUNCTION || (parser->tok != '{' && parser->tok != '[')) {
if (parser->tok != '=') {
parseerror(parser, "missing semicolon or initializer, got: `%s`", parser_tokval(parser));
break;
--- /dev/null
+$frame frame1 frame2
+
+float time;
+entity self;
+.float frame;
+.float nextthink;
+.void() think;
+
+// Mixing syntax, = is optional.
+void frame1_func_mixed_no_assign() [$frame1, frame2_func_mixed_no_assign] {}
+void frame2_func_mixed_no_assign() [$frame2, frame2_func_mixed_no_assign] {}
+
+void frame1_func_mixed() =[$frame1, frame2_func_mixed] {}
+void frame2_func_mixed() =[$frame2, frame2_func_mixed] {}
+
+void() frame1_func_old =[$frame1, frame2_func_old] {}
+void() frame2_func_old =[$frame2, frame2_func_old] {}
+
+
+
--- /dev/null
+I: framemacro.qc
+D: test frame macros
+T: -compile
+C: -std=gmqcc
\ No newline at end of file