Versions: 1.4, 1.4.3, 1.4.4.
Build configurations: all with non-gnu compiler. (Actually observed
with native `cc' of `alpha-dec-osf5.1'.)
In these configurations `obstack_grow' macro in `lib/obstack.h'
evaluates its 1st arg several times. If this arg is `push_string_init
()', this causes m4 internal error.
* input.c (match_input): Do not pass expression with
side effect to `obstack_grow'. Fix <INTERNAL ERROR: Recursive
push_string!>.
--- input.c Sun May 1 15:38:18 2005
+++ input.c Thu Nov 10 17:10:05 2005
@@ -531,7 +531,12 @@
}
/* Failed, push back input. */
- obstack_grow (push_string_init (), t, n);
+ {
+ struct obstack *h = push_string_init ();
+
+ /* `obstack_grow' may be macro evaluating its arg 1 several times. */
+ obstack_grow (h, t, n);
+ }
push_string_finish ();
return 0;
}
_______________________________________________
Bug-m4 mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-m4