[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
recursive push_string with non-gnu cc
From: |
Ilya N. Golubev |
Subject: |
recursive push_string with non-gnu cc |
Date: |
Thu, 10 Nov 2005 18:08:17 +0300 |
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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- recursive push_string with non-gnu cc,
Ilya N. Golubev <=