FIXINCL goes into an infinite loop on alpha-osf4
Zack Weinberg
zack@wolery.cumb.org
Sun Jan 23 20:47:00 GMT 2000
Argh. I'll take 'forgot to increment pointer' for $100, Alex. With a
side dish of 'identifiers can have underscores in them.'
Patch appended. Thanks for the test case.
zw
* fixfixes.c (fix_char_macro_uses): Correct regular expression
to allow underscores in macro names.
(fix_char_macro_defines): Increment scanning pointer.
===================================================================
Index: fixfixes.c
--- fixfixes.c 2000/01/22 00:40:49 1.9
+++ fixfixes.c 2000/01/24 04:36:32
@@ -378,7 +378,7 @@ fix_char_macro_uses (text, str)
/* This regexp looks for a traditional-syntax #define (# in column 1)
of an object-like macro. */
static const char pat[] =
- "^#[ \t]*define[ \t]+[A-Za-z][A-Za-z0-9]*[ \t]+";
+ "^#[ \t]*define[ \t]+[_A-Za-z][_A-Za-z0-9]*[ \t]+";
static regex_t re;
regmatch_t rm[1];
@@ -486,6 +486,7 @@ fix_char_macro_defines (text, str)
{
if (*p == str[0] && !strncmp (p+1, str+1, len-1))
goto found;
+ p++;
}
while (isalpha (*p) || isalnum (*p) || *p == '_');
/* Hit end of macro name without finding the string. */
More information about the Gcc-bugs
mailing list