summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y5
1 files changed, 4 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index c116605047..471c8a8d2f 100644
--- a/parse.y
+++ b/parse.y
@@ -4244,7 +4244,10 @@ yylex()
tokadd(c);
tokfix();
yylval.id = rb_intern(tok());
- /* xxx shouldn't check if valid option variable */
+ if (!is_global_id(yylval.id)) {
+ rb_compile_error("invalid global variable `%s'", rb_id2name(yylval.id));
+ return 0;
+ }
return tGVAR;
case '&': /* $&: last match */