diff --git a/lang/m2/comp/LLlex.c b/lang/m2/comp/LLlex.c index 713f0fb54..28379a683 100644 --- a/lang/m2/comp/LLlex.c +++ b/lang/m2/comp/LLlex.c @@ -355,11 +355,11 @@ again: register t_idf *id; do { - if (ch == '_' && *tag == '_') { - lexerror("an identifier may not contain two consecutive underscores"); - } if (tag - buf < idfsize) *tag++ = ch; LoadChar(ch); + if (ch == '_' && *(tag-1) == '_') { + lexerror("an identifier may not contain two consecutive underscores"); + } } while(in_idf(ch)); UnloadChar(ch);