+2006-07-23 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR debug/25468
+ * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
+ Cache the last found '\0' marker to avoid quadratic behavior.
+
2006-07-23 Jan Hubicka <jh@suse.cz>
* i386.md (subsi_3_zext): Fix output template.
#define ASM_OUTPUT_ASCII(FILE, STR, LENGTH) \
do \
{ \
- register const unsigned char *_ascii_bytes = \
+ const unsigned char *_ascii_bytes = \
(const unsigned char *) (STR); \
- register const unsigned char *limit = _ascii_bytes + (LENGTH); \
- register unsigned bytes_in_chunk = 0; \
+ const unsigned char *limit = _ascii_bytes + (LENGTH); \
+ const unsigned char *last_null = NULL; \
+ unsigned bytes_in_chunk = 0; \
\
for (; _ascii_bytes < limit; _ascii_bytes++) \
{ \
- register const unsigned char *p; \
+ const unsigned char *p; \
\
if (bytes_in_chunk >= 60) \
{ \
bytes_in_chunk = 0; \
} \
\
- for (p = _ascii_bytes; p < limit && *p != '\0'; p++) \
- continue; \
+ if (_ascii_bytes > last_null) \
+ { \
+ for (p = _ascii_bytes; p < limit && *p != '\0'; p++) \
+ continue; \
+ last_null = p; \
+ } \
+ else \
+ p = last_null; \
\
if (p < limit && (p - _ascii_bytes) <= (long)STRING_LIMIT) \
{ \
2006-07-22 Steven Bosscher <steven@gcc.gnu.org>
- PR fortran/28439
+ PR fortran/28439
* trans-stmt.c (gfc_trans_arithmetic_if): Evaluate the condition once.
2006-07-16 Jakub Jelinek <jakub@redhat.com>